Questão de Engenharia de Software — Engenharia de Requisitos — CESPE / CEBRASPE 2024
Engenharia de Software›Engenharia de Requisitos
Código
ce403899
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2024
Cargo
AJ
A respeito da arquitetura de aplicações para ambiente web e da arquitetura em camadas, julgue o próximo item.
Considere que um time de desenvolvimento de software, enquanto apurava os requisitos a serem apresentados por certa aplicação web de um sistema de vendas, tenha definido os seguintes requisitos: i) o sistema deve possuir a função cadastro de clientes; ii) o tempo de processamento do cadastro de um cliente não deve ser maior que 100 milissegundos. Nesse caso, o primeiro requisito mencionado é funcional e o segundo, não funcional.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Requisitos funcionais e não funcionais
Gabarito: Certo (C). O primeiro requisito — "o sistema deve possuir a função cadastro de clientes" — descreve uma funcionalidade que o sistema deve oferecer, sendo, portanto, um requisito funcional. O segundo — "o tempo de processamento do cadastro de um cliente não deve ser maior que 100 milissegundos" — impõe uma restrição de desempenho sobre essa funcionalidade, caracterizando um requisito não funcional. Essa distinção é clássica na engenharia de requisitos.
Na engenharia de software, os requisitos são as descrições do que o sistema deve fazer, os serviços que oferece e as restrições a seu funcionamento. Eles são a base para todo o projeto, definindo o que as partes interessadas necessitam e o que o sistema deve fazer para satisfazer essas necessidades. A engenharia de requisitos é o processo de descobrir, analisar, documentar e verificar esses serviços e restrições.
A distinção entre requisitos funcionais e não funcionais é fundamental. Requisitos funcionais são declarações de serviços que o sistema deve fornecer, de suas reações a entradas específicas e de seu comportamento em determinadas situações. Eles descrevem o que o sistema faz. Por exemplo, "o sistema deve permitir o cadastro de clientes" ou "o sistema deve calcular o total de uma venda".
Por outro lado, requisitos não funcionais são restrições aos serviços ou funções oferecidos pelo sistema. Eles normalmente especificam ou restringem características do sistema como um todo, como desempenho, segurança, usabilidade, confiabilidade e disponibilidade. Eles descrevem como o sistema deve ser ou quão bem deve executar suas funções. Por exemplo, "o sistema deve responder em até 2 segundos" ou "o sistema deve estar disponível 99,9% do tempo".
No caso da questão, o requisito (i) "o sistema deve possuir a função cadastro de clientes" é claramente funcional, pois define uma ação que o sistema deve executar. O requisito (ii) "o tempo de processamento do cadastro de um cliente não deve ser maior que 100 milissegundos" é não funcional, pois impõe uma restrição de desempenho (uma métrica de qualidade) sobre a execução da função de cadastro. A banca explora exatamente essa distinção: o que o sistema faz (funcional) versus a qualidade/restrição dessa ação (não funcional).
NÃO CAIA NESSA!
A banca pode tentar confundir o candidato apresentando um requisito que parece funcional, mas que na verdade é uma restrição de qualidade. Aqui, o segundo requisito fala de "tempo de processamento", que é uma métrica de desempenho — um atributo de qualidade, não uma funcionalidade. O candidato que não domina a distinção pode achar que ambos são funcionais, pois ambos descrevem algo que o sistema "deve" fazer. A chave é identificar se o requisito descreve uma ação (funcional) ou uma restrição/qualidade dessa ação (não funcional).
Requisitos de software
1Funcionais
O que o sistema faz
Serviços e reações
Ex.: cadastro de clientes
2Não funcionais
Como/quão bem executa
Restrições de qualidade
Ex.: desempenho (≤100 ms)
LEVEL · soulevel.com.br
Item — ✅ CERTO
A afirmativa está correta. O primeiro requisito é funcional, pois descreve uma funcionalidade específica que o sistema deve oferecer: o cadastro de clientes. O segundo requisito é não funcional, pois impõe uma restrição de desempenho (tempo máximo de processamento de 100 milissegundos) sobre essa funcionalidade. Essa classificação está alinhada com a definição clássica de requisitos funcionais (serviços que o sistema deve fornecer) e não funcionais (restrições sobre esses serviços).