Requisitos funcionais e Não Funcionais
Foto de Vinicius S.
Por: Vinicius S.
10 de Dezembro de 2020

Requisitos funcionais e Não Funcionais

Eles podem facilmente salvar ou enterrar seu projeto

Programação Geral engenharia de software requisitos programação web programação desktop programação mobile

Os requisitos podem ser seu melhor aliado ou seu pior inimigo ao desenvolver um software. Cada requisito representa um desejo do dono do software (Product Owner) e que precisa ser codificado, testado e mantido em funcionamento. 

Nesse artigo você vai compreender o que são requisitos de um software e como diferenciá-los. Você irá aprender quais são as principais características de cada um deles (funcionais e não-funcionais) e também entender qual a importância deles para o seu projeto de software. 

 

Requisitos

De acordo com a norma IEEE-90, requisitos são:

1. Uma capacidade que um usuário necessita para resolver um problema ou atingir um objetivo;

2. Uma capacidade que deve ser atendida ou possuída por um sistema ou componente de um sistema para satisfazer um contrato, padrão, especificação ou outro documento formalmente imposto;

3. O conjunto de todos os requisitos que formam a base para o desenvolvimento subseqüente de um software ou componentes de um software.

Resumindo, escrever os requisitos é traduzir tudo que seu cliente deseja em artefatos paupáveis, para que posteriormente possam ser apresentados ao time de desenvolvimento. Por exemplo, quando um dono de confeitaria deseja ter um sistema para controlar suas vendas e estoque, o engenheiro de software deve entrevistá-lo e compreender quais são suas reais necessidades e traduzir tudo isso em requisitos. 

 

A pergunta é: isso é uma tarefa simples?

A resposta é: 

 



 

Podemos afirmar com tranquilidade que não é uma tarefa simples pelo simples fato de estarmos lidando com seres humanos, portanto, tudo pode ser muito subjetivo e incerto. Um simples padeiro pode não compreender nada sobre gestão de estoque, compras, vendas, informática, porém, esse mesmo padeiro sabe muito sobre como fazer pães. Portanto, cabe aos engenheiros de software capturar as reais necessidades do cliente e produzir requisitos que irão realmente satisfazê-lo.

 

 

Requisitos funcionais

 

 

 

Nada mais é, como o próprio nome por si já diz, as funcionalidades do sistema, são as funções que o sistema/aplicativo devem possuir para atender o negócio e suas regras. Esses requisitos são os mais paupáveis dentro do desenvolvimento de software e geralmente representam grande parte dos requisitos de software.

Veja alguns exemplos:

 

  • Requisito Funcional RF01 - Validar campo de e-mail;
  • Requisito Funcional RF02 - Abrir a página inicial do usuário após o login.
 

Requisitos não-funcionais

Os requisitos não funcionais (RNF) são aqueles que não interferem diretamente no desenvolvimento do sistema propriamente dito. Portanto, os RNFs não são requisitos que possuem regras de negócios, em vez disso, os RNFs são requisitos que estabelecem como o sistema se comportará em determinadas situações. Em outras palavras, apesar de não interferirem em suas funcionalidades básicas, são necessidades que podem impactar no objetivo final do software se não forem contempladas em tempo de análise e desenvolvimento do projeto. Sendo assim, são requisitos que se relacionam com a qualidade do software.
 

 
Imagine, por exemplo, bilhões de usuários consumindo o serviço do whatsapp, quando repentinamente, ele para de funcionar por alguns dias. Isso já aconteceu algumas vezes e geralmente se torna até notícia na internet. Pense um pouco: manter o serviço em funcionamento no mundo todo é um requisito funcional ou não-funcional?
 
Geralmente as coisas que você não vê o software fazendo, são requisitos não funcionais. Por exemplo: ser de fácil utilização, possuir um fluxo de interfaces agradável, possuir cores sugestivas etc. 
 
 

Conclusão

Como desenvolvedores de software, geralmente temos a tendência de nos atentar mais aos requisitos funcionais. Isso é perfeitamente natural, no entanto, é preciso atenção ao capturar todos os requisitos, visto que um pequeno deslize pode ser o ponto chave para o sucesso ou fracasso de seu software.

Confira artigos similares

Aprenda sobre qualquer assunto