Métricas de Software Itinerario Métrica Alcance de las Métricas en la Ingeniería de Software CMM assesment QIP Ingeniería de Software II Métricas de Software 2 1 Medición Debo definir una escala... Es el proceso por el cual números o símbolos son asignados a atributos de entidades del mundo real de modo de poder describirlos acorde a reglas claramente Debo poder identificar los objetos del definidas. dominio y especificar su comportamiento El objetivo debe estar previamente establecido. Establecer una relación entre dicha escala y los atributos de los objetos establecidos. Ingeniería de Software II Métricas de Software 3 Medición What is not measurable… make it measurable. Ingeniería de Software II Métricas de Software 4 2 Atributos Posibilidad de analizarlos en forma aislada Interno Atributo Externo Dependen del entorno... Se requiere integrar antes de poder analizarlos. Ingeniería de Software II Métricas de Software 5 Predicción Los atributos externos son indirectos y se deducen en función de atributos internos. En el proceso de predicción de atributos externos, debo poder calcular y/o obtener los atributos internos esperados para acertar en mi predicción Ingeniería de Software II Métricas de Software 6 3 Atributos Ingeniería de Software II Métricas de Software 7 Métricas de Software 8 Atributos Ingeniería de Software II 4 Atributos Ingeniería de Software II Métricas de Software 9 Sistema de Relaciones Empíricas “Nuestra intuición es el punto de partida para toda medición” Ingeniería de Software II Métricas de Software 10 5 Sistema de Relaciones Asignamos un descriptor a un aspecto de interés de un objeto de modo que nos permita compararlo con otros. Ingeniería de Software II Métricas de Software 11 Sistema de Relaciones Empíricas Diseño A Diseño A Primer Entrega Segunda Entrega Nuestra observación refleja una serie de reglas que estamos imponiendo sobre el dominio... Ingeniería de Software II Métricas de Software 12 6 Sistema de Relaciones“LaEmpíricas segunda entrega es mas confiable que la segunda” Diseño A Diseño A Primer Entrega Segunda Entrega Esas reglas definen una relación entre los objetos del dominio deducida de la medición de los atributos de las entidades. Ingeniería de Software II Métricas de Software 13 Sistema de Relaciones Empíricas Diseño A Diseño A Primer Entrega Segunda Entrega Decimos entonces que “mas confiable” es una Relación Empírica basada en el atributo indirecto “densidad de errores detectados durante la inspección”. Ingeniería de Software II Métricas de Software 14 7 Método Medición Identificar los atributos de las entidades del dominio Identificar relaciones empíricas para los atributos Identificar relaciones numéricas correspondientes a cada relación empírica Definir el mapping entre las entidades y los números Ingeniería de Software II Métricas de Software 15 Método Medición Identificar los atributos de las entidades del dominio Verificar que la semántica de las relaciones empíricas se preserva en las relaciones numéricas Identificar relaciones empíricas para los atributos Identificar relaciones numéricas correspondientes a cada relación empírica Definir el mapping entre las entidades y los números Ingeniería de Software II Métricas de Software 16 8 Asistencia de las Métricas en Software Entender y Modelar Procesos de Ingeniería de Software y Productos Asistencia en la Administración de Proyectos de Software Guiar Mejoras en Procesos de Ingeniería de Software Ingeniería de Software II Métricas de Software 17 Entender y Modelar Poder comparar líneas de base con evoluciones posteriores permite determinar la relación entre los atributos de un producto y una posible mejora. Debemos poder predecir el efecto de introducir un cambio en un parámetro. Ingeniería de Software II Métricas de Software 18 9 Entender y Modelar ¿Cuanto esfuerzo consume el desarrollo de software? ¿En qué fases del proceso de software consumimos más recursos? ¿Qué tipos de error y cambios son típicos en nuestros proyectos? Ingeniería de Software II Métricas de Software 19 Entender y Modelar – Ejemplo 1 “Distribución del Esfuerzo” (horas) Ingeniería de Software II SEL - NASA 200 años-staff sobre 25 proyectos Específico del Dominio Se puede utilizar como estimador durante la Preparación Métricas de Software 20 10 Entender y Modelar – Ejemplo 2 por clase “Distribución de Errores” (#) Ingeniería de Software II SEL - NASA 10000 errores sobre 5 años de operación Específico del Dominio Se conserva a lo largo de los proyectos Métricas de Software 21 Entender y Modelar – Ejemplo 2 por origen “Distribución de Errores” (#) Ingeniería de Software II SEL - NASA 10000 errores sobre 5 años de operación Específico del Dominio Se conserva a lo largo de los proyectos Métricas de Software 22 11 Entender y Modelar – Ejemplo 3 “Actividad de Cambio (# SLOCs) Ingeniería de Software II SEL - NASA Basado en 20 proyectos bajo ciclo de vida Waterfall Establecer una base para la actividad de cambio en SCM Indica si la actividad de cambio se sale de la espectativa – posible mala selección de ciclo de vida Métricas de Software 23 Administración de Proyectos Poder usar datos históricos para hacer estimaciones Poder aprender la relación existente entre parámetros Poder dar seguimiento Poder validar las mismas métricas Ingeniería de Software II Métricas de Software 24 12 Administración de Proyectos Ejemplo Planeamiento Estabilidad de Requerimientos Complejidad de Software Estimaciones: COCOMO 2.0 Ingeniería de Software II Métricas de Software 25 Administración de Proyectos Ejemplo Seguimiento Ingeniería de Software II Métricas de Software Usamos la actividad de cambio para Planning La desviación puede indicar que usamos el modelo equivocado. 26 13 Modelos en Métricas en Software Modelos de Estimación de Costo y Esfuerzo Modelos de Productividad Modelos de Métricas de Calidad Modelos de Recolección de Datos Modelos de Confiabilidad Modelos de Evaluación de Performance Modelos de Estructura y Complejidad Evaluación de Métodos y Herramientas Ingeniería de Software II Métricas de Software 27 Modelos en Métricas en Software Modelos de Estimación de Costo y Esfuerzo Modelos de Productividad Modelos de Métricas de Calidad Modelos de Recolección de Datos Modelos de Confiabilidad Modelos de Evaluación de Performance Modelos de Estructura y Complejidad Evaluación de Métodos y Herramientas Ingeniería de Software II Métricas de Software 28 14 Modelos Modelos de Productividad Un modelo de productividad definido en función de Valor y Costo... Productivity Value Quality Quantity Reliability Defects Cost Size Functionality Ingeniería de Software II Personnel Resources Time Hardware Money Software Complexity Environmental Constrains Problem Difficulty Métricas de Software 29 Modelos Modelos de Métricas de Calidad Product Operation Usability Communicativeness Reliability Consistency Accurancy Efficiency Device Efficiency Accessibility Completeness Product Revision Reusability Structuredness Maintainability Conciseness Metrics Device Independence Portability Legibility Self-descriptiveness Testability Ingeniería de Software II Traceability Métricas de Software 30 15 Modelos Modelos de Métricas de Calidad Usability Product Operation Communicativeness Accurancy Reliability Efficiency Consistency Device Efficiency Accessibility Completeness Product Revision Reusability Structuredness Maintainability Conciseness Metrics Device Independence Portability Legibility Self-descriptiveness Testability Ingeniería de Software II Traceability Métricas de Software 31 Modelos Recolección de Datos Debe formar parte integral de todos los procesos… Incluso del Producto Cada artefacto que es medido posee una forma particular de informarnos, debemos ser capaces de capturar esta información. Ingeniería de Software II Métricas de Software 32 16 CMM assessment - Level 2 Repeatable (Level 2) Software Configuration Management Software Quality Assurance Software Subcontract Management Software Project Tracking and Oversight Software Project Planing Requirement Management Control: Budget Schedule Standars Input: Requirements Constructing the System Output: Code Documentation Control: Staff Tools Ingeniería de Software II Métricas de Software 33 CMM assessment - Level 2 Control: Budget Schedule Standars Input: Requirements Constructing the System Output: Code Documentation Control: Staff Tools Debo definir métricas para cada aspecto visible… Requirements, Code, Documentation Ingeniería de Software II Métricas de Software 34 17 CMM assessment - Level 3 Defined (Level 3) Peer Reviews Intergroup Coordination Software Product Engineering Integrated Software Management Training Program Organization Process Definition Organization Process Focus Design Method Inspection Criteria System Design Define design Requirements Tools Staff Code, Unit Test Tools Staff Ingeniería de Software II Test Plans Tested Modules Integrate System Software Tools Staff Métricas de Software 35 CMM assessment - Level 3 Design Method Inspection Criteria System Design Requirements Define design Tools Staff Code, Unit Test Tools Staff Test Plans Tested Modules Integrate System Software Tools Staff Debo definir métricas para cada aspecto visible… Product attributs System design, Quality of Tested Modules Ingeniería de Software II Métricas de Software 36 18 QIP Quality Improvement Paradigm Setting Goal Step Planning Execution Postmortem Analysis Construction and Data Generation Step Analysis and Packaging Ingeniería de Software II Métricas de Software 37 QIP Goal Setting Step GQM (Goal Query Metric) QIP (Quality Improvement Paradigm) EF (Experience Factory) Building Software Competencies and Supplying them to Projects Ingeniería de Software II Métricas de Software 38 19 GQM Todo proceso de ingeniería requiere retroalimentación y evaluación. La construcción de software es una actividad de Ingeniería y como tal debe poseer disciplinas de medición. La medición debe poseer foco basado en modelos y objetivos (goals). Debemos entonces establecer objetivos medibles y dirigidos por el modelo apropiado. Ingeniería de Software II Métricas de Software 39 GQM - Goals Existen una variedad de perspectivas que pueden definir un objetivo: El cliente, la corporación e incluso el proyecto Ejemplos Objetivo del cliente: Satisfacción del usuario. Objetivo del Proyecto: Entrega en término. Objetivo de la Corporación: Continua mejora del proceso de desarrollo. (CMM level 3 assessment) Ingeniería de Software II Métricas de Software 40 20 GQM - Paradigm Definir objetivos corporativos y de proyecto Rastrear que datos “hablan” de ese objetivo Proveer un marco de trabajo para interpretar los datos y entender el enfoque sobre los objetivos Ingeniería de Software II Métricas de Software 41 GQM - Paradigm Los objetivos son definidos en forma operacional y refinados a través de una serie de preguntas cuantificables. Esas preguntas son usadas para extraer la información necesaria de los modelos. Métricas son asignadas a las respuestas, y la recolección de datos que responden a las preguntas nos otorgan el universo de interpretación. Ingeniería de Software II Métricas de Software 42 21 GQM - Proceso El flujo desde los objetivos hacia las métricas en GQM puede ser visto como un grafo dirigido. Question 3 M1 Ingeniería de Software II Question 2 Question 1 M2 Interpretación Definición Goal 1 M3 Métricas de Software 43 GQM - Proceso Ejemplo: Efectividad de usar estándares para la codificación Goal: Evaluate effectiveness of coding standard Who is using standard? Proportion of coder: - using standard - using language Ingeniería de Software II What is code quality? What is coder productivity? Experience of coders: - with standard - with language - with environment Métricas de Software Code Size Effort Errors 44 22 GQM - Proceso Desarrollar el conjunto de objetivos corporativos, de división y proyecto Construir preguntas para cada objetivo que lo definen en la forma más completa posible Especificar las métricas requeridas para contestar las preguntas Construir los procesos de recolección datos Recolectar, validar y analizar los datos obtenidos Ingeniería de Software II Métricas de Software 45 QIP Goal Setting Step GQM (Goal Query Metric) QIP (Quality Improvement Paradigm) EF (Experience Factory) Building Software Competencies and Supplying them to Projects Ingeniería de Software II Métricas de Software 46 23 EF Experience Factory La construccion de software es evolutiva y experimental. Es basado en las personas Los procesos y objetivos son variables. Las experiencias empacadas reusables requieren recursos adicionales dentro de la organización a fin de ser utilizadas Ingeniería de Software II Métricas de Software 47 EF The Process Project Organization Experience Factory Project / environment characteristics Characterize Set Goals Choose Process Tailorable goals, processes, tools products, resource models, defect models, …from simlar projects Execution Plans Data, lessons learned,... Execute Process Project analysis, process modification... Ingeniería de Software II Métricas de Software 48 24 EF The Process Project Organization Experience Factory Data, lessons learned, models Package Analyze Direct project feedback Generalize Products, lessons learned, models Experience Base Tailor Project characteristics Project Support Models, tools, baselines Ingeniería de Software II Métricas de Software Formalize 49 SEL - Estructura Ingeniería de Software II Métricas de Software 50 25 SEL – Foco de Componentes Org. Ingeniería de Software II Métricas de Software 51 SEL – Distribución del Esfuerzo Staff Process Analyst 5% Database Support 3% Development Process Analyst Database Support Development 92% Ingeniería de Software II Métricas de Software 52 26 Muchas Gracias ! Ingeniería de Software II Métricas de Software 53 27