Professional Documents
Culture Documents
SOFTWARE
1
MEDICIÓN DEL SOFTWARE
Las Frases:
“ Software Engineers are not just good
programers”
[Parnas99]
2
MEDICIÓN DEL SOFTWARE
1. Conceptos básicos
2. Medidas y modelos
3. Alcance de las métricas
4. Clasificación de las métricas
Procesos
Productos
Recursos
5. Recogida de datos métricos
Base Histórica
Obtención de información
Método Objetivo/Pregunta/Métrica
6. Medición de atributos internos del producto
Longitud
Funcionalidad
Complejidad
Medidas estructurales
7. Medición de atributos externos del producto
8. Medición de recursos
9. Métricas para sistemas orientados a objetos
3
MEDICIÓN DEL SOFTWARE
La Frase:
“ Debemos recordar que otras disciplinas
científicas ya han aplicado los
conceptos básicos de la medición. En
Ingeniería del Software no hay que
reinventar demasiado, simplemente
aplicar y adaptar la teoría ya
existente a las métricas del software”
[Dolado00, pag 39]
4
MEDICIÓN DEL SOFTWARE
Entidad se aplica a
1
medida 1
Valor
1..*
1 (magnitud)
posee
1..* 1..*
mide
se expresa en
Atributo 1
1
cuantifica
* Unidad
*
7
1. Conceptos Básicos
Métrica
Medida cuantitativa del grado en que un sistema, componente o proceso
posee un atributo dado (IEEE, 1993).
Indicador
Métrica o combinación de métricas que proporcionan una visión
profunda, del proceso de software, del proyecto de software o del
producto en sí .
Los indicadores de proceso permiten tener una visión profunda
de la eficacia de un proceso ya existente. Se recopilan de todos los
proyectos de la organización durante un largo período de tiempo
con objeto de obtener mejoras de los procesos de software a largo
plazo.
Los indicadores de proyecto permiten:
Evaluar el estado del proyecto en curso.
Seguir la pista de los riesgos potenciales.
Detectar áreas de problemas antes de que sean críticas.
Ajustar el flujo y las tareas del trabajo.
Evaluar la habilidad del equipo del proyecto en controlar la
calidad de los productos.
Los indicadores de producto permiten evaluar su calidad.
Modelo
Una abstracción de la realidad que permite observar los detalles de una
entidad o concepto desde una perspectiva particular. El modelo muestra
qué hacer no cómo hacerlo ni quién lo hace.
8
MEDICIÓN DEL SOFTWARE
La Frase:
“All models are wrong but
some are useful”
[George Box]
9
2. Medidas
Medidas directas e indirectas:
Una medida directa de una entidad o atributo
http://www.sei.cmu.edu/cmmi/
http://www.psl.com.co/
15
4. Clasificación de las métricas
del software: productos
16
4. Clasificación de las métricas
del software: recursos
Materiales
Herramientas
Métodos
...
Los recursos externos pueden obtenerse a
partir de los anteriores:
Coste
Productividad
17
5. Recogida de datos métricos
Elección
Extracción
Proceso, y recogida Valores de
Datos sin Datos Análisis
producto atributos
de datos refinar refinados
recurso derivados
MÉTRICAS
¿?...... ¿?..... ¿?...
Ejemplo de métricas derivadas con el método GQM 19
5. GQM (Goal Question Metric)
OBJETIVOS
Mejorar la planificación del proyecto.
Incrementar la Fiabilidad.
AREAS DE MEDICIÓN
Defectos entregados y defectos
entregados por tamaño.
...
DEFINICIÓN DE TÉRMINOS
PROBLEMA SOFTWARE.
MÉTODOS GQM:
Objetivo: mejorar la planificación del proyecto.
Pregunta: ¿Cuál es la precisión en la estimación del valor real
del plazo del proyecto?
Métrica: Precisión en la estimación del plazo (SEA)
SEA=Duración real /duración estimada
20
6. Medición de atributos
internos del producto
Código
El numero de líneas de código (LOC) es la medida más usada
para medir la longitud del código fuente.
Se han realizado muchas propuestas para contarlas. La más
extendida es la de HP que no contabiliza las líneas
comentadas ni en blanco. La abreviatura que se usa para
estas líneas es NCLOC o ELOC (effective lines of code).
Es útil medir por separado las líneas comentadas
(CLOC) para calcular esfuerzo, productividad, etc. La
longitud total será:
LOC = NCLOC + CLOC
También puede se útil calcular la densidad de
comentarios:
CLOC/LOC
Para propósitos tales como la prueba es importante conocer
cuanto código ejecutable se produce, para ello se mide el
número de sentencias ejecutables (ES), ignorando los
comentarios, declaraciones de datos y cabeceras.
Otra propuesta consiste en contabilizar únicamente el
código entregado al cliente. Se cuenta el número de DSI
(delivered source instruction) que incluye las declaraciones
de datos, las cabeceras y las instrucciones fuente.
22
6. Medición de atributos
internos del producto:
Referentes al código
Código
Número de métodos estáticos.
Afferent Coupling: Número de clases fuera del paquete que
dependen de clases dentro del paquete.
Efferent Coupling: Númeor de clases dentro del paquete que
dependen de clases fuera del paquete.
Nested Block Depth: profundidad en bloques anidados.
Lack of Cohesion in Methods (LCOM), Falta de cohesión en
métodos: Si es cerca de 1 quiere decir que se nos aconseja que
dividamos la clase en varias subclases.
23
6. Medición de atributos
internos del producto:
longitud
24
6. Medición de atributos
internos del producto:
longitud
Especificaciones y diseño
Los documentos de especificación de requisitos y
de diseño tienen representaciones de muchos tipos
(texto, gráficos, símbolos...)
La medición del atributo longitud exige la
identificación de elementos atómicos que puedan
contarse. Ejemplo:
Diagramas de flujo de datos: procesos,
entidades externas, almacenes de datos y flujo
de datos.
Especificaciones algebraicas: salidas, funciones,
operaciones y axiomas.
Se pueden definir páginas de documentación como
objetos atómicos.
Diagrama de transición de
Estado Estados, transiciones
estados
Ejemplo de componentes atómicos del análisis estructurado
25
6. Medición de atributos
internos del producto:
funcionalidad
26
6. Medición de atributos
internos del producto:
funcionalidad
Factor de peso
Item Simple Medio Complejo
Entradas externas 3 4 6
Salidas externas 4 5 7
Consultas externas 3 4 6
Ficheros externos 7 10 15
Ficheros internos 5 7 10
Items y factores de peso para calcular los PFS
15
PFS = ∑ ((número de items de la clase i) ∗ pesoi)
i=1
14
FCT = 0.65 + 0.01 ∑ Fi
i=1
FP = UFC * FCT
La técnica de puntos de función presenta problemas debido a
la subjetividad de la aplicación de los factores y a la
inexactitud de las medidas.
¿Puntos de función o líneas de código?
Ensamblador
320
C
128
COBOL
106
FORTRAN
106
Pascal
90
C++
64
Ada95
53
Visual Basic
32
SmallTalk
22
SQL
12
Java
58
http://irb.cs.uni-magdeburg.de/sw-eng/us/java/fp/
29
6. Medición de atributos
internos del producto:
funcionalidad
Puntos objeto
Utiliza una medida del tamaño que puede ser aplicada al
comienzo del desarrollo. Para realizar el cálculo de los puntos
objeto se realiza una medida inicial contando el número de
pantallas, informes y componentes de 3GL de la aplicación. A
cada objeto se le asigna un factor de peso según su grado de
dificultad. Los pesos reflejan el esfuerzo relativo requerido
para implementar un objeto de un determinado nivel.
Puntos de característica
Sistemas en tiempo real , control de procesos, sistemas
empotrados,...
30
6. Medición de atributos
internos del producto:
medidas estructurales
Flujo de control
Grafos de flujo de control
Las medidas de flujo de control generalmente se modelan
mediante grafos dirigidos denominados grafos de flujo o
grafos de flujo de control
Un grafo dirigido está formado por un conjunto de puntos
(nodos) y líneas (arcos). Cada arco tiene asignada una
dirección representada por una flecha.
Un arco se puede describir como un conjunto ordenado de
pares, <x,y>, donde x e y son los nodos conectados por el
arco.
En un grafo de flujo se pueden definir los siguientes conceptos:
Grado de entrada a un nodo: número de arcos que
llegan al nodo.
Grado de salida: número de arcos que salen del nodo.
Camino: secuencia consecutiva de arcos dirigidos, algunos
de los cuales pueden atravesarse más de una vez.
Camino simple: camino que no tiene arcos repetidos.
Nodos procedimiento: nodos cuyo grado de salida es
igual a uno.
Nodos predicado: nodos cuyo grado de salida esa mayor
que uno.
31
6. Medición de atributos
internos del producto:
medidas estructurales
x1 x2 xn Pn
x1, x2 ... xn
A
a1 Cn
a2 an Case A of
x xn
D0
if A then x
x1 x2 ... a1 : x1
a2 : x2
an : xn
A x
D2 D3
while A do X repeat X until A
x A
32
6. Medición de atributos
internos del producto: medidas
estructurales
La complejidad de un programa se
mide mediante el número ciclomático
(v) de su grafo de flujo (F):
v(F) = e – n + 2
siendo e el número de arcos y n el
número de nodos de F.
El número ciclomático:
Mide el número de caminos linealmente
independientes.
Es un indicador útil de la dificultad de
prueba y mantenimiento de un programa o
módulo.
Para valores superiores a 10 en un
determinado módulo, éste puede ser
problemático.
33
6. Medición de atributos
internos del producto:
medidas estructurales
more complex,
11-20
moderate risk
complex, high risk
21-50
program
untestable program
greater than 50
(very high risk)
http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html
34
“DEMO”
http://www.hypercisioninc.com/jmetra/jmetradoc.html
http://www.it.swin.edu.au/projects/jmetric/products/jmetric/
http://www.qido.at/
35
Practica, referencias
http://www.eclipse.org
http://jalopy.sourceforge.net/
http://metrics.sourceforge.net/
36
7. Medición de atributos
externos del producto
MÉTRICA
CRITERIO
FACTOR Cuenta de fallos
Facilidad de
corrección
Grado de prueba
Mantenibilidad Chequeabilidad
Esfuerzo
Expansibilidad
Cuenta de
cambios
Descomposición del factor “mantenibilidad”
37
7. Medición de atributos
externos del producto
Desarrollo de Productos
software
Medición
Clasificación Resultados
Valoración
•DEFINICIÓN DE REQUISITOS:
Æ Especificación de QR (QRS).
•FASE DE PREPARACIÓN:
• FASE DE EVALUACIÓN:
40
7. Medición de atributos
externos del producto
Medición de la portabilidad
Se entiende por portabilidad la facilidad de mover una aplicación
de un entorno a otro.
La portabilidad se puede expresar como:
portabilidad = 1 - (ET/ER)
ET: medida de los recursos necesarios para mover el sistema a
otro entorno (Target Environment).
ER: medida de los recursos necesarios para crear el sistema en
el entorno residente (Resident Environment)
41
7. Medición de atributos
externos del producto
Eficiencia temporal:
eficiencia = efectividad/tiempo de tarea
Periodo de tiempo productivo:
43
7. Medición de atributos
externos del producto
44
7. Medición de atributos
externos del producto
45
8. Medición de recursos
46
8. Medición de recursos
Productividad
47
8. Medición de recursos
Equipos
La estructura del equipo del proyecto es un factor clave en la
productividad.
El factor particular que afecta a la productividad es la complejidad de
las comunicaciones: complejidad causada por el número de individuos
implicados y el método de comunicación requerido entre los miembros de
un proyecto (Grady/Caswell).
Equipos según su estructura: jerárquico, democrático, .....
Si se representa la estructura mediante un grafo (nodo= miembro, arco=
camino de comunicación entre miembros):
Tamaño: nº de nodos del grafo.
Densidad de comunicación: relación entre arcos y nodos.
...
Fenton establece la siguiente escala ordinal para medir la experiencia
de cada miembro del equipo: 0 (ninguna), 1 (familiaridad pero sin
experiencia, práctica), 2 (experiencia práctica de más de 20 h en un
proyecto), 3 (experiencia de entre 21 y 100h en varios proyectos), 4
(amplia experiencia).
La experiencia del equipo se calcula hallando la media de las medidas de
experiencia individual.
Algunos métodos como COCOMO utilizan escalas de medida ordinales
(muy baja, baja, nominal, alta y muy alta) para cada uno de los atributos
de personal: experiencia en la aplicación, en el lenguaje, en el uso de
herramientas, ...
La productividad del equipo no sólo depende de las
productividades individuales de sus miembros, sino también de
la comunicación entre ellos.
48
8. Medición de recursos
Métodos y herramientas
Existen pocos estudios sobre el grado en que las herramientas
aumentan la productividad.
Los modelos de estimación del esfuerzo requieren una medida del
nivel de uso de métodos y herramientas.
El modelo COCOMO incluye dos guías de coste: uso de herramientas y uso
de técnicas modernas de programación con escalas de medida (muy baja,
baja, nominal, alta, muy alta)
Fenton propone la siguiente escala para evaluar el uso de herramientas por
cada diseñador:
0 No se usan herramientas.
1 Las herramientas sirven de ayuda en el 20% de la documentación.
2 Las herramientas se usan para documentar al menos el 50% del
diseño de alto nivel.
3 Las herramientas se usan para documentar al menos el 50% del
diseño de alto nivel y diseño detallado.
4 Las herramientas se usan para el diseño y la generación automática
de código de al menos el 50% del sistema.
5 Las herramientas se usan para el diseño y la generación
automática de código de al menos el 90% del sistema.
50
9. Métricas para sistemas
orientados a objetos
51
9. Métricas para sistemas
orientados a objetos
Número de atributos
52
9. Métricas para sistemas
orientados a objetos
Encapsulamiento
53
9. Métricas para sistemas
orientados a objetos
Entrada:
1. Nombre del documento a revisar
Fichero externo:
1. Documento a
revisar
Consulta:
1. ¿Palabras procesadas?
Usuario
Corrector
ortográfico
Fichero
interno:
Salidas: 1. Diccionario
1. Número total palabras
revisadas
2. Número total de
errores detectados
3. Lista de palabras con
errores ortográficos