M.E.Manso.
Calidad del Software
ITI Gestión
155
1. Medición y experimentación en Ingeniería del Software 1.1 Introducción
1.2 Teoría representacional de la medición. 1.3 Experimentación en Ingeniería del software.
2. Medidas del Producto 2.1 Métricas interna 2.2 Métricas externas.
2.2.1 Modelos de Calidad 2.2.2 Defectos del software.
2.2.3 Fiabilidad del software y modelos.
Programa
Medición Calidad del Software
M.E.Manso.
• Camisón C et al. Gestión de la calidad. Prentice Hall 2006
• Casadesus M et al. Calidad práctica. Prentice Hall 2005
• Dolado Cosín, J. J. & Fernández SANZ, L. Medición para la gestión en Ingeniería del Software. Ra-Ma 2000
• Fenton, N. Software quality assurance & Measurement. A worldwide perspective. Second edition. Chapman&Hall 1997
2.2
Métricas Externas
157
• Conocer la relación entre métricas externas y
modelos de calidad
• Conocer la utilidad y el manejo de algunas
métricas externas
• Conocer el concepto de fiabilidad
• Manejar diferentes modelos de fiabilidad del
software
Objetivos
M. Externas Calidad del Software
M.E.Manso.
Métricas Externas
•
Las medidas de atributos externos se
construyen en general a partir de los
atributos internos.
•
¿Cómo se relacionan? Patrones a seguir:
•
Modelos de Calidad y/o
•
Estándares de calidad
oISOoIEEE…
159
•
Modelo de McCall
•3 ejes o puntos de vista
•11 factores •23 criterios •41 métricas
•
Modelo de Boehm
•7 factores •12 criterios•
Modelo GQM...
M. ExternasModelos de calidad (i)
M.E.Manso.
Modelos de calidad: de McCall(ii)
INTEROPERABILIDAD
(¿Podré comunicarlo con otros sistemas?) PORTABILIDAD
(¿Podré utilizarlo en otra máquina?) REUSABILIDAD
(¿Podré reutilizar parte del software?)
CORRECCION (¿Hace el software lo que yo quiero?) FIABILIDAD (¿Lo hace de forma exacta todo el tiempo?) EFICIENCIA (¿Se ejecutará sobre mi hardware lo mejor posible?) INTEGRIDAD (¿Es seguro?)
FACILIDAD DE USO (¿Puedo ejecutarlo?) FACILIDAD DE MANTENIMIENTO (¿Puedo arreglarlo?) FACILIDAD DE PRUEBA (¿Puedo probarlo?) FLEXIBILIDAD (¿Puedo modificarlo?) OPERACION REVI SION TRANS ICION
Modelo de MacCall (iii) Interrelación entre factores
M.E.Manso.
Modelo de Calidad
(IEEE. Computer Sociaty "standars for a software quality metrics methodology", P-1061/D20 1989)
Mantenibilidad Corrección Testabilidad Extensibilidad Recuento de defectos Nivel de los tests Esfuerzo Recuento de cambios
Tº para resolver /aislar Tasa de fallos
Cobertura de test Completitud del plan
Predicción de recursos esfuerzo
Esfuerzo del cambio Tamaño del cambio Tasa del cambio
Factor
Criterios Métricas
163
Modelos de calidad: GQM (iv)
Proyecto AMI(Applications of Metrics in Industry, 1991
Objetivo Evaluar efectividad de un estándar de codificación
Cuestiones Quien lo usa? Cual es la productividad Cual es la calidad
del código? del código?
Métricas
% de programadores Experiencia de programadores Tamaño Esfuerzo Errores estándar y del lenguaje con el lenguaje, entorno,
M.E.Manso.
• Concretan la calidad, definiéndola, midiéndola y planificando
• Ayudan a comprender las relaciones entre las
características del producto software
• Facilitan la comunicación entre usuarios, directivos y técnicos
• Son empíricos, su validez se demuestra observando
resultados
Utilidad de los modelos
de calidad (i)
165
Establecimiento de los requisitos de calidad (sigue):
• Costes del factor vs. beneficios esperados • Repercusiones en el ciclo de vida
• Interrelaciones con otros factores
Ordenar los requisitos por prioridades
Obtener F-C-M involucrados.
¿Problemas?
Establecer objetivos medibles, y mínimos aceptables M. Externas
Utilidad de los modelos
de calidad (ii)
Calidad del SoftwareM.E.Manso.
Utilidad de los modelos
de calidad: uso de GQM (iii)
Objetivo de negocio: problemas en el negocio del software.
Objetivo: Analizar el producto final para
caracterizarlo con respecto a la clasificación de defectos desde el punto de vista de la
organización.
Preguntas: ¿Distribución de los errores en cada fase del desarrollo?
Métricas: Nº de errores de requisitos, Nº de errores de diseño ....
167
Interés del estudio de defectos
• Control de Costes
La depuración de defectos dispara los costes
• Control del proceso de Desarrollo
Gestión de recursos para detectar-eliminar defectos
• Control del Mantenimiento
Gestión/coste de recursos para eliminar defectos del desarrollo
• Medida de Calidad (6σ)
Objetivo de calidad planteado por las empresas de desarrollo de software
M. Externas Calidad del Software
M.E.Manso.
Defectos y límites permitidos, Diagramas
de Control
Si es una proporción (Binomial)
• Suceso que ocurre (error) y probabilidad de que
ocurra (p).
• Tamaño muestral, número de elementos en los
que se observa si el suceso ocurre o no.
• Estadístico utilizado: la media muestral, que bajo
determinadas condiciones es una B(n,p) /n, o se
puede aproximar a una N(μ, σ).
169
Defectos y límites permitidos, Diagramas
de Control
Si se estudia una tasa (Poisson)
• Unidades en las que se estudia la ocurrencia del suceso.
• Número de unidades muestrales que se van a observar.
• La resultante de sumar v.a. independientes de Poisson, es de Poisson.
M. Externas Calidad del Software
M.E.Manso. Intervalos en general: Para proporciones: Para tasas: n p p Pˆ±3 ˆ(1− ˆ) n k 2 ˆ ˆ σ μ± 2 100 73 3 100 73 ±
n
k
λ
λ
ˆ
±
ˆ
100 27 . 0 73 . 0 3 100 73 ± ×Diagramas de Control
171• Detección y Eliminación de defectos en cada fase. • Medición de las Tasas de defectos durante los test
formales.
• Medición de la llegada de defectos en cada fase.
• Medición del tiempo medio necesario para eliminar los defectos.
• Medición de la efectividad de procesos de detección y eliminación .
¿Objetivos ?
Atrasadosi-1 Nuevosi+ Atrasadosi-1= + Actualesi Atrasadosi= Actualesi- Eliminadosi ti ti+1 - Eliminadosi t
Métricas de Defectos
M. Externas Calidad del SoftwareM.E.Manso. Fagan (1976)
Efectividad de una inspección= (NDI / NTDAI)*100. NDI= nº de defectos encontrados durante la inspección.
NTDAI= nº total de defectos encontrados antes de la Inspección.
Macina y KolKhorst (1988)
Porcentaje de detección temprana= (NDI / NDED)*100.
NDI= nº de defectos encontrados en inspección (diseño-código). NDED= nº de defectos encontrados en el desarrollo.
Efectividad de la Depuración
173
Daskalantonakis. 1992. Métrica utilizada por MOTOROLA. Efectividad total= NED/NEDM.
NED = nº de defectos encontrados en el desarrollo NEDM = nº de defectos encontrados en el desarrollo y mantenimiento.
Efectividad de una fase i = NDEFi /NDGFi. NDEFi = nº de defectos encontrados en la fase i. NDGFi = nº de defectos generados en la fase i.
(figuras 6.3, 6.4 y tabla 6.2)
M. Externas
Efectividad de la Depuración
Calidad del SoftwareM.E.Manso.
175
M. Externas Calidad del Software
M.E.Manso.
177
En el AS/400 se prueban las componentes antes de reutilizarlas
r=0,69.
Las bandas corresponden al I.C. al 95% (fig. 5.10).
Las regiones se hacen utilizando las medianas (fig.
5.11).
M. Externas
Reusabilidad y Defectos
M.E.Manso.
179
M. Externas Calidad del Software
M.E.Manso.
T1 = Tasa de defectos postinstalación para código nuevo o cambiado.
• T1≤objetivo del sistema (t) I1= 0
• t< T1 < 2t I1= 1
• 2t ≤T1 < 3t I1 = 2
• 3t≤T1 I1 = 3
I2 = Tasa de defectos postinstalación para el código nuevo o cambiado
(por KLDC total).
I3= Nº de defectos categorizados por cuartiles (0,1,2,3) (punto de vista del usuario).
• I = I1 + I2 + I3 Si 5 ≤ I Revisar componente
(gráficos 21-1)
Defectos y Mantenimiento
IBM
(AS/400)181
M.E.Manso.
Calcular utilizando los datos siguientes: Tº medio de resolución de defectos
Nº Medio de defectos/día (se localizaron 500 defectos) Recorrido intercuartílico para el Tº de resolución
% Prod. A (100/100KLDC) Prod. B (250/150LDC) 1 20 25 Severi. 2 22 30 3 25 05 4 33 40
¿Son iguales A y B, si el cliente considera intolerable una severidad >2?
Defectos y Mantenimiento
(IBM)
183
Objetivo
Modelar aspectos de la calidad del producto, para predecir su comportamiento.
• Defectos durante el desarrollo: permiten distribuir los recursos y predecir el comportamiento tras la instalación.
• Defectos después de la instalación: permiten controlar gastos de mantenimiento.
• Mide un aspecto de la calidad del producto para el usuario.
Fiabilidad
Calidad del Software
M.E.Manso.
Si disponemos de los tiempos (ti) en los que se han observado fallos de un sistema:
¿Cómo es de fiable el software en este momento? ¿Se pueden parar las pruebas porque es “fiable”? Si realizo pruebas durante un tiempo más ¿Cuanto
mejorará su fiabilidad?
¿Cuánto habré de esperar aún hasta alcanzar la fiabilidad objetivo?
Modelos de Fiabilidad: Utilidad
185
Software Hardware
fallos lógicos en el diseño fallos físicos corregir puede introducir
mas defectos
complejidad lógica menor
tendencia a cambiar con
frecuencia cambios al principio y final de la vida
Tabla 1
Fiabilidad
Calidad del Software
M.E.Manso.
Proceso de introducción de defectos impredecible, resultado de errores del equipo de desarrollo y/o mantenimiento.
Condiciones bajo las que se ejecuta un programa generalmente impredecibles.
Fallos que dependen de la presencia de defectos en el código y de la ejecución del programa en cierto estado.
En la depuración se pueden producir defectos.
Causas de la Aleatoriedad
187
Sistema procesador de textos que sirve a un grupo de trabajadores.
En una semana (tiempo de calendario)
puede estar 50 horas (tiempo de reloj) activo,
incluye el tiempo de ejecución y el tiempo de
espera. De ellas sólo 15 son de tiempo de
ejecución
Fiabilidad
Calidad del Software
M.E.Manso. Tabla 2 nº de fallo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tiempo (sg) 10 19 32 43 58 70 88 103 125 150 169 199 231 256 296 intervalo de tiem. 10 9 13 11 15 12 18 15 22 25 19 30 32 25 40 Tabla 3 tiempo(seg.) 30 60 90 120 150 180 210 240 270 fallos 2 3 2 1 2 1 1 1 1 fallos acumulados 2 5 7 8 10 11 12 13 14
¿Tº Medio entre fallos? ¿Nº medio de fallos/sg?
Dibujar el polígono de frecuencias y de frecuencias acumuladas para ambas tablas
Ejemplo
189
Ejemplo (ii) Fiabilidad
M.E.Manso.
Interviene la incertidumbre
Ni conociendo los defectos que hay dentro del software podríamos determinar en que momento ocurrirá el siguiente fallo.
Ti es una v.a.Æf(t), F(t), R(t) = S(t) = 1-F(t)) Necesitamos
Un modelo de predicción, que especifique S(T).
Un procedimiento de inferencia para estimar los
parámetros del modelo.
Un procedimiento de predicción que nos permita
combinar el modelo y las estimaciones anteriores para predecir el comportamiento futuro.
Modelos de Fiabilidad
191
Ocurre en el tiempo.
En cada instante t hay una v.a., x(t), que
puede ser discreta o continua.
El proceso se caracteriza por:
•La distribución de x(t)
•La variación del proceso en el tiempo
Si x(t) cambia en el tiempoÆproceso no homogéneo
Fiabilidad
Calidad del Software
M.E.Manso.
Es un proceso estocástico.
El comportamiento de los fallos depende de:
•Nº de defectos al principio de la ejecución
introducidos - eliminados
•Entorno de ejecución o perfil operacional
Los posibles "tipos" de comportamiento del programa cuando el programa es ejecutado, y su distribución de probabilidad.
Proceso de Producción de Fallos
193
1. El entorno operacional (tipo de entrada a procesar)
2. Efecto que tendrá la solución del defecto
Fiabilidad
Modelado de 1: la elección de un estado que produce fallo se hace al azar
Tiempo (T) hasta el siguiente fallo Æexponencial Modelado de 2: ¿ ?
Calidad del Software
M.E.Manso.
Tasa de fallo Tiempo medio de fallo
o función de riesgo λ(t) = λ Λ(t) = λ* t E(T) = 1/ λ V(T) = 1/ λ2
∫
= − = Λ t t t dt LnS t 0 ) ( ) ( ) ( λ ) ( ) ( ) ( t S t f t = λ∫
− = t dt t e t s( ) 0λ ( ) = −∫
t dt e t s( ) 0λModelo Exponencial Homogéneo
195 Fiabilidad
Gráfico 35-1
Modelo Exponencial Homogéneo (ii)
M.E.Manso.
Exploración en la muestra para elegir un modelo
¿Relación entre S(t) y λ(t) en el modelo homogéneo?
D. Homogénea: describe un proceso sin memoria
S(t) = S1(t1) * S2(t2)/ S2(t1) * ...Sn(t)/Sn(tn-1) hi= ti- ti-1 0 t1 t2 t3 tn-1 tn=t λ(1) λ(2) λ(3)... λ(n)
∏
− = ne ihi 1 λModelo Exponencial Homogéneo (iii)
197
Exponencial Homogénea
N(t) = Nº de fallos hasta t∈{0,1,2 ...}Æ P(λt)
P(N(t) = k ) =
Aplicaciones en las Pruebas: estrategia de parada. ¿Cómo?
!
)
(
k
t
e
−λtλ
k FiabilidadCalidad del Software
M.E.Manso.
• 1/λ esta asociado a la escala.
• p esta asociado al apuntamiento (gráficos 39-i).
• Buscar la expresión de los momentos para T.
p t e t S( )= −(λ ) λ(t)=λp(λt)p−1 p t t) ( ) ( = λ Λ 1 ) ( ) ( ) ´( ) (t =−S t = pe− t p t p− f λ λ
Modelo de Weibull
199 FiabilidadModelo de Weibull (ii)
Calidad del SoftwareM.E.Manso.
Modela
Demanda de recursos Demanda de personal Comportamiento de la detección/eliminación de defectos ... 2 ) ( ) (t = λt Λ 1 2 ) ( ) ( 2 ) ´( ) (t S t e t f =− = − λt λ ) ( 2 ) (t λ λt λ = 2 ) ( ) (t e t S = − λModelo de Rayleigh
Weibull (p=2)
201 Proceso de eliminación de defectos de un
producto AS/400 de IBM desarrollado en un proceso de 6 fases.
Se dispone del comportamiento de los defectos
observados hasta el Test del Sistema (ST).
El objetivo del estudio es estimar la tasa de
defectos cuando el producto salga al mercado, o disponibilidad general (GA).
(Fig.7.2 y 7.3, distribución de Weibull)
Fiabilidad
Calidad del Software
M.E.Manso.
Ejemplo AS/400 IBM (ii)
203
Hipótesis del modelo:
1. Tasa de defectos del desarrollo correlacionada positivamente con la tasa de defectos una vez instalado (tabla 7.1).
2. Para la misma tasa de defectos en el origen, cuantos más se descubran y eliminen en las
primeras fases menos quedarán para las
siguientes.
Ä idea de “ buen desarrollo desde el principio” y
“detectar los errores cuanto antes”.
Fiabilidad
Calidad del Software
M.E.Manso.
Para cada fallo i:
N = nº inicial de defectos
• Modelo básico exponencial. Todos los defectos contribuyen por igual a la función de riesgo (φ). • El 2º tipo de incertidumbre no se contempla: los
defectos se eliminan de forma perfecta y no se introducen más.
φ
λ
λ)
1
(
)
(
+
−
=
=
−i
N
e
t
S
i t i i i iModelo de Jelinski-Moranda
205Procedimiento de inferencia
Estimadores máximo-verosímiles de N y φ.Comentarios al Modelo
La hipótesis sobre la misma contribución de
los defectos a la función de riesgo puede no ser realista.
Se pueden observar grandes diferencias
entre los valores observados y los
estimados, y el modelo siempre da valores mas “optimistas”…
Fiabilidad
Calidad del Software
M.E.Manso.
Modelo de Jelinski-Moranda de función de riesgo
t1 t2 t3... Nφ (N-1)φ (N-2)φ
Modelo de Jelinski-Moranda(iii)
207• Predicciones satisfactorias, en general.
• Son simples y fáciles de entender.
• Programas que facilitan su implementación.
• Parámetros con una interpretación física clara,
relacionados con información que existe previa a la ejecución del programa.
• Pueden modelar sistemas que cambian de
tamaño.
Fiabilidad
Modelos Básico y Logarítmico
(Tº de ejecución
)
M.E.Manso.
λ (μ) = λo (1-μ/νo)
μ(t) = νo (1-exp((-λo/νo)t ))
λ (t) =λo exp((- λo/νo)t )
• λo= intensidad de fallo al comienzo de la ejecución. • μ= media esperada de fallos en un instante de tiempo.
• νo= promedio de fallos que podrían ocurrir en un tiempo
infinito (gráficos 49-i).
0 0 ) ( ν λ μ μ λ = − d d t Ln t Ln ( ) ( ) 0 0 0 νλ λ λ = + −
Modelo Básico
209 FiabilidadCalidad del Software
M.E.Manso.
Modelos Básico y Logarítmico (ii)
211 Fiabilidad
Calidad del Software
M.E.Manso.
λ (μ) = λo exp(-θμ)
μ(t) = 1/θ ln (λo θ t+1)
λ (t) = λo / (λo θ t+1)
θ= parámetro de caída de la intensidad de fallo. Representa el cambio relativo de la intensidad de fallo por fallo experimentado. • ¿Variación de λ?
• ¿Relación entre λy t?
Modelo Logarítmico
213
νo= n º de defectos.
• Utilizar una distribución hipergeométrica.
• Considerar las características del programa y tener en cuenta métricas relacionadas con el nº de defectos.
• Estimar la tasa de defectos/instrucción...
Fiabilidad
Calidad del Software
M.E.Manso.
Condiciones Básico Logarítmico Estudios o predicciones antes de ejecutar x
Efectos de tecnología software a través del estudio de defectos
x El tamaño del programa cambia continua y
substancialmente
x Perfil operacional claramente no uniforme x Importa la predicción temprana x
Utilidad de los Modelos
215
¿Cuanto tiempo hay que seguir hasta alcanzar λ= 0,00001 fallos/hrcpu ? ) )(log ( 1 ) )( ( 0 0 arítmico Ln básico f p f p λ λ θ μ λ λ λ ν μ = Δ − = Δ ) )(log 1 1 ( 1 ) )( ( 0 0 arítmico t básico Ln t t p f f p p f λ λ θ λ λ λ ν − = Δ = − Fiabilidad
Calidad del Software
M.E.Manso.
Ejemplo de salida (SAS)
217 Serie Paralelo