Os requisitos de software são frequentemente classificados como requisitos funcionais e requisitos não funcionais. Em relação aos requisitos não funcionais, assinale a afirmativa correta.
- A)Esses requisitos afetam apenas componentes individuais e não à arquitetura geral de um sistema.
Errada, porque requisitos não funcionais geralmente afetam a arquitetura do sistema inteiro, e não apenas componentes isolados.
- B)Os requisitos não funcionais devem ser sempre escritos qualitativamente, para que possam ser objetivamente testados.
Errada, porque requisitos não funcionais devem ser preferencialmente mensuráveis e testáveis, não apenas qualitativos.
- C)Os requisitos não funcionais podem estar relacionados às propriedades emergentes do sistema como confiabilidade;tempo de resposta; e, ocupação de área.
Certa, pois requisitos não funcionais se relacionam a atributos de qualidade e propriedades emergentes do sistema, como confiabilidade e tempo de resposta.
- D)A característica principal dos requisitos organizacionais, um dos tipos de requisitos não funcionais, é que eles especificam ou restringem o comportamento do software.
Errada, porque requisitos organizacionais não especificam o comportamento do software; isso é papel dos requisitos funcionais.
Gabarito: C
Requisitos não funcionais são aqueles que tratam da qualidade do sistema e das restrições sobre como ele deve operar, e não apenas do que ele faz. Em prova, pense neles como os requisitos que mexem com o “jeito de ser” do software: desempenho, segurança, confiabilidade, usabilidade, disponibilidade, portabilidade e por aí vai. Eles costumam impactar a arquitetura como um todo, porque para melhorar tempo de resposta ou confiabilidade, muitas vezes você precisa alterar estrutura, componentes e até a forma de distribuir o sistema. É por isso que a letra C está correta. Ela cita exemplos clássicos de propriedades emergentes do sistema, como confiabilidade, tempo de resposta e ocupação de área, que são exatamente atributos ligados aos requisitos não funcionais. Ou seja: não basta o software fazer a função; ele precisa fazer isso com determinada qualidade e sob certas restrições. As demais alternativas tentam confundir com ideias parcialmente verdadeiras, mas mal colocadas. Requisitos não funcionais não afetam só componentes individuais, porque frequentemente influenciam o sistema inteiro. E eles não precisam ser vagos ou apenas qualitativos: o ideal é que sejam formulados de modo mensurável e testável, por exemplo, “responder em até 2 segundos em 95% das requisições”. Na doutrina de Engenharia de Software, especialmente em autores como Sommerville, requisitos não funcionais incluem restrições de produto, de processo e organizacionais. Já os requisitos funcionais descrevem serviços e comportamentos do sistema. A banca gosta justamente dessa distinção, então vale fixar: funcional é o que o sistema faz; não funcional é como ele faz e sob quais condições.