Métricas de Software Itinerario

Anuncio
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
Descargar