Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Calidad Del Software
Calidad Del Software
Contenidos
1. 2.
3.
Medidas
Introducci Introduccin a las medidas Qu Qu, por qu qu y c cmo miden los ingenieros 3. Medidas y m mtricas 4. Medidas en Ingenier Ingeniera del Software 5. Clasificaci Clasificacin de medidas
1. 2.
5.
Conclusiones
Jos Luis Fuertes 1
Introducci Introduccin
Software:
z
Introduccin
Especifica el conjunto de programas inform informticos que se desarrollan en el entorno de una computadora Papel del software en la sociedad ha cambiado significativamente en los ltimos 50 a aos
mejoras en rendimiento del hardware cambios en arquitecturas inform informticas aumentos de memoria y capacidad de almacenamiento variedad de dispositivos de entrada y salida ...
Introducci Introduccin
Sistemas cada vez m ms sofisticados y complejos Se ha pasado de ser una herramienta para la
z z
Introducci Introduccin
Un poco de historia...
Aos 40 Fundamentos de la computaci computacin moderna Principios de los 60 Consolidaci Consolidacin del desarrollo de software de aplicaciones relativamente grandes Finales de los 60 Crisis del software
El software se desarrolla, no se fabrica El software no se estropea Aunque la industria tiende a ensamblar componentes, la mayor mayora del software se construye a medida
Imposibilidad de desarrollar proyectos de una dimensi dimensin acorde con los avances tecnol tecnolgicos de la poca
1968 El comit comit cient cientfico de la OTAN patrocina una conferencia en Alemania, para identificar, clasificar y discutir los problemas que se produc producan en el desarrollo de grandes proyectos
Resultado: el desarrollo del software es una tarea de ingenier ingeniera (se acu acua el t trmino de Ingenier Ingeniera del Software) Software)
Jos Luis Fuertes 5
Introducci Introduccin
Ingenier Ingeniera:
z
Introducci Introduccin
Ingenier Ingeniera del Software:
z
Diccionario de la Real Academia Espa Espaola: ola: Conjunto de conocimientos y t tcnicas que permiten aplicar el saber cient cientfico a la utilizaci utilizacin de la materia y de las fuentes de energ energa Diccionario de la Real Academia Espa Espaola: ola: Conjunto de programas, instrucciones y reglas inform informticas para ejecutar ciertas tareas en una computadora computadora
Software:
z z
IEEE, 1993
Aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin y mantenimiento del software
Introducci Introduccin
El producto software:
z
Introducci Introduccin
El proceso software:
z
Es un sistema software desarrollado para un cliente con la documentaci documentacin que describe c cmo instalar y usar el sistema Objetivo de la Ingenier Ingeniera del Software
Es el conjunto de actividades y resultados que permite producir un producto software Actividades fundamentales del proceso software:
Especificaci Especificacin del software: se define la funcionalidad del software y el modo de operaci operacin Desarrollo del software: se produce el software de acuerdo con las especificaciones Validaci Validacin del software: el software debe ser validado para asegurarse que hace lo que espera el cliente Evoluci Evolucin del software: el software debe evolucionar para acomodarse a las nuevas necesidades del cliente
z
Calidad del Software Jos Luis Fuertes 8
Introducci Introduccin
El software no es perfecto
Introducci Introduccin
Las causas de los fallos inform informticos pueden ser
muy diversas:
z
z z z z
Especificaciones incorrectas o incompletas An Anlisis equivocados Dise Diseos con fallos Programaci Programacin con errores Validaci Validacin poco precisa
10
11
Introducci Introduccin
Actualmente se usa el software en gran diversidad
Introducci Introduccin
La soluci solucin al problema es la calidad
z z
de mbitos Los defectos del software pueden causar importantes problemas e, incluso, da daos f fsicos
z
Los defectos en programas financieros o editores son poco importantes, poco costosos y nadie sale herido Cuando el software pilota pilota aviones, conduce conduce autos, controla controla el tr trfico a areo o vigila vigila centrales nucleares, los defectos pueden ser muy peligrosos
z z
Cu Cundo tiene buena calidad el software? Qu Qu caracter caractersticas influyen al determinar la calidad del software? Cmo medir la calidad del software? Cmo controlar y garantizar la calidad del software?
12
13
Introducci Introduccin
Es necesario medir la calidad...
Kelvin
Calidad del Software Jos Luis Fuertes
DeMarco
14
Control de la Calidad
Objetivos:
z
Control de la Calidad
Controles Est Estticos
Controles manuales
z
Comprobar si un producto posee una determinada caracter caracterstica de calidad en el grado requerido
Informales
Comprobaci Comprobacin de escritorio (desk checking) Revisi Revisin por pares (peer review)
Actividades de control:
z
Disciplinados
Son t tcnicas de grupo
16
Control de la Calidad
Controles Din Dinmicos
Tipos de pruebas
z z z
Prueba modular
Se prueba cada m mdulo aislado del resto del sistema Se prueba que las interfaces entre los m mdulos son correctas Se prueba si el sistema satisface todos los requisitos del usuario Su objetivo es demostrar al usuario que el sistema satisface sus necesidades Se comprueba que la nueva versi versin del producto no es de menos calidad que la anterior
Jos Luis Fuertes 18
Prueba de sistema
Conjunto de actividades de planificaci planificacin, estimaci estimacin y supervisi supervisin del proceso de desarrollo, que se realizan de forma independiente al equipo de desarrollo, de tal forma que los productos software resultantes cumplen los requisitos establecidos y satisfacen los niveles de calidad exigidos
19
Idealizaci Idealizacin del proceso de desarrollo y mantenimiento del software Se descompone el proceso en fases, definiendo las actividades a realizar La sistematizaci sistematizacin de los procedimientos facilita la prueba de los resultados obtenidos Se producen incrementos en la productividad (50(50-150%)
Las herramientas CASE (Computer Aided Software Engineering) facilitan la producci produccin de software Los modernos entornos de desarrollo han simplificado el proceso de implementaci implementacin Su importancia (en t trminos de calidad) se hace patente en el mantenimiento Caracter Caractersticas interesantes: m mdulos, compilaci compilacin separada, ocultaci ocultacin de informaci informacin, flujo de control estructurado, fuerte tipado, tipado, OO, orientaci orientacin a eventos...
Jos Luis Fuertes 21
Mtodos y formalismos
z
20
Juega un papel esencial Caracter Caractersticas importantes: consistencia, claridad, comprensibilidad, completitud... Factores a considerar: cultura de la organizaci organizacin, comunicaci comunicacin, entorno f fsico, formaci formacin, motivaci motivacin, direcci direccin, liderazgo... Est Estndares y convenciones, ejemplos y patrones, gesti gestin de configuraci configuracin, control del c cdigo, gesti gestin de problemas...
Jos Luis Fuertes 22
Factores humanos
z
Otros
z
27%
56%
Otros
23
Porcentaje, sobre el coste total de correcci correccin de los defectos, seg segn la fase en la que se cometieron:
13% 1%4%
Especificacin Diseo Codificacin Otros
Coste de correcci correccin seg segn la fase en la que se detectaron los defectos:
17.500 $ 15.000 $ 12.500 $ 10.000 $ 7.500 $ 5.000 $ 2.500 $ 0$ Anlisis Diseo Codificacin Pruebas Implantacin
82%
24
25
Medidas
La medici medicin es la asociaci asociacin de valores num numricos con un objeto o acci accin Se interpreta este valor como la cantidad de calidad o de cierto atributo pose posedo por dicho objeto o acci accin
27
Medidas
Qu Qu Miden los Ingenieros?
La ingenier ingeniera puede definirse como el proceso que
Comparar una cantidad con su respectiva unidad, con el fin de averiguar cu cuntas veces la segunda est est contenida en la primera
Medida
z
28
29
Medidas
Qu Qu Miden los Ingenieros?
Medidas del producto
z
Medidas
Qu Qu Miden los Ingenieros?
Medidas del proceso
z
30
31
Medidas
Por qu qu Miden los Ingenieros?
Para describir el estado actual del mundo
z
Medidas
Por qu qu Miden los Ingenieros?
Para establecer los requisitos cuantitativamente y
Cada medida describe un aspecto concreto del estado del mundo hoy Si se mide el estado del mundo peri peridicamente, puede ser posible descubrir patrones y tendencias
demostrar su cumplimiento
z
el comportamiento de los sistemas que dise disean y construyen las tendencias en el propio proceso de ingenier ingeniera
32
Medidas
Por qu qu Miden los Ingenieros?
Para realizar un seguimiento del progreso y predecir
Medidas
Por qu qu Miden los Ingenieros?
Para analizar costes y beneficios
z
los resultados
z
Las mediciones peri peridicas de lo que se va obteniendo permite realizar un seguimiento cuantitativo del proyecto
Los ingenieros del software cuentan el n nmero de defectos encontrados durante las pruebas para calibrar los modelos de fiabilidad
Pueden predecir cu cundo se completar completarn las pruebas y cu cundo se alcanzar alcanzar el nivel de fiabilidad requerido
A veces se acepta una cualidad negativa para favorecer otra cualidad A veces se acepta menos de un atributo deseable para obtener m ms de otro atributo deseable
Ej.: Coche: se deben establecer compromisos entre peso, econom economa,
34
Medidas
Cmo Miden los Ingenieros?
Tradicionalmente, los ingenieros usan instrumentos Los instrumentos pueden proporcionar medidas
z
Medidas
Cmo Miden los Ingenieros?
Muestreo
err errneas
z
La exactitud de un instrumento es una indicaci indicacin de la diferencia entre la lectura del instrumento y los datos de entrada La precisi precisin de un instrumento es una indicaci indicacin de lo repetible que resulta una medici medicin con una exactitud determinada
Selecci Seleccin y medida de una parte representativa de la poblaci poblacin para deducir par parmetros o caracter caractersticas de toda la poblaci poblacin.
Se usa cuando es imposible o poco pr prctico medir a toda la poblaci poblacin Control de calidad en un proceso de fabricaci fabricacin
Ejemplo
Se elige uno de cada 1000 productos y se realizan medidas Utilizando varias t tcnicas estad estadsticas, se extraen conclusiones acerca de todos los productos a partir de las medidas realizadas en los productos seleccionados
36
37
Medida
Medida
Sea A un conjunto de objetos f fsicos o emp empricos Sea B un conjunto de objetos formales (n (nmeros) Se define una medida como una relaci relacin un unvoca de A a B:
: A B
Forma perfectamente definida de asociar valores num numricos a los atributos de los elementos de una entidad Criterio para determinar la diferencia o distancia entre dos entidades
Mtrica
38
39
Mtrica:
Sea A un conjunto de objetos Sea el conjunto de n nmeros reales Sea m: A A una medida Entonces m es una mtrica si cumple: m(x, y) 0, x, y A
m(x, y) = 0 x = y m(x, y) = m(y, x), x, y A m(x, z) m(x, y) + m(y, z), x, y, z A
dos entidades tiene muy poco sentido en el mundo del software En cambio, s s tiene sentido calcular una medida para dos productos y compararlas Mtrica del Software Medida del Software
40
41
Ser Ser dif difcil mantener el sistema? Cu Cunto costar costar construir un sistema similar al que
Resultados numricos
diariamente a estas preguntas La habilidad para realizar las medidas apropiadas es fundamental para los ingenieros del software Tambi Tambin es importante saber c cmo medir Es un rea de investigaci n candente en Ingenier investigaci Ingeniera del Software
z
No hay resultados est estndar universalmente aceptados en el terreno de las medidas del software
main ()/* Tabla de conversin de Fahrenheit a Celsius */ { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf ("%4d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32)); }
44
45
25 N 20 15 de 10 5 votos 0 1 2 3 4 5 6 7 8 9
N de lneas de cdigo fuente
Deben ser sencillas y estar definidas con precisi precisin Deben ser objetivas Deben ser f fciles de obtener Deben ser v vlidas Deben ser robustas Deben definir sus valores y sus l lmites Los conjuntos de medidas deben ser consistentes
46
47
z z z z z z
1976: Complejidad ciclom ciclomtica (McCabe) McCabe) 1977: Ciencia del software (Halstead ) (Halstead) 1980: Complejidad del flujo de control, del flujo de datos y del programa (Oviedo) 1981: Flujo de informaci informacin (Kafura (Kafura y Henry) 1985: Estabilidad en el mantenimiento (Yau y Collofello) Collofello) 1988: Ley de Demeter Demeter (Lieberherr) Lieberherr) 1993: Medidas del Dise Diseo (Chen y Lu) 1994: Conjunto de medidas (Chidamber (Chidamber y Kemerer) Kemerer) 1999: Complejidad del c cdigo y del dise diseo (Etzkorn (Etzkorn et al.)
Jos Luis Fuertes 49
48
5
5
v(G) = + 1
: n nmero de predicados
8 v (G) = 18 - 12 + 2 = 8
8
11
9
Calidad del Software Jos Luis Fuertes 50 Calidad del Software
10
Jos Luis Fuertes
12
51
1979]
IF (GN .NE. 0) GOTO 10 IF (CN .LT. CT) GOTO 5 E = 1 GOTO 25 E = 0 GOTO 25 IF (CN .LT. TR) GOTO 20 E = 1 GOTO 25 E = 0 CONTINUE
Jos Luis Fuertes 53
5 10
20 25
Calidad del Software Jos Luis Fuertes 52 Calidad del Software
Nmero de l lneas de c cdigo (LOC) de dicho m mdulo, longitud de Halstead, Halstead, complejidad ciclom ciclomtica... tica... Nmero de flujos de datos entrando al m mdulo p
z
Para todas las clases C y todos los m mtodos M de C, todos los objetos a los que M env enva mensajes deben ser:
Los objetos que son argumentos de M (incluyendo el propio objeto de la clase C) Los objetos que son atributos de C
FanFan-in de un m mdulo p:
FanFan-out de un m mdulo p:
Medida:
54
55
Sea la clase C con sus m mtodos M1, M2..., Mn Sea c1, c2..., cn la complejidad de cada m mtodo Entonces, para dicha clase C:
WMC = c i
i =1
56
57
58
59
10
Proporciona una medida de la relativa disparidad natural de los m mtodos de una clase
M: conjunto de todos los m mtodos de la clase C Ri: conjunto de los m mtodos llamados por el m mtodo i
RFC = MU R i
i
Calidad del Software Jos Luis Fuertes 60 Calidad del Software Jos Luis Fuertes 61
[Henry]:
z
Medidas de la Estructura
Medidas Lxicas
Se basa en el an anlisis de la estructura del dise diseo Se basan en los detalles del c cdigo fuente Se basan tanto en detalles de implementaci implementacin como en la estructura del dise diseo
Se basan en contar tokens Se basan en la aplicaci aplicacin de los conceptos de la teor teora de la informaci informacin a la formulaci formulacin de medidas Miden el grado de interconectividad entre los componentes del sistema observando el flujo de informaci informacin entre ellos
Medidas Hbridas
Medidas de Conectividad
62
63
z z
Medir es un mecanismo ideal para caracterizar, evaluar, predecir y proporcionar motivaci motivacin para los diversos aspectos de los procesos de construcci construccin del software Las medidas deben aplicarse tanto sobre el proceso software como en el producto Debe estar claramente indicado el prop propsito de cada medida Se necesitan tanto medidas objetivas como subjetivas La mayor parte de los aspectos del producto y del proceso software son demasiados complicados para ser identificados por una nica medida
Jos Luis Fuertes 64
Los entornos de desarrollo y mantenimiento deben estar preparados para las medidas La tarea de medir no se debe limitar a utilizar modelos y medidas tal como han sido definidas en otros entornos El proceso de medida debe ser de arriba hacia abajo, en vez de ser de abajo hacia arriba, para poder definir un conjunto de objetivos operativos, especificar las medidas apropiadas, permitir interpretaciones y an anlisis contextuales v vlidos y proporcionar retroalimentaci retroalimentacin para el aprendizaje y el seguimiento
Jos Luis Fuertes 65
11
Las medidas deben asociarse con interpretaciones, pero estas interpretaciones deben corresponder con un determinado contexto Se necesitan m mltiples mecanismos para la recopilaci recopilacin y validaci validacin de datos Para evaluar y comparar proyectos y para llevar a cabo modelos se necesita una base hist histrica de experiencias
Efecto Hawthorne
La medida de cualquier parmetro de un proyecto y su asociacin con una evidencia significativa influir en la utilidad de dicha medida
66
67
Punto de vista subyacente: Excelencia innata Punto de vista del producto: Contenidos del producto Punto de vista del usuario: Adecuaci Adecuacin para el uso Punto de vista industrial: Conforme a requisitos Punto de vista del valor del producto: Dise Diseo al coste
Jos Luis Fuertes
Software
69
Intentan cuantificar la calidad del software Se descompone la calidad en niveles estructurados Los distintos modelos se diferencian por:
la relaci relacin entre los niveles la cantidad de niveles los conceptos de cada nivel
IEEE
Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas expectativas
70
71
12
Modelo de Arthur
ISO/IEC IS 91269126-1:2001
Quality Model (15(15-6-2001) External Metrics (1(1-7-2003) Internal Metrics (1(1-7-2003) Quality in use Metrics (1(1-4-2004)
Jos Luis Fuertes 73
Modelo de Gilb / Modelo de Deutsch y Willis Modelo de Schulmeyer Modelo de Gillies / Modelo REBOOT Modelo de Dromey
ISO/IEC TR 91269126-2:2003
ISO/IEC TR 91269126-3:2003
ISO/IEC TR 91269126-4:2004
z z
Se muestran externamente al usar el software y son el resultado de atributos internos Son aplicables a cualquier tipo de software Conceptos caracter caractersticas sticas y subcaracter subcaractersticas sticas
Proporcionan una terminolog terminologa consistente para la calidad del producto software Proporcionan un marco para especificar requisitos de calidad del software Permiten definir compromisos entre capacidades del producto software
Calidad en el uso
74
75
influye
depende de
influye
uso y realimentacin
Calidad en el uso
indica
depende de
depende de
medidas internas
medidas externas
validacin
Calidad externa
indica
verificacin
Calidad interna
76
77
13
Funcionalidad
Fiabilidad
Usabilidad
Eficiencia
Mantenibilidad
Portabilidad
Efectividad
Productividad
Seguridad
Satisfaccin
78
79
Secuencia de pasos necesarios para desarrollar software Establece el marco de trabajo t tcnico y de gesti gestin para aplicar los m mtodos, herramientas y el personal a la tarea de la construcci construccin de programas
Monitorizar, medir y revisar el rendimiento del proceso est estndar al ser aplicado sobre proyectos individuales Todo el personal implicado en el proceso software debe participar en las actividades de mejora Es primordial fijar y perseguir objetivos cuantitativos y medibles para mejorar el proceso, dirigiendo estos objetivos a perfeccionar la calidad del producto Debe establecerse un programa de mejora del proceso que impulse a los desarrolladores a mejorar su propio proceso de trabajo y a participar en las mejoras de sus compa compaeros
Jos Luis Fuertes 81
80
Establecer programas de mejora del proceso software Indica los objetivos de las medidas a usar en cada nivel Conseguir mejores Ingenieros del Software Incluye algunas medidas b bsicas y del proceso
del proceso es la habilidad de los desarrolladores y gestores para ver y entender qu qu es lo que ocurre durante todo el proceso de desarrollo
z
En el nivel inferior de madurez, no se comprende ni el proceso, pero conforme crece la madurez, se comprende y se puede definir mejor Tanto las medidas como la habilidad para ver y entender est estn ntimamente relacionadas, puesto que un desarrollador puede medir s slo lo que resulta visible en un proceso y las medidas ayudan a incrementar esa visibilidad
Jos Luis Fuertes 83
82
14
determinar qu qu medir primero y c cmo planear un plan de medidas comprensivo y adecuado Tipos de medidas por nivel del CMM:
Nivel de Madurez 1. Inicial: 2. Repetible: 3. Definido: 4. Gestionable: 5. Optimizado:
Calidad del Software
Caractersticas Ad hoc, catico Los procesos dependen de los individuos Los procesos se definen y se institucionalizan Se miden los procesos
Objetivo de las Medidas Establecer las bases para planear y estimar Seguimiento y control del proyecto Definicin y cuantificacin de los procesos y productos intermedios Definicin, cuantificacin y control de los subprocesos y los elementos Optimizacin dinmica y mejora durante el proyecto
Jos Luis Fuertes 84
dise diseado para ayudar a controlar, gestionar y mejorar la forma de trabajar Marco de trabajo estructurado con formularios, gu guas y procedimientos para desarrollar software PSP proporciona los datos hist histricos necesarios para mejorar el proceso Principal objetivo: conseguir mejores ingenieros del software
85
PSP0, PSP1, PSP2 y PSP3 Fases intermedias de mejora: PSP0.1, PSP1.1 y PSP2.1
Proceso personal cclico PSP3 Desarrollo cclico
PSP0 Proceso actual Registro del tiempo Registro de defectos Estndar de tipos de defectos
PSP0.1 Estndar de codificacin Medidas del tamao Propuesta de mejora del proceso
86
87
Conclusiones
La calidad del software puede verse como un
Conclusiones
Aunque es fundamental obtener un software de calidad, cada medida, cada test, cada revisi revisin consume tiempo y dinero
89
15
Conclusiones
Razones para la lentitud en la adopci adopcin del uso de
Conclusiones
ISO/IEC 91269126-1: Modelo de Calidad del Software
z z z
Los est estndares, por s s solos, no son suficientes Se necesita una disciplina para aplicarlos Si no se comprende el proceso del negocio, no resultar resultar til aplicar ning ningn m mtodo de evaluaci evaluacin de la calidad ni de mejora del proceso
Incluso sabiendo qu qu medidas usar, no es f fcil obtener los datos Incluso con los datos, no es obvio c cmo interpretar y usar los n nmeros La gente se resiste a que se mida la calidad de su trabajo
Jos Luis Fuertes 90
91
16