jueves, 10 de septiembre de 2015

15. Métricas (Complejidad Ciclomatica)

¿Qué es eso?

Cuando hablamos de arquitectura, empezamos a buscar medidas que nos indiquen la calidad de nuestros diseños, una medida que es ampliamente usada es la complejidad ciclomatica, en palabras sencillas esta nos indica que tan compleja es una función o una clase, es decir la cantidad de rutas que existen para ella. ¿Y en que no ayuda esto? Nos enseña la cantidad de casos de prueba que se necesitan para que este componente se pueda probar al 100%.

Una declaración como esta lo hace muy importante, si bien es prácticamente imposible probar un software al 100%, mientras más complejas sean las pruebas, es más difícil garantizar la calidad del software.

Esta es una de las métricas más importantes en la ingeniería de software, principalmente por 2 características:

1.       Da una visión general de la calidad de la solución

2.       Es independiente del lenguaje

Ahora bien para nosotros como programadores de .NET Visual Studio es capaz de calcular esta métrica, para que nosotros la verifiquemos.

¿Y cómo lo interpretamos? Esto es algo que es importante de esta medida, se interpreta de una forma muy sencilla, mientras en número sea menor es mejor.


Entonces, ¿Qué valores se recomiendan? , Los valores de la complejidad ciclomatica dependen de la organización, pero es recomendable seguir la siguiente tabla:

Mínimo
Máximo
Descripción
1
10
Riesgo pequeño
11
20
Riesgo Moderado
21
50
Alto Riesgo
50

Muy alto riesgo

Bueno ya que entendemos esto, ¿Cómo lo usamos en Visual Studio?
Realmente es muy sencillo, el menú de Visual Studio, nos da una opción que es analizar


Y en esta opción tenemos un menú que dice “Calcular métricas de código para la solución”, simplemente lo seleccionamos, Visual Studio inicia con la compilación del código y posteriormente, obtenemos los resultados.


Pero entonces me dirán, ese código que les muestro tiene una complejidad ciclomatica de 173, es muy alta, sí y no.

Estoy mostrando la complejidad de toda una solución, cada uno de los métodos que da vida a la solución es evaluado, de tal forma que un método solo por el hecho de existir sube en uno dicha complejidad.



¿En qué casos se enciende una alarma? Cuando un método tiene una complejidad ciclomatica alta, es decir hace demasiadas cosa tiene muchas posibilidades, el método ya no es controlable.

Saludos

No hay comentarios.:

Publicar un comentario