Gracias a una pregunta en Code Review , tuve un pequeño desacuerdo (que esencialmente es una oportunidad para aprender algo) sobre qué es exactamente la Complejidad Ciclomática para el siguiente código.
public static void main(String[] args) {
try {
thro();
thro();
thro();
thro();
thro();
thro();
thro();
}
catch (NullPointerException e) {
}
}
private static Random random = new Random();
public static void thro() throws NullPointerException {
if (random.nextBoolean())
throw new NullPointerException();
System.out.println("No crash this time");
}
Al escribir este código en Eclipse y usar el complemento de métricas Eclipse , me dice que la Complejidad Ciclomática McCabe para el método principal es 2, y para el thro
método dice 2.
Sin embargo, alguien más me dice que la complejidad de llamar thro
varias veces es number of calls * method complexity
y, por lo tanto, afirma que la complejidad del método principal es 7 * 2 = 14.
¿Estamos midiendo cosas diferentes? ¿Podemos los dos estar en lo correcto? ¿O cuál es la complejidad ciclomática real aquí?