WMC (Weighted Methods per Class)

Otra de las métricas de Chidamber y Kemerer es WMC. El cálculo para una clase es bastante sencillo ya que es el resultado de la suma de la complejidad de cada método. ¿Qué valor se coge para la complejidad? Pues depende de la convención o implementación que se utilice en cada caso, en unos casos se utiliza como base la complejidad ciclomática, en otros, se asigna el valor 1 como complejidad a cada método, lo que hace que coincida la métrica con el número de métodos de la clase.

Esta métrica además de darnos la complejidad de una clase desde otro punto de vista diferente a las otras propuestas por Chidamber y Kemerer, puede servir de referencia para determinar la capacidad de reutilización de la misma, ya que teóricamente clases con más métodos son más específicas y por tanto de menos utilidad de cara a la reutilización.

En cualquier caso, tanto complejidad general de la clase como su capacidad de reutilización depende sobre todo de las características de los objetos que se quieren implementar con la clase y de la buena codificación que se aplique, ya que también podemos encontrarnos con clases con uno o dos métodos kilométricos que además de resultar bastante complejos de mantener, propicien que la clase no sea útil desde el punto de vista de la reutilización.

Por lo comentado anteriormente, particularmente me parece más acertado ponderar la complejidad de los métodos de una clase por su complejidad ciclomática (o utilizar cualquier otra estrategia para medir la complejidad, como por ejemplo su nivel de acoplamiento con métodos o atributos de otras clases) que darles a todos el mismo peso. La utilización de la complejidad ciclomática tiene también sus desventajas, ya que hace que la métrica real sea esa (la complejidad ciclomática) y no se tenga en cuenta a la hora de realizar la medición el número de métodos real de la clase (cuando puede ser una métrica muy sencilla para analizar el diseño de una clase), es decir, pueden ser métricas complementarias, perdiendo esa complementariedad en el momento en que todo se convierte en complejidad ciclomática.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: