1 ITI Gestión curso 2010/2011 Medición 2 Programa 1. Medición y experimentación en Ingeniería del Software Introducción Teoría representacional de la medición. Experimentación en Ingeniería del software. 2. Medidas del Producto 3. Modelos y métricas del Proceso 4. 1
1. Medición y Experimentación Bibliografía Medición 3 [Dolado, J., 2000] Dolado COSÍN, J. J. & Fernández SANZ, L. "Medición para la gestión en Ingeniería del Software". Ra-Ma. 2000. Fernández, L. Teoría de la medición del software Es el texto recomendado para la asignatura, pues contiene información y referencias muy valiosas sobre la medición en I. del Software. [Fenton, N. 1997] Fenton, N. 1997. "Software quality assurance & Measurement. A worldwide perspective". Second edition.chapman&hall. Texto recomendado para la parte de métricas. Proporciona el marco en el que desarrollar las actividades de medición del software y experimentación. Medición 4 1. Objetivos del Tema 1 Manejar los conceptos básicos de la teoría representacional de la medición. Conocer el papel de la medición en Ingeniería del Software (IS) Conocer ideas básicas de experimentación y su utilidad en IS Conocer los problemas de la experimentación en IS, y algunas soluciones. 2
Medición 5 Porqué medir? 1.1 Introducción IS:.. Aplicación de principios de ingeniería... para la producción de Software de calidad Humphrey, 1989 Medir el software es una tarea pendiente. Hay que validar las métricas que se utilizan. Para medir se necesitan objetivos claros y específicos que guíen el proceso de medición. Se debe ser crítico: medir un atributo no garantiza que la medición sea satisfactoria. Introducción 6 Necesidad de Medir en I.S. Los proyectos sin metas claras no podrán alcanzar claramente las metas Principio de Gilb de patrones difusos Algunos ejemplos Patrones de medida: son fáciles de usar? Comportamiento de los procesos: modelos? Hay productos de los que se desconoce la calidad Cómo garantizar su comportamiento al usuario? Mercado con referencias anecdóticas... 3
Introducción 7 Objetivos de la Medición Caracterizar Evaluar Predecir Mejorar Productos Procesos Recursos Medir para Caracterizar, entender y establecer bases de referencia Evaluar, conocer el estado actual, con respecto a una referencia ( desviaciones? % de cumplimiento? ) Predecir y así poder planificar Identificar las oportunidades de mejora ( Llegamos a los límites? Se ha mejorado?...) Introducción 8 Objetivos de la Medición Objetivos de Gestión Coste de los procesos? Productividad del equipo? Bondad del código desarrollado? Satisfacción del usuario? Objetivos de Ingeniería Son contrastables los requisitos? Hemos probado y depurado adecuadamente el producto? Hemos alcanzado los objetivos? Que ocurrirá en el futuro? Podemos predecir? 4
9 1.2 Medición y Medida (i) Medición: Proceso que permite asociar números o símbolos a atributos de entidades de un dominio del mundo real, de forma que los describe de acuerdo a reglas claramente especificadas Fenton, 1997 Medición (measurement): aplicación (mapping) desde el mundo empírico real (dominio) al mundo formal (rango). Medida (measure): número o símbolo asociado por la aplicación para representar el atributo de la entidad del mundo real (un objeto, un suceso, una persona...)l 10 Medición y Medida (ii) Cuánto debemos conocer de un atributo para considerar que está medido? Qué es la Complejidad del software? Qué es la superficie de un terreno? Cómo sé quería? que he medido realmente el atributo que Es el nº de errores una medida de la calidad del software? Y si no cuál es? 5
11 Medición y Medida (iii) Ya disponemos del proceso de medición Qué aserciones podemos hacer sobre el atributo y las entidades que lo poseen? Ejemplo: Superficie1=30Ha 2 Superficie2=60Ha 2 Calidad1=30 Calidad2=60 Cómo podemos comparar la calidad de dos diseños? Tiene sentido hablar de doble calidad de diseño? Y de doble superficie? 12 Tipos de Validez Validez Teórica Que axiomas cumple? Que escala de medida tiene?... Validez empírica (experimentos) Sirve para medir realmente el atributo? Es un modelo de Predicción válido? Cuál de las dos interesa en IS? 6
13 Fases de la Medición Formal Identificar atributos de una entidad del mundo real Identificar relaciones empíricas del atributo Definir la aplicación del mundo real a R Condición representacional Identificar relaciones numéricas para cada relación empírica Comprobar que las relaciones numéricas preservan y son preservadas por las empíricas Teoría Representacional de la Medición 14 La Medición debe: Representar adecuadamente los atributos a los que se asocian números o símbolos y Preservar las relaciones que tienen los elementos, objeto de la medición. Las manipulaciones en el sistema numérico o simbólico deben tener sentido en el mundo real. 7
15 Nominal Se clasifica cada entidad (Código por lenguajes) Permite cualquier biyección Ordinal Tipos de Escala (i) Se clasifican las entidades en grupos ordenados (Fallos: muy graves, graves, leves o cosméticos) Permite cualquier aplicación monótona 16 De Intervalo La diferencia existente entre un valor y otro consecutivo en orden es siempre la misma. Preserva diferencias. grados Celsius o centígrados Permite cualquier transformación afín M=aM +b Tipos de Escala (ii) 8
17 Tipos de Escala (iii) De Ratio Cumple las condiciones de la escala de intervalo, y además hay un cero de referencia (grados Kelvin, LDC de un programa ) Permite cualquier cambio de escala (M=aM / a>0) Absoluta Se mide siempre contando elementos y sólo es posible una representación: el recuento real de elementos Número de personas en un proyecto Sólo permite la Identidad M=M 18 Tipos de Escala (iv) Que se puede decir de las entidades medidas que tenga sentido (Meaningfulness)? Debe ser invariante frente a las transformaciones propias de la escala. El número de errores encontrados durante los test de integración fue de 100 El coste de depuración de cada error en el programa X fue de al menos 100 Un error semántico se depura en el doble de tiempo que uno sintáctico 9
19 Ejemplo escala (i) C={diagramas de flujo} Atributo: complejidad Medida: número de decisiones binarias V(G) V(G1) = V(G2) G1 y G2 son igual de complejos? G1 G2 20 Ejemplo escala (ii) Tipo de Escala Nominal Transformación Admisible Operadores básicos Ejemplos Cualquier Determinación de Etiquetas del tipo: transformación uno a igualdad Nombre de los lenguajes uno Perfil Profesional (Gestor, Ingeniero de software, Programador, etc.) Ordinal y 1 > y 2 si x 1 > x 2 Las de arriba y mayor que, menor que Rankings y Ordenaciones: Prioridad y severidad Niveles del CMM 10
21 Ejemplo escala (iii) Tipo de Escala Transformación Admisible Operadores básicos Ejemplos Ratio Y= ax a>0 Las de arriba e Intervalos de tiempo igualdad de ratios Coste, esfuerzo, longitud Absoluta Y=x Todos Contadores Probabilidad 22 Modelo Estructural (Kitchenham) Mundo real Entidad (a medir) se aplica a (1:1) Mundo formal Valor (medida) posee (m:n) se expresa en (1:1) Atributo (dimensión) cuantifica (m:n) Unidad pertenece a (1:1) Tipo de escala 11
23 Métricas del Software Medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado (IEEE, 1993). Entidades software Atributo j Métrica(entidad i ) E Medidas Regla de asignación de valores a entidades R Qué métricas conoce? 24 Clasificación de las Métricas (i) Directas / Indirectas De atributos que son/no son mensurables directamente Longitud de un código fuente Tiempo para desarrollar un programa. Productividad de un programador. Simples / Compuestas Compuestas: tratan de capturar atributos cualitativos por medio de medidas directas/indirectas que se ponderan. Interpretación, comparación de resultados... Objetivas o Subjetivas 12
25 Clasificación de las Métricas (ii) Atributos externos, que dependen del comportamiento del producto en un entorno determinado: Usabilidad Integridad Eficiencia Reusabilidad Portabilidad Atributos internos del producto: Medidas de tamaño (longitud del código, funcionalidad Medidas de diseño Acoplamiento: grado de interdependencia entre módulos Cohesión: grado en el los componentes locales de un módulo colaboran para realizar una tarea concreta. 26 Clasificación (Fenton-i) Producto Atributo interno Atributo externo Especificaciones Diseño Tamaño, reutilización, modularidad, redundancia, funcionalidad, sintaxis, corrección Tamaño, reutilización, modularidad, cohesión, acoplamiento, funcionalidad Fácil de comprender, fácil mantenimiento Calidad, complejidad fácil mantenimiento Código Tamaño, reutilización, modularidad, cohesión, acoplamiento, funcionalidad, complejidad algorítmica... Test Tamaño Cobertura Calidad Calidad, complejidad fácil mantenimiento Fiabilidad fácil uso 13
27 Clasificación (Fenton-ii) Entidades Atributo interno Atributo externo Procesos y Recursos Construcción de Especificaciones Diseño Tº de esfuerzo, nº de cambios Tº de esfuerzo, nº de errores en las especificaciones Calidad, Coste, Estabilidad Efectividad-Costes Test Tº, Esfuerzo, Nº de errores encontrados Efectividad-Costes, Fiabilidad, Estabilidad Personal Edad, Coste Productividad, Experiencia Equipos Tamaño, Nivel de Comunicación Productividad, Calidad Software Precio, Tamaño Usabilidad, Fiabilidad.. Hardware Precio, Memoria, Rapidez Fiabilidad 28 Ejemplo de Medidas (i) Recursos Atributos Medidas posibles Tamaño del equipo Número de personas asignadas Personal asignado Experiencia Años de experiencia en programación Perfil profesional Perfil profesional (Jefe de proyecto, Analista, Programador) Herramientas CASE Tiempo Tipo Se utiliza? Fechas comienzo y fin Duración Nombre del tipo Si/No Fechas del calendario Días (laborables o de calendario). Qué ESCALA tienen? 14
29 Ejemplo de Medidas (ii) Producto Atributos Medidas posibles Número de módulos/programas Número de puntos función Tamaño Número de unidades físicas Sistema Número de líneas físicas de código fuente Número de bytes de memoria requeridos Densidad de defectos Número de defectos/módulos, programas Número de defectos/puntos función Programa Longitud Líneas físicas de código fuente Sentencias lógicas de código fuente 30 Ejemplo de Medidas (iii) Producto Atributos Medidas posibles Unidad Número de caminos LI Complejidad de Mc cabe Documento Longitud Número de páginas Defectos Tipo Origen Gravedad Esfuerzo_Corrección Tiempo_Corrección Nombre del tipo Lugar/actividad donde se localizó Clasificación ordinal Número de horas*personas Días/Horas desde que se origina hasta eliminación 15
31 Ejemplo de Medidas (iv) Proceso Atributos Medidas posibles Proceso de desarrollo Diseño Duración Hitos Esfuerzo_Desarrollo Cònformidad estándares Finalización Duración Calidad Días de Calendario o Laborables Fechas Horas, días, meses Número_desviaciones/proyecto Número_desviaciones/fase %finalización/duración total proyecto %finalización/esfuerzo total proyecto %finalización/ Tareas totales proyecto Días de Calendario o Laborables Densidad de defectos 32 Ejemplo de Medidas (v) Proceso Atributos Medidas posibles Pruebas Volumen Progreso # casos planificados # casos ejecutados # casos superados % de superados/planificados Mantenimiento Coste Esfuerzo Volumen Solicitudes de cambios Estado Esfuerzo # Euros/año # Días (horas)/año # cambios_solicitados en espera Nombre del estado de la solicitud Esfuerzo estimado (horas) para solicitudes pendientes 16
33 Otras clasificaciones (i) Medidas Intra e Intermodulares Cohesión, Acoplamiento... Cómo se definen? Clasificación de Medidas de Complejidad Tamaño (LDC) Tamaño es igual a Longitud? De Flujo de Control (Mc Cabe) De Flujo de Información ((Henry-Kafura) Ciencia del Software (Volumen) 34 Otras clasificaciones (ii) Clasificación en Orientación al objeto (Zuse) Diseño Implementación Sistema Nº Métodos LDC Árboles Profundidad LDC Clases Nº de Atributos LDC Clasificación teórica (Zuse) Por tipo de axiomas que cumplen 17