ia complejidad ciclomatica

Upload: cralexis

Post on 13-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 IA Complejidad Ciclomatica

    1/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    Mtrica del software

    Mide la Complejidad Lgica de un Programa

    Basada en Grafos de Flujo Utilizada en Tcnicas de Caja Blanca

    Independiente del Lenguaje

  • 7/26/2019 IA Complejidad Ciclomatica

    2/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    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

    >50Progama no testeable, muy alto

    riesgo

  • 7/26/2019 IA Complejidad Ciclomatica

    3/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    Riesgo en Desarrollo de Cdigo

    Riesgo en Mantenimiento

    Planificacin de Pruebas

    Reingeniera

  • 7/26/2019 IA Complejidad Ciclomatica

    4/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    Secuencia

    If-then-else

    While Until

    Reemplazo de Sentencias en Grafos de Flujo

  • 7/26/2019 IA Complejidad Ciclomatica

    5/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    A0

    A1A2

    A3A4

    A5

    A6A7A8A9

    A10

    Mdulo: Algoritmo de Euclides para encontrar el mximo comndivisor

    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; /* m modulo n */

    while (r != 0) {m = n;n = r;r = m % n; /* m modulo n */

    }

    return n;}

    A0

    A1

    A2,A3

    ,A4

    A5

    A6

    A7,A8

    ,A9

    A10

    Figura 3Grafo de Flujo de

    Control para el mdulo

    Euclid

  • 7/26/2019 IA Complejidad Ciclomatica

    6/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    a

    b

    y

    x

    x

    if (a or b)

    then

    proced. x

    else proced. y

    endif

    Simplificacin de Condiciones Compuestos

  • 7/26/2019 IA Complejidad Ciclomatica

    7/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    LOC=282V(G) = 1

  • 7/26/2019 IA Complejidad Ciclomatica

    8/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    V(G) = 6

  • 7/26/2019 IA Complejidad Ciclomatica

    9/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    V(G) = 12

  • 7/26/2019 IA Complejidad Ciclomatica

    10/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    V(G) = 17

  • 7/26/2019 IA Complejidad Ciclomatica

    11/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    V(G) = 28

  • 7/26/2019 IA Complejidad Ciclomatica

    12/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    V(G) = A - N + 2 A: AristasN: Nodos

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

    Contabilidad de Regiones: R

    Herramientas Automticas

  • 7/26/2019 IA Complejidad Ciclomatica

    13/13

    Complejidad Ciclomtica

    Facultad de Informtica Universidad Politcnica de Madrid Instituto Tecnolgico de Buenos Aires. Escuela de Posgrado

    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