Disciplina: Processo e Qualidade de Software II Professor: Elias Batista Ferreira Lista 04 1. Calcule a complexidade ciclomática do método abaixo: public int pesquisar(int chave, int[] elementos) { int limInf = 0; int limSup = elementos.length - 1; int meio = 0; int indice = -1; while (limInf <= limSup) { meio = (limSup + limInf) / 2; if (elementos[meio] == chave) { indice = meio; break; } else { if (elementos[meio] < chave) limInf = meio + 1; else limSup = meio - 1; } } return indice; } Analise o código acima e responda: a) Qual a função do método (o que ele faz)? b) Projete um caso de teste para este método? Página 1 de 3 2. [CESGRANRIO – 2008] Considere o seguinte código de um método de uma classe Java: public boolean primo( int x ) { if (x == 1 || x == 2) { return true; } int raiz = (int) Math.sqrt((double)x); for (int i = 2; i <= raiz; i++) { if (x % i == 0) { return false; } } return true; } Qual a complexidade ciclomática do método? a) 2 b) 3 c) 4 d) 5 e) 6 Página 2 de 3 3. Construa o grafo de fluxo referente ao código da questão anterior. 4. [EsFCEx – 2011] Com relação ao uso de métricas de software, a figura abaixo ilustra o grafo de fluxo de um programa de computador. Assinale a alternativa correspondente ao valor de sua complexidade ciclomática (métrica de software que fornece uma medida quantitativa da complexidade lógica de um programa): a) 4 b) 6 c) 13 d) 25 e) 45 Página 3 de 3