Características da nova geração de programadores
em 16 de Dezembro de 2020
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.
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.
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: