Cápsula 9. Medición de Software INTRODUCCIÓN "Lo que no se puede medir, no se puede controlar; lo que no se puede controlar no se puede gestionar; lo que no se puede gestionar, no se puede mejorar" (Peter Drucker) “No se puede predecir lo que no se puede medir” (Norman Fenton)” “Las métricas son un buen medio para entender, monitorizar, controlar, predecir y probar el desarrollo software y los proyectos de mantenimiento” (Briand et al., 1996) En general, la medición persigue tres objetivos fundamentales (Fenton y Pfleeger, 1997): • • • entender qué ocurre durante el desarrollo y el mantenimiento controlar qué es lo que ocurre en nuestros proyectos mejorar nuestros procesos y nuestros productos Cápsula 9. Medición de Software 1 Cápsula 9. Medición de Software INTRODUCCIÓN Las métricas pueden ser utilizadas para que los profesionales e investigadores puedan tomar las mejores decisiones. (Pfleeger, 1997). MÉTRICAS COMO MEDIO PARA ASEGURAR LA CALIDAD EN LOS PRODUCTOS / PROCESOS / PROYECTOS SOFTWARE Cápsula 9. Medición de Software 2 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN Una ontología ha de comprenderse como un entendimiento común y compartido de un dominio La medición de software es una disciplina relativamente joven, y no existe consenso general sobre la definición exacta de los conceptos y terminología que maneja. Cápsula 9. Medición de Software 3 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN Cápsula 9. Medición de Software 4 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN Sub-Ontología Caracterización y Objetivos de la Medición Software: Glosario de Conceptos Cápsula 9. Medición de Software 5 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN Sub-Ontología Caracterización y Objetivos de la Medición Software: Tabla de Interrelaciones Cápsula 9. Medición de Software 6 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN • Concepto: MÉTRICA • Definición. Una forma de medir y una escala, definidas para realizar mediciones de uno o varios atributos • Relaciones: – Una métrica está definida para uno o más atributos – Una métrica puede expresarse en una unidad (sólo para métricas cuya escala sea de tipo intervalo o ratio) • Ejemplos – “líneas de código” para el “tamaño” de un “módulo en C” o de un “programa en Python”. Cápsula 9. Medición de Software 7 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN • Concepto. MEDIDA • Definición. Resultado de una medición. • Relaciones – Una medida es el resultado de una medición • Ejemplos – 35.000 líneas de código, 200 páginas, 50 clases. – 5 meses desde el comienzo al fin del proyecto. – 0,5 fallos por cada 1.000 líneas de código. Cápsula 9. Medición de Software 8 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN Cápsula 9. Medición de Software 9 Cápsula 9. Medición de Software Cápsula 9. Medición de Software 10 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN ESCALAS NOMINAL. Escala más básica, que sitúa a las entidades en diferentes categorías asignando al atributo un nombre. Cuando un producto se rotula de acuerdo al cumplimiento de las especificaciones de diseño como "conforme y no conforme". o "crítico, grave, y menor". No se obtienen valores numéricos y no se puede realizar un orden de las observaciones con sentido. ORDINAL. Los atributos pueden ser ordenados en rangos, entre los mismos no es significativa. pero la distancia Suponga que a los clientes se les hace unas preguntas para valorar la calidad del producto. Los clientes valoran la calidad de acuerdo a las siguientes respuestas: 1 (excelente), 2 (bueno), 3 (regular), 3 (malo) 4 (pésimo). Estos datos son ordinales. Note que una valoración de 1 no indica que el servicio es dos veces mejor que cuando se da una valoración de 2. Sin embargo podemos decir que la valoración de 1 es preferiblemente mejor que 2, y así en los demás casos. Cápsula 9. Medición de Software 11 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN ESCALAS INTERVALO. Como la ordinal pero la distancia entre los atributos sí tiene sentido. Si se mide la temperatura en grados celsius, la distancia entre 30º y 40º es la misma que entre 60º y 70º. Sin embargo, hay que tener en cuenta que en esta escala el cero es arbitrario; por tanto no se puede decir que 50º es el doble de temperatura que 25º (aunque el valor si es el doble). RATIO. El mas útil en medición del software, ya que preserva el orden , el tamaño de los intervalos y también los ratios entre las entidades. Tiene un punto fijo de referencia: el cero (comienzo de la escala) y se incrementa en pasos iguales. Con estos valores de la escala se pueden hacer operaciones matemáticas de + , - , * , / Cápsula 9. Medición de Software 12 Cápsula 9. Medición de Software ONTOLOGÍA DE LA MEDICIÓN • Todo proceso de medición tiene como objetivo fundamental satisfacer necesidades de medición detectadas en la empresa en la que se lleva a cabo. • A partir de esta necesidad se identifican entidades y atributos a ser medidos. • Luego se definen las métricas necesarias (unidad en la que se expresa, escala a la que pertenece, atributo o atributos para los que se define) • Primero se definen métricas directas, luego indirectas, y finalmente criterios de decisión para satisfacer las necesidades de información planteadas inicialmente. Cápsula 9. Medición de Software 13 Cápsula 9. Medición de Software ESTÁNDARES Área Clave “Medición y Análisis” de CMMI Cápsula 9. Medición de Software 14 Cápsula 9. Medición de Software ESTÁNDARES Practical Software Measurement (PSM) (McGarry et al., 2002) se basa en la experiencia obtenida de organizaciones para saber cuál es la mejor manera de implementar un programa de medida software con garantías de éxito. Cápsula 9. Medición de Software 15 Cápsula 9. Medición de Software ESTÁNDARES ISO/IEC 15939. Este estándar internacional (2002) establece las actividades y tareas necesarias para identificar, definir, seleccionar, aplicar y mejorar de manera exitosa la medición de software dentro de un proyecto general o de la estructura de medición de una empresa. Cápsula 9. Medición de Software 16 Cápsula 9. Medición de Software ESTÁNDARES ISO/IEC 15939 Cápsula 9. Medición de Software 17 Cápsula 9. Medición de Software ESTÁNDARES MEDICIÓN EN ISO/IEC 12207. Es el estándar para los procesos de ciclo de vida del software. Este estándar se concibió para aquellos interesados en adquisición de software, así como desarrolladores y proveedores. El estándar indica una serie de procesos desde la recopilación de requisitos hasta la culminación del software. Cápsula 9. Medición de Software 18 Cápsula 9. Medición de Software ESTÁNDARES MEDICIÓN EN ISO/IEC 12207. El propósito del Proceso de medición es recolectar y analizar los datos relacionados con los productos desarrollados y procesos implementados al interior de la organización y sus proyectos, para apoyar la gestión efectiva de los procesos y demostrar objetivamente la calidad de los productos. Cápsula 9. Medición de Software 19 Cápsula 9. Medición de Software DEFINICIÓN DE MÉTRICAS Basili y Weiss (1984) y Rombach (1990). Autores y refinadores de GQM (Goal-QuestionMetric), un paradigma para desarrollar y mantener un programa de métricas . Proporciona una manera útil para definir mediciones tanto del proceso como de los resultados de un proyecto. GQM se puede aplicar a todo el ciclo de vida del producto, procesos, y recursos y se pude alinear fácilmente con el ambiente organizacional. Tiene como principio básico que la medición debe ser realizada, siempre, orientada a un objetivo. Objetivo Preguntas Métricas Cápsula 9. Medición de Software Objetivo Perseguido Pregunta N Pregunta 1 M1 ... Mn M1’ ... Mn’ 20 Cápsula 9. Medición de Software DEFINICIÓN DE MÉTRICAS Proceso GQM (aporte de van Soligen y Berghout, 1999) Cápsula 9. Medición de Software 21 Cápsula 9. Medición de Software MÉTRICAS DE SOFTWARE PROCESO DE RECOPILACIÓN DE MÉTRICAS Cápsula 9. Medición de Software 22 Cápsula 9. Medición de Software MÉTRICAS DE SOFTWARE Clasificación de las métricas de software según criterios: Cápsula 9. Medición de Software 23 Cápsula 9. Medición de Software MÉTRICAS DE SOFTWARE Según el contexto: Proceso: Se recopilan de todos los proyectos, y durante un largo periodo de tiempo Caracterizadas por: Control y ejecución del proyecto. Medición de tiempos de las fases. Proyecto: Permiten evaluar el estado del proyecto. Permiten seguir la pista de los riesgos. Producto: Se centran en las características del software y no en cómo se fabricó. También son productos los artefactos, documentos, modelos y componentes que conforman el software. Se miden cosas como el tamaño, la calidad, la totalidad, la volatilidad y el esfuerzo. Cápsula 9. Medición de Software 24 Cápsula 9. Medición de Software EJEMPLO. Supongamos una organización que lleva a cabo un proyecto de desarrollo de un software X. En un determinado momento el responsable del proyecto necesita saber si la productividad es adecuada, es decir: La necesidad de información es conocer el nivel de productividad de los programadores del proyecto en comparación con lo habitual en otros proyectos en la organización. Las métricas a utilizar podrían ser: Directas: LCF (líneas de código fuente escritas). El método de medición es contar las líneas utilizando como instrumento una herramienta CASE. HPD (horas-programador diarias). El método de medición es que el responsable del proyecto anota cada día las horas dedicadas por los programadores al proyecto. CHP (coste por hora-programador, en unidades monetarias). El método de medición es consultar el plan del proyecto, donde se tuvo que indicar este valor, previa consulta a un responsable de personal. Cápsula 9. Medición de Software 25 Cápsula 9. Medición de Software EJEMPLO Indirectas: HPT (horas-programador totales). La función de cálculo es una sumatoria de las HPD de cada día: [Métrica indirecta definida con base en sólo 1 métrica directa]. HPT = ∑HPD LCFH (líneas de código fuente por hora de programador). La función de cálculo es una simple división: LCFH = LCF / HPD [Métrica indirecta definida con base en 2 métricas directas]. CTP (coste total actual del proyecto, en unidades monetarias). La función de cálculo establece que el CTP es el producto del coste unitario de cada hora por el total de horas empleadas: CTP = CHP * HPT [Métrica indirecta definida con base en 2 métricas, una directa y otra indirecta]. CLCF (coste por línea de código fuente). La función de cálculo establece que el CLCF es el resultado de dividir el coste total actual del proyecto -en unidades monetarias- entre la cantidad de líneas de código fuente escritas: CLCF = CTP/ LCF. [Métrica indirecta definida con base en 2 métricas, una indirecta y otra directa]. Cápsula 9. Medición de Software 26 Cápsula 9. Medición de Software EJEMPLO Indicadores: PROD (productividad de los programadores). El modelo de análisis utiliza los valores de las métricas LCF, HPT, LCFH y CTP para establecer un valor cualitativo de la productividad de los programadores en este proyecto. El modelo se basa en extraer de una base histórica de proyectos de la organización los valores medios de LCF , HPT , LCFH (LCFHvm valor medio de líneas de código fuente por hora de programador) y CTP del subconjunto de proyectos similares (aquellos que tienen LCF entre el 80% y el 120%). Y la organización establece el siguiente criterio de decisión: 0.70 0.90 1.10 1.30 <= <= <= <= LCFH / LCFHvm < 0.70 LCFH / LCFHvm < 0.90 LCFH / LCFHvm < 1.10 LCFH / LCFHvm < 1.30 LCFH / LCFHvm se se se se se interpreta interpreta interpreta interpreta interpreta como como como como como PROD=’muy baja’. PROD=’baja’. PROD=’normal’. PROD=’alta’. PROD=’muy alta’. De modo que cuando se calcule el valor para el indicador (a partir de las métricas mencionadas) se podrá evaluar y entregar un concepto sobre la situación que dicho indicador pretende reflejar. Cápsula 9. Medición de Software 27 Cápsula 9. Medición de Software OTROS QUE SE PUEDEN UTILIZAR Número de defectos generados por desarrollador por hora Número de cambios a los requisitos Número de versiones con correcciones (patch) realizadas después de lanzar el producto Horas disponibles y ejecutadas por programador por semana Defectos descubiertos durante las pruebas Número de defectos introducidos al realizar una modificación. -------------------- FIN DEL DOCUMENTO Cápsula 9. Medición de Software 28
© Copyright 2024