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
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 definidas. Debo poder identificar los objetos del 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 Whatisnotmeasurable makeitmeasurable. Ingeniería de Software II Métricas de Software 4
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
Atributos Ingeniería de Software II Métricas de Software 7
Atributos Ingeniería de Software II Métricas de Software 8
Atributos Ingeniería de Software II Métricas de Software 9
Sistema de Relaciones Empíricas Nuestraintuicióneselpuntodepartidaparatoda medición Ingeniería de Software II Métricas de Software 10
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 Primer Entrega Diseño A 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
Sistema de Relaciones Empíricas Lasegundaentregaes mas confiable quelasegunda Diseño A Primer Entrega Diseño A 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 Primer Entrega Diseño A Segunda Entrega Decimosentoncesque mas confiable esunarelaciónempírica basada en el atributo indirecto densidaddeeroresdetectados durantelainspeción. Ingeniería de Software II Métricas de Software 14
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 Identificar relaciones empíricas para los atributos Identificar relaciones numéricas correspondientes a cada relación empírica Verificar que la semántica de las relaciones empíricas se preserva en las relaciones numéricas Definir el mapping entre las entidades y los números Ingeniería de Software II Métricas de Software 16
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
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óndelEsfuerzo (horas) SEL - NASA 200 años-staff sobre 25 proyectos Específico del Dominio Se puede utilizar como estimador durante la Preparación Ingeniería de Software II Métricas de Software 20
Entender y Modelar Ejemplo 2 por clase DistribucióndeErores (#) SEL - NASA 10000 errores sobre 5 años de operación Específico del Dominio Se conserva a lo largo de los proyectos Ingeniería de Software II Métricas de Software 21
Entender y Modelar Ejemplo 2 por origen DistribucióndeErores (#) SEL - NASA 10000 errores sobre 5 años de operación Específico del Dominio Se conserva a lo largo de los proyectos Ingeniería de Software II Métricas de Software 22
Entender y Modelar Ejemplo 3 ActividaddeCambio(#SLOCs) 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 Ingeniería de Software II 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
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 Usamos la actividad de cambio para Planning La desviación puede indicar que usamos el modelo equivocado. Ingeniería de Software II Métricas de Software 26
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 Modelos de Productividad Un modelo de productividad definido en función de Valor y Costo... Productivity Value Cost Quality Quantity Personnel Resources Complexity Reliability Size Time Hardware Environmental Constrains Defects Functionality Money Software Problem Difficulty Ingeniería de Software II Métricas de Software 28
Modelos Modelos de Métricas de Calidad Product Operation Product Revision Usability Reliability Efficiency Reusability Maintainability Portability Testability Communicativeness Accurancy Consistency Device Efficiency Accessibility Completeness Structuredness Conciseness Device Independence Legibility Self-descriptiveness Traceability Metrics Ingeniería de Software II Métricas de Software 29
Modelos Modelos de Métricas de Calidad Product Operation Product Revision Usability Reliability Efficiency Reusability Maintainability Portability Testability Communicativeness Accurancy Consistency Device Efficiency Accessibility Completeness Structuredness Conciseness Device Independence Legibility Self-descriptiveness Traceability Metrics Ingeniería de Software II Métricas de Software 30
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 Output: Code Documentation Control: Staff Tools Ingeniería de Software II Métricas de Software 31
CMM assessment - Level 2 Control: Budget Schedule Standars Input: Requirements Output: Code Documentation Control: Staff Tools Debodefinirmétricasparacadaspectovisible Requirements, Code, Documentation Ingeniería de Software II Métricas de Software 32
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 Test Plans Requirements System Design Tested Modules System Software Tools Staff Tools Staff Tools Staff Ingeniería de Software II Métricas de Software 33
CMM assessment - Level 3 Design Method Inspection Criteria Test Plans Requirements System Design Tested Modules System Software Tools Staff Tools Staff Tools Staff Debodefinirmétricasparacadaspectovisible Product attributs System design, Quality of Tested Modules Ingeniería de Software II Métricas de Software 34
QIP Quality Improvement Paradigm Planning Setting Goal Step Construction and Data Generation Step Execution Analysis and Packaging Postmortem Analysis Ingeniería de Software II Métricas de Software 35
QIP Goal Setting Step GQM (Goal Query Metric) QIP (Quality Improvement Paradigm) Building Software Competencies and Supplying them to Projects EF (Experience Factory) Ingeniería de Software II Métricas de Software 36
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 37
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 38
GQM - Paradigm Definir objetivos corporativos y de proyecto Rastrear que datos hablan deseobjetivo 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 39
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 40
GQM - Proceso El flujo desde los objetivos hacia las métricas en GQM puede ser visto como un grafo dirigido. Goal 1 Question 1 Question 2 Question 3 M1 M2 M3 Ingeniería de Software II Métricas de Software 41
GQM - Proceso Ejemplo: Efectividad de usar estándares para la codificación Goal: Evaluate effectiveness of coding standard Who is using standard? What is coder productivity? What is code quality? Proportion of coder: - using standard - using language Experience of coders: - with standard - with language - with environment Code Size Effort Errors Ingeniería de Software II Métricas de Software 42
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 43
QIP Goal Setting Step GQM (Goal Query Metric) QIP (Quality Improvement Paradigm) Building Software Competencies and Supplying them to Projects EF (Experience Factory) Ingeniería de Software II Métricas de Software 44
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 45
EF The Process Project Organization Experience Factory Characterize Set Goals Choose Process Execution Plans Execute Process Project / environment characteristics Tailorable goals, processes, tools products, resource models, defect models, fromsimlarprojects Data, lessons learned,... Project analysis, process modification... Ingeniería de Software II Métricas de Software 46
EF The Process Project Organization Experience Factory Data, lessons learned, models Direct project feedback Project characteristics Models, tools, baselines Analyze Products, lessons learned, models Project Support Experience Base Package Generalize Tailor Formalize Ingeniería de Software II Métricas de Software 47
SEL - Estructura Ingeniería de Software II Métricas de Software 48
SEL Foco de Componentes Org. Ingeniería de Software II Métricas de Software 49
SEL Distribución del Esfuerzo Staff Process Analyst 5% Database Support 3% Development 92% Development Process Analyst Database Support Ingeniería de Software II Métricas de Software 50
Muchas Gracias! Ingeniería de Software II Métricas de Software 51