Baixe o app para aproveitar ainda mais
Prévia do material em texto
Métrica da complexidade ciclomática Este método foi proposto por McCabe, que estava particularmente interessado em descobrir o número de caminhos criado pelos fluxos de controle em um módulo do software. Relacionados à dificuldade de teste e na melhor maneira de dividir software em módulos. A ideia é desenhar num grafo a sequencia que um programa pode tomar com todos os possíveis caminhos. A complexidade calculada fornecerá um número designando o quão complexo é um programa (ou sequência). Para possibilitar o cálculo desta métrica, os programas são inicialmente representados por grafos dirigidos representando o fluxo de controle. De um grafo G, pode ser extraída a complexidade ciclomática v(G). O número de caminhos dentro de um grafo pode ser dado como: o conjunto mínimo de caminhos os quais podem ser utilizados para a construção de outros caminhos através do grafo. A complexidade ciclomática é também equivalente ao número de decisões adicionais dentro de um programa: v(G) = E – n + 2, no qual, E: é o número de arestas. N: é o número de nós. A visão simplificada da métrica de McCabe pode ser questionada em vários pontos. Primeiro, ele tinha uma preocupação especial com os programas escritos em Fortran, onde o mapeamento do código-fonte, para um grafo de fluxo do programa era bem definido. Isto não seria o caso de outras linguagens OO. A segunda oposição é que v(G) = 1 seria verdadeiro em uma sequencia linear de código de qualquer tamanho. Consequentemente, a medição não é sensível à complexidade, contribuindo assim na formação de declarações de sequencia lineares A complexidade ciclomática é sensível ao número de subrotinas dentro de um programa McCabe sugere que este aspecto seja tratado como componentes não relacionados dentro de um grafo de controle . Este ponto teria um resultado interessante, pois aumentaria a complexidade do programa globalmente, se ele é dividido em vários módulos que se imagina serem sempre simples. A Figura 1 demonstra um exemplo de complexidade ciclomática que ilustra o fluxo do grafo gerado para os caminhos entre 1 e 9. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5
Compartilhar