<< Chapter < Page Chapter >> Page >
Breve descripción de la Clasificación de las Métricas Orientadas a Objetos según Chidamber&Kemerer.

Las métricas orientadas a objetos se centran en métricas que se pueden aplicar a las características de encapsulamiento, ocultamiento de información, herencia y técnicas de abstracción de objetos que haganúnica a esa clase.

Chidamber&Kemerer

Chidamber, S.R., D.P. y C.F.Kemerer,“Management Use of Metrics for Object-Oriented Software: An Exploratory Analysis”, IEEE Trans. Software Engineering.
proponen una familia de medidas para desarrollos orientados a objetos:

  • Métodos ponderados por clase (MPC): Tamaño y complejidad
  • Profundidadárbol de herencia (PAH): Tamaño
  • Número de descendientes (NDD): Tamaño, acoplamiento y cohesión
  • Acoplamiento entre clases (ACO): Acoplamiento
  • Respuesta para una clase (RPC): Comunicación y complejidad
  • Carencia de cohesión en los métodos (CCM): Cohesión interna

Estas métricas, en líneas generales, permiten averiguar cuán bien están definidas las clases y el sistema, lo cual tiene un impacto directo en la mantenibilidad del mismo, tanto por la comprensión de lo desarrollado como por la dificultad de modificarlo conéxito.

MÉTodos ponderados por clase

Los métodos ponderados por clase

Weighted methods per class (WMC)
asumen que n métodos de complejidad c1,c2,…cn se definen para la clase C. La métrica de complejidad específica que se eligiódebe normalizarse de manera que la complejidad nominal para un método toma un valor de 10. MPC = sumatorio de ci para cada i=1 hasta n.

El número de métodos y su complejidad son indicadores razonables de la cantidad de esfuerzo requerido para implementar y verificar una clase. Cuanto mayor sea el número de métodos, más complejo es elárbol de herencia. A medida que crece el número de métodos para una clase dada, más probable es que vuelvan más y más específicos de la aplicación, asíque se limita el potencial de reutilización. El MPC debe mantenerse bajo.

Profundidad delÁRbol de herencia

Todos los autores hacen notar la necesidad de medir las estructuras hereditarias en términos de profundidad o de densidad de nodos. Dichas jerarquías pueden medirse como la profundidad de cada clase dentro de su jerarquía, es decir, la longitud máxima desde el nodo que representa la clase hasta la raíz delárbol.

A medida que crece el valor del PAH, es más probable que las clases de niveles inferiores hereden muchos métodos. Esto da lugar a posibles dificultades cuando se intenta predecir el comportamiento de una clase y por lo tanto, mantenerla. Una jerarquía profunda lleva también a una mayor complejidad de diseño. Por otro lado, los valores grandes de PAH implican que se pueden reutilizar muchos métodos, lo que debe ser considerado como un elemento a favor de la mantenibilidad.

Si tenemos el siguienteárbol:

El valor del PAH para la jerarquía de las clases mostradas es de 4.

NÚMero de descendientes

Las subclases que son inmediatamente subordinadas a una clase de la jerarquía de clases se denominan sus descendientes. A medida que crece el número de descendientes

Number of children (NOC)
NDD, se incrementa la reutilización, pero también implica que la abstracción representada por la clase predecesora se ve diluida. Esto dificulta el mantenimiento, ya que existe la posibilidad de que algunos de los descendientes no sean realmente miembros propios de la clase.

Acoplamiento entre clases

Para una clase determinada el acoplamiento entre clases

Coupling between objects (CBO)
se define como el número de otras clases con las cuales está“acoplada”. Es por lo tanto una medida del fan-out, esto es, del número de colaboradores (clases que se utilizan desde esa). Sistemas en los cuales una clase tiene un alto ACO y todas las demás tienen valores próximos a cero indican una estructura no orientada a objetos, con una clase principal dirigente. Por el contrario, la existencia de muchas clases con un ACO grande indica que el diseñador ha afinado demasiado la“granularidad”del sistema. Ninguna de las dos situaciones es deseable para la mantenibilidad: la primera situación hace complejo el mantenimiento de la clase con gran ACO y en la segunda situación la complejidad para entender el flujo del programa complica el mantenimiento.

Respuesta para una clase

La respuesta para una clase (RPC)

Response for class (RFC)
mide tanto la comunicación interna como la externa. Esta métrica captura el tamaño del conjunto de respuesta para una clase. Este conjunto de respuesta para una clase consiste en todos los métodos llamados por los métodos locales. Definimos RPC como el número de métodos locales más el número de métodos llamados por los métodos locales.

Otra definición que podemos dar del conjunto de respuesta de una clase es la siguiente:“conjunto de métodos que pueden ser ejecutados potencialmente en respuesta a un mensaje recibido por un objeto de esa clase”. La RPC se definiría como el número de métodos existentes en el conjunto de respuesta.

Hay que precisar que no se discrimina entre dos mensajes enviados a un mismo método pero desde diferentes partes de la clase.

A medida que el RPC crece, el esfuerzo necesario para las verificaciones y pruebas crece, ya que la complejidad global de diseño de la clase crece también.

Carencia de cohesiÓN en los mÉTodos

La cohesión de una clase estácaracterizada por cuán estrechamente están relacionados los métodos locales a las instancias de variables locales en una clase. La carencia de cohexión en los métodos (CCM)

Lack of cohesion in methods (LCOM)
se define como el número de conjuntos disjuntos de métodos locales.

Unos valores elevados para CCM implican que la clase podría diseñarse mejor descomponiéndola en dos o más clases distintas. Aun cuando existen casos en que es justificable un valor elevado de CCM, es deseable mantener un elevado grado de cohesión, esto es, mantener un valor bajo para CCM.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Métricas del mantenimiento de software. OpenStax CNX. Jan 09, 2009 Download for free at http://cnx.org/content/col10583/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Métricas del mantenimiento de software' conversation and receive update notifications?

Ask