34
1 MEDICIÓN DEL SOFTWARE

Médición del Software - us

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Médición del Software - us

1

MEDICIÓN DEL SOFTWARE

Page 2: Médición del Software - us

2

MEDICIÓN DEL SOFTWARE

1. Introducción

2. Conceptos básicos

3. Alcance de las métricas

4. Clasificación de las métricas

Procesos

Productos

Recursos

5. Clasificación de los atributos

6. Medición de atributos internos del producto

Longitud

Funcionalidad

Puntos de caso de uso

Código OO

Modelos conceptuales OO

7. Medición de atributos de los recursos

8. Resumen de las métricas

9. GQM

10. Caso práctico

Page 3: Médición del Software - us

3

1. Introducción: El informe CHAOS (1)

•Éxito: Proyectos terminados dentro del plazo y presupuesto. •Problemas: Proyectos terminados pero sin cumplir plazos o presupuesto. •Cancelados: Proyectos suspendidos durante el desarrollo.

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

31%40%

28% 23% 19%

53% 33%46%

49%46%

16%27% 26% 28%

35%

Éxito

Problemas

Cancelados

Page 4: Médición del Software - us

4

1. Introducción: El informe CHAOS (2)

Hay un porcentaje de proyectos de desarrollo muy alto que fracasan no por falta de presupuesto o tecnología sino por falta de gestión.

0%

10%

20%

30%

40%

50%

60%

CHAOS'94 CHAOS'96 CHAOS'98 CHAOS'00 CHAOS'06

Cancelados

Problemas

Éxito

Page 5: Médición del Software - us

5

1. Introducción: El informe CHAOS (3)

http://www.standishgroup.com/sample_research/PDFpages/extreme_chaos.pdf

Page 6: Médición del Software - us

6

2. Conceptos básicos

Métrica

Evaluación del grado en el cual un producto o proceso posee un atributo determinado (extensión, cantidad, dimensiones, capacidad o tamaño) (IEEE, 1993).

Medición

Proceso objetivo y empírico por el que se asignan números o símbolos a atributos de entidades del mundo real con objeto de describirlas (Fenton y Kitchenham, 1991)

Métrica directa e indirecta

Una métrica es directa si se puede medir directamente del atributo y su valor no depende de la medida de otros atributos (longitud del código fuente, duración del proceso de prueba, número de defectos...). Una métrica es indirecta si comprende la medición de varios atributos, es decir, si deriva de otros atributos (productividad, estabilidad de requisitos, densidad de defectos en un módulo, etc.) (Wohlin et al. 2000).

Métrica objetiva y subjetiva

Una métrica es objetiva si su valor no depende del observador y es subjetiva en caso contrario.

Page 7: Médición del Software - us

7

1. Conceptos básicos

La medición contribuye a superar algunos problemas habituales en el desarrollo del software:

Problema Medir ayuda a

Requisitos incorrectos

Desarrollar requisitos verificables expresados en términos medibles.

Toma de decisiones

Proporciona evidencia cuantificable para apoyar las decisiones.

Falta de control

Hacer más visible el desarrollo e identificar problemas anticipadamente.

Exceso de gasto

Realizar predicciones de coste y plazo justificables.

Costes de mantenimiento

Recomendar determinadas estrategias de prueba e identificar los módulos problemáticos.

Evaluación de nuevos métodos

Valorar los efectos en la productividad y la calidad .

Page 8: Médición del Software - us

8

2. Conceptos básicos

La posibilidad de medir es el fundamento de las disciplinas científicas y de ingeniería.

Sin poder medir es muy difícil evaluar y experimentar las técnicas y los métodos de ingeniería del software.

No se puede controlar lo que no se puede medir y no se puede predecir lo que no se puede medir.

Objetivos del proceso de medición:

Gestión durante el proceso de Ingeniería del Software, más concretamente:

Predicción: estimación de los atributos que tendrá una entidad que no existe aún (coste de un proyecto, esfuerzo necesario).

Evaluación: comprobación del cumplimiento de ciertas características por una entidad que ya existe (calidad del diseño, fiabilidad del software, etc.).

Experimentación en Ingeniería del Software.

Page 9: Médición del Software - us

9

2. Conceptos básicos

FORMULACIÓN

COLECCIÓN

ANÁLISIS

INTERPRETACIÓN

REALIMENTACIÓN

Definición de medidas y métricas

Obtención de datos

Cálculo de métricas

Evaluación de los resultados

Recomendaciones obtenidas

Proceso de medición de Roche

Page 10: Médición del Software - us

10

3. Alcance de las métricas

Las métricas del software abarcan muchas actividades y son múltiples las razones que justifican su uso :

Estimación de coste y esfuerzo (o al menos reducción de estos)

Modelos y medidas de productividad

Recolección de datos

Modelos y evaluación de la calidad (AENOR, ISO, etc.)

Modelos de fiabilidad

Están incluidos en la mayoría de los modelos de calidad.

La especialización de los modelos de fiabilidad permite aumentar el entendimiento y control de los productos.

Evaluación del rendimiento (Puede ser cualitativo)

Aunque es otro aspecto de la calidad, la valoración del rendimiento incluye características observables como tiempos de respuesta y características internas como eficiencia de los algoritmos.

Métricas estructurales y de complejidad

Para realizar predicciones sobre atributos de calidad (fiabilidad, facilidad de mantenimiento,...) se pueden medir atributos estructurales sobre representaciones del software que están disponibles antes que el código.

Gestión mediante métricas

La realización de gráficos basados en diferentes medidas a lo largo del proyecto permite conocer el estado del mismo.

Evaluación y comparación de métodos y herramientas

Las investigaciones cuidadosas, con análisis y mediciones controladas sobre una herramienta o método permiten hacerlos más productivos para situaciones particulares.

Page 11: Médición del Software - us

11

1. ¿En cuánto podría ser mejorada la productividad si no tuviese que gastar tiempo en mantenimiento?

2. ¿Cuánto tiempo le costó el último año adaptar su presupuesto en trabajar con nuevas versiones de compiladores, bases de datos o sistemas operativos?

3. ¿Cuáles de las aplicaciones que desarrolla su empresa demanda el mayor tiempo de soporte al usuario?

4. ¿Cuánto tiempo se gasta realmente en testing?

5. ¿Crée que sus desarrolladores dedican suficiente tiempo a actividades de diseño?

6. ¿Su proceso de desarrollo ha madurado en los últimos años?

7. ¿El esfuerzo dedicado a mejorar la calidad del software está reduciendo el tiempo que se dedica a corregir errores ?

8. ¿Con qué precisión es usted capaz de estimar proyectos futuros?

9. ¿En cuántos proyectos han trabajado cada uno de sus desarrolladores en el último año?

10. ¿Cuál es el número medio de horas por semana que sus desarrolladores dedican a un proyecto?

3. Alcance de las métricas

Fuente: Karl E. Wiegers, Process Impact, www.processimpact.com

Page 12: Médición del Software - us

12

4. Clasificación de las métricas

El primer paso de la medición es identificar los atributos o entidades a medir. Estos pueden ser de tres tipos:

Productos: componentes, entregas o documentos resultantes de una actividad de proceso.

Procesos: atributos de actividades relacionadas con el software.

Recursos: entidades requeridas por una actividad de proceso

Dentro de cada clase anterior se puede distinguir:

Atributos internos: Son aquellos que pueden ser medidos examinando el proceso, producto o recurso mismo.

Atributos externos: se miden con respecto a como el proceso, producto o recurso se relaciona con su entorno.

Page 13: Médición del Software - us

13

5. Clasificación de atributos

Atributos internos del producto:

Medidas de tamaño (longitud del código, funcionalidad...)

Medidas de diseño Acoplamiento: grado de interdependencia entre módulos

Cohesión: grado en el los componentes locales de un módulo colaboran para realizar una tarea concreta

Modularidad

.................

Medidas de complejidad (estructuras de datos, estructura lógica...)

...

Atributos externos, que dependen del comportamiento del producto en un entorno determinado:

Portabilidad

Fiabilidad

Usabilidad

Facilidad de mantenimiento

Escalabilidad

Page 14: Médición del Software - us

14

5. Clasificación de atributos

Generalmente, el interés de conocer el valor de un atributo interno es que pueda dar información sobre algún atributo externo de interés para el observador.

Atributos internos del producto

Atributos externos

influyen en

Ejemplo: el número de requisitos de una especificación de requisitos de sistema puede ayudarnos a predecir el esfuerzo asociado al proyecto.

Page 15: Médición del Software - us

15

6. Medición de atributos internos del producto

Los atributos internos describen los productos de software de forma que dependen únicamente del producto mismo.

El producto puede ser descrito en función de su tamaño. Se pueden definir un conjunto de atributos para medir el tamaño del software:

Longitud: tamaño físico del producto.

Funcionalidad: funciones que proporciona el producto al usuario.

Complejidad (de tiempo o espacio): recursos necesarios (de tiempo o memoria de ordenador) para implementar una solución particular.

Las propiedades estructurales del software son atributos internos relacionados con la calidad del producto. Los tipos de medidas estructurales son:

Flujo de control: secuencia en que se ejecutan las instrucciones.

Flujo de datos: seguimiento de cómo los datos se crean y se manejan por un programa.

Estructura de los datos: organización de los datos independiente del programa.

Los principales productos que resulta útil medir son la especificación, el diseño y el código.

Page 16: Médición del Software - us

16

6. Medición de atributos internos del producto:

Longitud

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.

Page 17: Médición del Software - us

17

6. Medición de atributos internos del producto:

funcionalidad

Puntos de función (PF) Medida de la funcionalidad propuesta por Albrecht. Es una

medida del producto y del proceso que se sigue para desarrollarlo. Está centrado en la “funcionalidad” o “utilidad” del producto.

Los PF se obtienen utilizando una relación empírica basada en items del producto y valoraciones subjetivas de la complejidad del mismo.

El paso previo al cálculo de los PF, es el cálculo de PFS (unadjusted function point count), puntos de función sin ajustar: Se determinan los siguientes elementos de alguna

representación del software: Entradas externas: entradas de usuario que

proporcionan datos a la aplicación. Salidas externas: Salidas que proporcionan

información al usuario. Consultas externas: peticiones interactivas que

requieren una respuesta. Ficheros externos: interfaces con otros

sistemas legibles por la máquina. Ficheros internos: ficheros maestros lógicos del

sistema. A cada elemento se le asigna un índice de

complejidad entre tres: simple, media o complejo. A cada índice le corresponde un factor de ponderación.

Page 18: Médición del Software - us

18

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

15 PFS = ((número de items de la clase i) pesoi) i=1

Para completar el cálculo de los PF es necesario conocer el factor de complejidad técnica (FCT) que engloba los 14 factores.

Componentes del factor de complejidad técnica F1 Copias de seguridad y

recuperación fiables

F6 Entrada interactiva de

datos F11 Reusabilidad

F2 Comunicación de datos F7 Facilidad operativa F12 Facilidad de instalación

F3 Funciones distribuidas F8 Actualización interactiva F13 Múltiples sitios

F4 Rendimiento F9 Interfaces complejas F14 Facilidad de cambios

F5 Configuración muy

cargada F10 Procesamiento complejo

Items y factores de peso para calcular los PFS

Page 19: Médición del Software - us

19

6. Medición de atributos internos del producto:

funcionalidad

Cada componente de la tabla anterior se sitúa en una escala entre 0 y 5 según su influencia:

Ninguna influencia 0

Incidental 1

Moderado 2

Medio 3

Significativo 4

Esencial 5

La siguiente fórmula combina los 14 factores:

14

FCT = 0.65 + 0.01 Fi i=1

Los valores constantes de la ecuación y los factores de

ponderación se obtienen empíricamente.

Cálculo final de los puntos de función:

PF= PFS* 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?

Existen factores de conversión (Albrecht/Jones) que permiten relacionar el número medio de LOC requerido para construir un PF en diferentes lenguajes.

Page 20: Médición del Software - us

20

6. Medición de atributos internos del producto:

funcionalidad

Lenguaje de Programación LOC/PF

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/

Fuente: Pressman, 5ª edición, pág. 62

Page 21: Médición del Software - us

21

6. Medición de atributos internos del producto:

funcionalidad

Ejemplo de puntos de función

Una representación de un sencillo programa de revisión ortográfica. El sistema tiene una entrada (el nombre del archivo que ha de revisarse), tres salidas (el número total de palabras revisadas, el número total de errores y una lista de las palabras erróneamente escritas), una consulta (el usuario puede obtener interactivamente el número de palabras procesadas hasta el momento), un archivo externo (el documento a inspeccionar y un archivo interno (el diccionario). Para este sencillo programa, el número de elementos es 1+3+1+1+1=7.

Corrector ortográfico

Usuario

Salida:

1. Numero de palabras revisadas 2. Número total de faltas de ortografía 3. Lista de palabras con errores ortográficos

Consulta:

1. ¿cuántas palabras llevamos procesadas?

Entrada:

1. Nombre del documento a revisar

Archivo externo:

1. Documento que se va a revisar

Archivo interno:

Diccionario

Page 22: Médición del Software - us

22

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.

Tipo de objeto Simple Medio Difícil

Pantalla 1 2 3

Informe 2 5 8

Componente 3GL - - 10

Tipos de objeto y factores de peso

Puntos de característica

Sistemas en tiempo real , control de procesos, sistemas empotrados,…

Page 23: Médición del Software - us

23

6. Medición de atributos internos del producto: Puntos de casos de uso

Puntos de caso de uso

Los casos de uso son la base para estimar el esfuerzo (en técnicos– hora) de un proyecto software tomando de partida la especificación de requisitos del proyecto en cuestión.

La métrica punto de caso de uso, que se denota UCP, es:

UCP= UUCP * TCF * EF

UUCP representa los puntos de casos de uso no ajustados, que es una suma ponderada del número de actores y del número de casos de uso de la especificación.

Peso de los actores:

Peso de los casos de uso:

Tipo de actor Peso

Interfaz de programa 1

Interfaz interactiva 2

Interfaz gráfica 3

Número de pasos/Número de clases de

análisis Peso

Menos de 4 pasos ó 5 clases de análisis 5

Entre 4 y 7 pasos ó entre 6 y 10 clases de

análisis

10

Otro caso 15

Page 24: Médición del Software - us

24

6. Medición de atributos internos del producto: Puntos de casos de uso

Puntos de caso de uso (continuación)

TCF representa algunos aspectos no funcionales del sistema y se conoce como factor de complejidad técnica. Para calcular el valor de TCF se toma de la siguiente tabla y cada factor se multiplica por un valor entre 0 y 5 según la incidencia de dicho factor en el proyecto.

13

TCF= 0.6 + 0.01 Wi * FIi i=1:

Peso de los casos de uso:

Descripción del factor técnico Peso

Sistema distribuido 2

Rendimiento 1

Eficiencia 1

Procesamiento interno complejo 1

Reusabilidad 1

Facilidad de instalación 0.5

Facilidad de uso 0.5

Portabilidad 2

Facilidad de cambio 1

Concurrencia 1

Seguridad (condiciones especiales) 1

Otorgue acceso directo a terceras personas 1

Facilidad de enseñarlo a los usuarios finales 1

Page 25: Médición del Software - us

25

6. Medición de atributos internos del producto: Puntos de casos de uso

Puntos de caso de uso (continuación)

EF representa el nivel de experiencia del personal técnico del proyecto y la estabilidad de los requisitos. Para calcular el valor de EF se aplica la siguiente ecuación:

8

EF= 1.4 + (-0.03) Wi * FIi i=1

Varios estudios empíricos basados en proyectos reales han dado como resultado que el esfuerzo para desarrollar un Punto de caso de uso es aproximadamente de 18 técnico– hora. Esto permite calcular el esfuerzo de desarrollo

Descripción del factor de entorno (Wi) Peso

Familiarizados con las metodologías a usar 1.5

Trabajadores a tiempo parcial -1

Capacidad de análisis 0.5

Experiencia en el dominio de la aplicación 0.5

Experiencia en OO 1

Motivación 1

Dificultades para programar -1

Requisitos estables 2

Page 26: Médición del Software - us

26

6. Medición de atributos internos del producto:

Código OO

La mayoría de las métricas orientadas a objetos se basan en las características distintivas del software orientado a objetos respecto al software convencional:

Localización: forma en que se concentra la información dentro de un programa

Encapsulamiento: empaquetamiento de una colección de elementos.

Ocultamiento de la información: supresión de los detalles operativos de un componente.

Herencia: mecanismo que permite la propagación de responsabilidades de un objeto a otro.

Abstracción: mecanismo que permite concentrarse en los detalles esenciales de un componente sin considerar los de nivel inferior.

Page 27: Médición del Software - us

27

6. Medición de atributos internos del producto:

Código OO

Código orientado a objeto:

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úmero 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.

Page 28: Médición del Software - us

28

6. Medición de atributos internos del producto:

Modelos conceptuales OO

Métricas orientadas a clases CK (Chidamber/Kemerer)

Métodos ponderados por clase (MPC): recoge la noción de complejidad.

Para una clase C con M1, M2, ...,Mn métodos con un peso de complejidad c1, c2, ..., cn respectivamente,

MPC = ci

Profundidad del árbol de herencia (PAH): longitud del camino máximo entre un nodo y la raíz del árbol.

Número de hijos (NH): es el número de descendientes inmediatos de una clase (nodo).

Acoplamiento entre clases (AC): número de clases que se acoplan con una clase dada.

Respuesta para una clase (RPC): es el número de métodos locales de una clase más el número de métodos llamados por dichos métodos locales.

Métrica de falta de cohesión (MFC): número de métodos locales que no acceden a atributos comunes.

Page 29: Médición del Software - us

29

6. Medición de atributos internos del producto:

Modelos conceptuales OO

Métricas orientadas a clases CK (Chidamber/Kemerer)

Ejemplo:

Profundidad del árbol de herencia (PAH): longitud del camino máximo entre un nodo y la raíz del árbol.

Animal

Invertebrados Vertebrados

Sangre fría Sangre calienteSin esqueleto Con esqueleto externo

PAH(dg)=3

Page 30: Médición del Software - us

31

7. Medición de atributos de los recursos

Los recursos incluyen cualquier entrada en la producción de software. Las medidas de recursos ayudan a controlar el proceso indicando cómo el proceso está usando y transformando las entradas en salidas.

Los recursos internos que se pueden medir directamente son:

Personal

Materiales

Herramientas

Métodos

...

Los recursos externos pueden obtenerse a partir de los anteriores:

Coste

Productividad

productividad = cantidad de salida / cantidad de entrada

Page 31: Médición del Software - us

33

8. Resumen de métricas

ATRIBUTOS ENTIDADES

Internos Externos

Productos Especificaciones,

diseño, código...

Tamaño, reusabilidad,

modularidad, funcionalidad,

acoplamiento, complejidad...

Comprensión, mantenibilidad,

calidad, fiabilidad ...

Procesos Realización de la

especificación, del

diseño, del código...

Tiempo, esfuerzo, cambios en

requisitos, fallos en la

especificación

Calidad, coste, estabilidad

Recursos Personal, equipos,

hardware, software...

Edad, precio, tamaño del equipo,

velocidad, tamaño de memoria

Productividad, experiencia,

calidad, usabilidad, fiabilidad

Page 32: Médición del Software - us

34

9. GQM (Goal Question Metric)

El enfoque GQM puede utilizarse para seleccionar e implementar métricas de una manera efectiva (http:www.gqm.nl). Se aplican varios pasos:

Lista de los objetivos y agentes. Áreas de medición. Definición de términos. Para cada objetivo obtener las preguntas que deben

contestarse para saber si se están cumpliendo los objetivos.

Decidir qué medir para poder contestar las preguntas de forma adecuada.

MEDIDAS INTERMEDIAS:

OBJETIVO: Evaluar la efectividad del estándar de codificación

PREGUNTAS: ¿Quien está usando

el estándar?

¿Cual es la

productividad del

codificador?

¿Cual es la calidad

del código?

Técnicos usando

el estándar

Cantidad de código

Errores Esfuerzo en codificación con y sin estándar

Ejemplo de métricas derivadas con el método GQM

Total técnicos

MÉTRICAS

¿?...... ¿?... ¿?.....

Page 33: Médición del Software - us

35

9. GQM (Goal Question Metric)

OBJETIVOS

Mejorar la planificación del proyecto.

Incrementar la contención de defectos.

Incrementar la Fiabilidad.

AREAS DE MEDICIÓN

Defectos entregados y defectos entregados por tamaño.

...

DEFINICIÓN DE TÉRMINOS

PROBLEMA SOFTWARE.

ERROR, DEFECTO, FALLO, AVERÍA..

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 (PEP) PEP=Duración real /Duración estimada

Page 34: Médición del Software - us

36

Referencias

Binder, R., Testing Object-Oriented Systems, American Programmer, 7(4), 22-29, 1994.

Clemons RK, Project Estimation with Use Case Points Disponible en http://www.stsc.hill.af.mil/CrossTalk/2006/02/0602Clemmons.pdf

Chidamber, S.R. y Kemerer, C.F., A metrics suite for object-oriented design ,IEEE Trans. Software Engineering, 20(6), 476-493, 1994.

Churcher, N.I. and Shepperd, M.J., Towards Conceptual Framework for Object-Oriented Metrics, ACM Software Engineering Notes, 20 (2), 67-76, 1995.

Dolado, J.J. y Fernández, L. (coordinadores). “Medición para la Gestión en la Ingeniería del Software”. Ra-ma, 2000.

Fenton, N.E. y Pfleeger, S.L., Software metrics. A rigorous & practical approach , 1997.

Fenton, N.E. Y Kitchenham B., Validating Software Meaures, Journal of Software Testing, Verification and Reliability 1(2): 27-42, 1991

Genero M., Piattini M., Calero C. (coordinadores), Metrics for Software Conceptual Models, Imperial College Press, 2005.

IEEE Software Engineering Standards,. Standard 610.12-1990, 1993.

Lorenz, M. and Kidd, J., Object_oriented Software Metrics, Prentice Hall 1994.

McConnell, S., Desarrollo y gestión de proyectos informáticos, Mc Graw Hill 1997.

Putnam, Lawrence H and Myers W., Five Core Metrics, DH Publishing, 2003

Pressman, R.S., Ingeniería del Software. Un enfoque práctico, Mc Graw Hill, 2005.

Wohlin C. Et al. Experimentation in Software Engineering: An Introduction. Kluwer Academic Publisher, 2000