Questão 67334

Tecnologia da Informação · 2025

Questão

ID 67334

Disciplina: Tecnologia da Informação

Assuntos: Conceitos e Tipos de Métricas de Software, Práticas de Programação Segura e Revisão de Código

Ano: 2025 Banca: PERFIL - ENADE Órgão: Terceiro Simulado Pnd


Em uma disciplina de Engenharia de Software, o professor está discutindo a importância da qualidade do código e como ela pode ser avaliada. Ele quer que os alunos entendam que métricas de software podem ser usadas para identificar partes do código que podem ser problemáticas e candidatas à refatoração. Ele introduz a métrica de 'Complexidade Ciclomática', desenvolvida por Thomas J. McCabe. Ele explica: "A Complexidade Ciclomática mede a complexidade estrutural de um programa, contando o número de caminhos linearmente independentes através do código-fonte. Em termos simples, ela corresponde ao número de 'decisões' no código. Cada `if`, `while`, `for`, `case` ou operador lógico como `&&` e `||` aumenta a complexidade. Um número de complexidade ciclomática alto (geralmente acima de 10) para uma única função é um sinal de alerta. Funções muito complexas são mais difíceis de entender, testar e manter, e são mais propensas a conter bugs." Para a atividade prática, ele apresenta duas versões de uma função em pseudocódigo que calcula o bônus de um funcionário.

Versão 1: `funcao calcularBonus(funcionario): se funcionario.tempoDeCasa > 10 e funcionario.avaliacao == 'EXCELENTE': return funcionario.salario * 0.2 senao se funcionario.tempoDeCasa > 5 e (funcionario.avaliacao == 'EXCELENTE' ou funcionario.avaliacao == 'BOM'): return funcionario.salario * 0.1 senao: return 0`

Versão 2: `funcao calcularBonus(funcionario): se funcionario.tempoDeCasa 10 e funcionario.avaliacao == 'EXCELENTE': return funcionario.salario * 0.2 return funcionario.salario * 0.1`

Qual é a análise correta da Complexidade Ciclomática das duas versões?

Alternativas da questão 67334
Pular para o conteúdo principal