Está en la página 1de 13

Complejidad Ciclomtica

Mtrica del software


Mide la Complejidad Lgica de un Programa
Basada en Grafos de Flujo
Utilizada en Tcnicas de Caja Blanca
Independiente del Lenguaje

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica
Complejidad Ciclomtica

Evaluacin del Riesgo

1-10

Programa Simple, sin mucho riesgo

11-20

Ms Complejo, riesgo moderado

21-50

Complejo, Programa de alto riesgo

>50

Facultad de Informtica Universidad Politcnica de Madrid

Progama no testeable, muy alto


riesgo

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

Riesgo en Desarrollo de Cdigo


Riesgo en Mantenimiento
Planificacin de Pruebas
Reingeniera

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

Secuencia
If-then-else
While

Until

Reemplazo de Sentencias en Grafos de Flujo

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica
Mdulo: Algoritmo de Euclides para encontrar el mximo comn
divisor
A0

A0

void euclid(int m, int n)


{
// Asumimos que ambos m y n son mayores que cero
//Forzamos que m >= n por eficiencia
//Retorna el mcd
int r;
if (n > m) {
r = m;
m = n;
n = r;
}
r = m % n;
while (r != 0) {
m = n;
n = r;
r = m % n;
}
return n;

A1
A2
A3
A4
A5
A6
A7
A8
A9
A10

A1

A2,A3
,A4

A5

/* m modulo n */

/* m modulo n */

Figura 3
Grafo de Flujo de
Control para el mdulo
Euclid

A6

A7,A8
,A9

}
A10

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

a
b
y

x
x

if (a or b)
then
proced. x
else
proced. y
endif

Simplificacin de Condiciones Compuestos

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

LOC=282
V(G) = 1

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

V(G) = 6

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

V(G) = 12

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

V(G) = 17

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica

V(G) = 28

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica
A: Aristas
N: Nodos

V(G) = A - N + 2

Contabilidad de Predicados: V(G) = p + 1


Contabilidad de Regiones: R
Herramientas Automticas

Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

Complejidad Ciclomtica
Switch (A) {
case Uno:
i=1;
break;
case Dos:
i=2;
break;
case Tres:
i=3;
break;
}

Char Strings[3][5]={Uno;
Dos; Tres};
i=1;
for(;;) {
if (A = Strings[i])
break;
i++;
}

Problema del Lmite y Las Sentencias Multivia


Facultad de Informtica Universidad Politcnica de Madrid

Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado