Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software e Gerencia de Projetos Engenharia de Software e Gerencia de Projetos 2Complexidade ciclomática O uso da métrica Complexidade Ciclomática traz muitos benefícios ao processo de desenvolvimento, pois apóia o processo de qualidade e gera informação para a realização de testes. Portanto é uma métrica importante para o aprendizado de um analista de negócios. Aproveitem! ● Aprender calcular a complexidade ciclomática e identificar os caminhos independentes de um componente. ● Conceitos de complexidade ciclomática; ● Construção de um grafo a partir de um fluxograma; ● Construção de um grafo a partir de um português estruturado; ● Cálculo do nº de regiões, nós preditivos e arestas; ● Identificação dos caminhos independentes;. Introdução Objetivo Tópicos Abordados Engenharia de Software e Gerencia de Projetos 3Complexidade ciclomática Conceitos de complexidade ciclomática Métrica de software que proporciona uma medida quantitativa da complexidade lógica de um programa e define seus caminhos independentes. Os caminhos independentes correspondem às estruturas internas do código, criadas para atender as regras condicionais. A Complexidade ciclomática é uma métrica que se aplica no processo de qualidade, e também é na disciplina teste de software, pois os caminhos independentes definem casos de testes. Glossário O cálculo é desenvolvido a partir da definição do número de nós, arestas, nós predicativos e região, analisada na formação da lógica em grafos, considerando os seguintes fluxos, veja: Importante Engenharia de Software e Gerencia de Projetos 4Complexidade ciclomática Um vértice representa um nó, que representa a atividade do processo. A aresta é o caminho de um nó para o outro. Os nós que possuem uma condição embutida são denominados nós predicativos, o que acontece nos fluxos: condicional e repetição. Quando se trata dos fluxos: condicional e repetição, os nós delimitam uma área fechada formando uma região A figura abaixo apresenta os elementos do grafo: O grafo completo também forma uma região. Glossário Construção de um Grafo a pártir de um fluxograma Engenharia de Software e Gerencia de Projetos 5Complexidade ciclomática Construção de um Grafo a pártir de um Protuguês Estruturado Para cálculo da complexidade ciclomática conta-se o número de regiões, o número de nós, o número de nós predicativos e o número de arestas. Em seguida determina-se a complexidade. Complexidade ciclomática = Nº de Regiões = (Qtde Nós Ptredicativos + 1 ) = (Nº de Arestas – Nº de Nós + 2) Os valores devem ser iguais. Caso contrário, algum erro ocorreu! Caminhos independentes São definidos pelo valor computado pela complexidade ciclomática e oferece-nos um limite máximo para o número de testes a realizar. Engenharia de Software e Gerencia de Projetos 6Complexidade ciclomática Cálculo do nº de Regiões, nós Preditivos e Arestas A partir da lógica em Fluxograma Dado um fluxograma (Passo1) e construa o grafo substituindo os símbolos de instrução pelo nó e a seta será uma aresta (Passo 2). A seguir um roteiro para definir a complexidade ciclomática: ● 1. Desenhe o fluxograma ou escreva o Português estruturado da lógica do programa ● 2. Elabore o grafo. Obs: não são consideradas definições de variáveis, início e fim de algoritmo ● 3. Conte as regiões ● 4. Conte o número de arestas ● 5. Conte o número de nós. ● 6. Calcule o nº de nós preditivos ● 7.Calcule a complexidade ciclomática ● 8. Indique os caminhos independentes ● Fluxograma ● Fonte: Própria ● Grafo ● Fonte: Própria Engenharia de Software e Gerencia de Projetos 7Complexidade ciclomática ● Passo 3: Regiões = 4 ● Passo 4: Nº Arestas = 12 ● Passo 5: Nº Nós = 10 ● Passo 6: Nº Nós preditivos = 3 (1, 3 e 6) ● Passo 7: Complexidade ciclomática = 4 Nº de Regiões = (Qtde Nós Predicativos + 1 ) = (Nº de Arestas – Nº de Nós + 2) 4 = ( 3 + 1 ) = ( 12 - 10 + 2) Passo 8: Definir os caminhos independentes ● Caminho 1: 1 – 10 ● Caminho 2: 1 – 2 – 3 – 4 – 5 – 10 ● Caminho 3: 1 – 2 – 3 – 6 – 8 – 9 – 10 ● Caminho 4: 1 – 2 – 3 – 6 – 7 – 9 – 10 Identificação dos Cainhos Independentes A partir da lógica em Português Estruturado Dado um Português estruturado (Passo1), construa o grafo substituindo os símbolos de instrução pelo nó e a seta será uma aresta (Passo2). ● Grafo ● Fonte: Própria ● Português estruturado ● Fonte: Própria Engenharia de Software e Gerencia de Projetos 8Complexidade ciclomática ● Passo 3: Regiões = 4 ● Passo 4: Nº Arestas = 14 ● Passo 5: Nº Nós = 12 ● Passo 6: Nº Nós preditivos = 3 (2, 4 e 5) ● Passo 7: Complexidade ciclomática = 4 Nº de Regiões = (Qtde Nós Predicativos + 1 ) = (Nº de Arestas – Nº de Nós + 2) 4 = ( 3 + 1 ) = ( 14 - 12 + 2) Passo 8: Caminhos independentes ● Caminho 1: 1 – 2 – 12 ● Caminho 2: 1 – 2 – 3 – 4 – 10 – 11 – 12 ● Caminho 3: 1 – 2 – 3 – 4 – 5 – 6 – 9 – 10 ● Caminho 4: 1 – 2 – 3 – 4 – 5 – 7 – 8 – 9 – 10 Engenharia de Software e Gerencia de Projetos 9Complexidade ciclomática Atividade Complementar 1 – A partir da lógica apresentada abaixo apresente: ● Grafo ● Nº de nós ● Nº de nós preditivos ● Nº de arestas ● Nº de regiões ● Complexidade Ciclomática ● Lista dos caminhos independentes. PROCEDURE busca; *** Este procedimento verifica a existência de um número em um vetor. TIPO valor [1:100] É VETOR DE ESCALA; TIPO numero, MAIOR, i, j É INTEIRO; for (i=0;i<10;i++) { ler numero; for (j=0;j<100;j++) { If (numero == valor [j]) Then Imprime “ACHEI”; J = 200; Else; Endif } if (j>100) Then Imprime “NÃO ACHEI”; Else; Endif } END busca Engenharia de Software e Gerencia de Projetos 10Complexidade ciclomática Síntese Resumindo pode-se destacar desta unidade: ● A complexidade ciclomática é uma métrica que deve ser usada para verificar a complexidade do código; ● A complexidade ciclomática pode ser usada na realização de testes através dos caminhos independentes, garantindo a passagem dos testes pelas estruturas internas; ● A complexidade ciclomática representa o número de regiões; ● O total de caminhos independentes corresponde a complexidade ciclomática do código. ● Conceitos: ● Nó: cada atividade. ● Arestas:. é o caminho de um nó para o outro ● Regiões: áreas delimitadas pelos fluxos: condicional e repetição. ● Nós predicativos: São nós que embutem uma regra de negócio (condição). ● PRESSMAN, R.G. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2002. 935p. ● SOMMERVILLE, I.. Software Engineering, 8 ed.-São Paulo: Pearson Addison - Wesley, 2007. Bibliografia Recomendada
Compartilhar