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 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 Wh a t i s n o t me a s u r a b l e …ma k e i t me a s u r a b l e .
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 “ N u e s t r a i n t u i c i ó n e s e l p u n t o d e p a r t i d a p a r a t o d a m e d i c i ó 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
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
Sistema de Relaciones“ Empíricas L a s e g u n d a e n t r e g a e s mas confiable q u e l a s e g u n d a ”
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
D e c i m o s e n t o n c e s q u e “ mas confiable” e s u n a R e l a c i ó n E m p í r i c a basada en el atributo i n d i r e c t o “ d e n s i d a d d e e r r o r e s d e t e c t a d o s d u r a n t e l a i n s p e c c i ó 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
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
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 “ D i s t r i b u c i ó nd e l E s f u e r z o ” (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 “ D i s t r i b u c i ó nd eE r r o r e s ” ( # ) 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 “ D i s t r i b u c i ó nd eE r r o r e s ” ( # ) 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 “ A c t i v i d a dd eC a mb i o( #S L O C s ) 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 Quality
Quantity
Reliability Defects
Cost
Size Functionality
Ingeniería de Software II
Personnel Time Money Métricas de Software
Resources Hardware Software
Complexity Environmental Constrains Problem Difficulty 28
Modelos Modelos de Métricas de Calidad Usability Product Operation
D e b o d e f i n i r m é t r i c a s p a r a c a d a a s p e c t o v i s i b l e … 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 System Design
Tested Modules
Requirements
Tools Staff
Ingeniería de Software II
Test Plans
Tools Staff
Métricas de Software
System Software
Tools Staff
33
CMM assessment - Level 3 Design Method
Inspection Criteria System Design
Test Plans Tested Modules
System Software
Requirements
Tools Staff
Tools Staff
Tools Staff
D e b o d e f i n i r m é t r i c a s p a r a c a d a a s p e c t o v i s i b l e … 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
Execution Construction and Data Generation Step
Postmortem Analysis Analysis and Packaging
Ingeniería de Software II
Métricas de Software
35
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
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 “ h a b l a n ” d e e s e o b j e t i v o
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 2
Question 1
Question 3 M1
Ingeniería de Software II
M2
Métricas de Software
M3
41
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
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)
EF (Experience Factory)
Building Software Competencies and Supplying them to Projects
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
Project / environment characteristics
Characterize Set Goals Choose Process
Tailorable goals, processes, tools products, resource models, defect m o d e l s , … f r o m s i m l a r p r o j e c t s
Execution Plans Data, lessons learned,...
Execute Process 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
Package
Analyze
Direct project feedback
Generalize
Products, lessons learned, models
Experience Base
Tailor
Project characteristics Models, tools, baselines
Ingeniería de Software II
Project Support
Métricas de Software
Formalize
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 Process Analyst Database Support Development 92%