Buscar

APOSTILA_-_Engenharia_de_Software_e_Gerencia_de_Projeto_-_11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais