1. Métricas OO
Aparecieron por la necesidad de poder
cuantificar la calidad del software no tradicional.
El software orientado a objetos posee
características conceptuales que al no respetarlas
pueden afectar la calidad del producto.
Hay distintos tipos de MOO, como por ejemplo:
•Métricas orientadas a clases
•Métricas orientadas a operaciones
•Métricas para pruebas orientadas a objetos
•Métricas para proyectos orientados a objetos
2. Métricas Orientadas a Clase
Algunos métodos de este tipo de métricas son:
•Métodos ponderados por clase (C&K)
•Árbol de profundidad de herencia (C&K)
•Número de Descendientes (C&K)
•Tamaño de Clase (Lorenz y Kidd)
•Índice de Especialización (Lorenz y Kidd)
3. Métricas Orientadas a Clase
Métodos ponderados por clase (C&K)
Se basa en la idea de que el número de métodos y su
complejidad es un indicador razonable de la cantidad de
esfuerzo necesaria para implementar y comprobar una clase.
Mide la complejidad de una clase asignándole un complejidad
a cada método. Resulta ambigua dado que no ofrece ninguna
definición asociada a la complejidad.
Árbol de profundidad de herencia (C&K)
Se plantea sobre el árbol de herencia y mide la distancia desde
el nodo hasta la hoja más lejana.
Busca medir el grado de herencia que esta fuertemente a la
reutilización. Sin embargo, altos niveles de herencia pueden
traer problemas como la complejidad en el diseño y objetos
difíciles de testear.
5. Métricas Orientadas a Clase
Número de Descendientes (C&K)
Mide la calidad de la clase según la cantidad de
descendientes que ésta tenga. Utiliza como base para la
determinación de la calidad, el concepto de que si bien los
descendientes indican reutilización, una cantidad elevada de
descendientes puede diluir la abstracción utilizada para la
creación de la súper clase.
Tamaño de Clase (Lorenz y Kidd)
Busca medir el tamaño de clase sumarizando la cantidad de
operaciones y atributos.
Una clase grande indica alta responsabilidad para la clase y
baja reutilización.
6. Métricas Orientadas a Clase
Índice de Especialización (Lorenz y Kidd)
Mide el grado de especialización de una clase planteando una
relación entre la cantidad de métodos de una clase realizando
el siguiente cálculo:
IES = N° de operaciones redefinidas * nivel de jerarquía de clase
N° total de métodos
7. Métricas Orientadas a Operaciones
Existen menor cantidad de métricas de este tipo por el hecho
de que son las clases las que preponderan en el software OO.
•Tamaño medio de operación
•Complejidad de operación
•Número Medio de Parámetros por operación
Tamaño medio de operación (Lorenz y Kidd)
La cantidad de líneas de código no son una buena unidad de
medida para determinar la calidad de una operación, por lo
tanto para determinar ésta se persigue la contabilización de
mensajes. Muchos mensajes evidencian un alto grado de
responsabilidad por parte de la operación lo cual no es
aconsejable.
8. Métricas Orientadas a Operaciones
Complejidad de operación (Lorenz y Kidd)
En este caso puede utilizarse cualquier métrica existente para
el software tradicional debido a que esta medición no se ve
relacionada con el paradigma de la POO.
Número Medio de Parámetros por operación
Tan largo como sea el número de parámetros de operación,
más compleja será la colaboración entre objetos
9. Métricas Orientadas a Objetos
Se agrupan según características de diseño impotantes
Encapsulamiento
Porcentaje público y protegido
Esta métrica indica el porcentaje de atributos de una clase que
son públicos. Valores altos para PPP incrementan la
probabilidad de efectos colaterales entre clases.
Acceso público a miembros
Indica el número de clases (o métodos) que pueden acceder a
los atributos de otras clases, una violación de encapsulación.
Valores altos para APD producen potencialmente efectos
colaterales entre clases.
10. Métricas Orientadas a Objetos
Herencia
Número de Clases Raíz
Recuento de las distintas jerarquías de clases, que se describen
en el modelo de diseño. A medida que el NCR se incrementa,
el esfuerzo de comprobación también.
Número de Padres Directos
Es una indicación de herencia múltiple. NPD > 1 indica que la
clase hereda sus atributos y operaciones de más de una clase
raíz. Se debe evitar que NPD > 1 tanto como sea posible.
11. Métricas para proyectos
Orientados a Objetos
Le otorgan al jefe de proyecto una visión interna adicional
sobre el progreso de su proyecto
•Número de escenario
•Número de clases clave
•Número de subsistemas
Número de escenario
Es directamente proporcional al número de clases requeridas
para cubrir los requisitos, el número de estados para cada
clase, el número de métodos, atributos y colaboraciones.
12. Métricas para proyectos
Orientados a Objetos
Número de clases clave
Las clases claves son aquellas dedicadas al dominio del
negocio y siendo su implementacion más dedicada y su factor
de reutilización menor. Este tipo de clases deberá estar entre en
20 y el 40 % frente al total de las clases.
Número de subsistemas
Da una visión sobre la asignación de recursos, la planificación y
el esfuerzo de integración global. Pueden aplicarse sobre
proyectos pasados para estimar proyectos actuales.