Os requisitos estão presentes ao longo de todo o ciclo de vida de um software, ou seja, ele é levantando logo no inicio do projeto como um requisito, se o software não apresentar essa funcionalidade, ele não foi entregue com êxito.
Requisito funcional é aquilo que queremos que o software faça, nesse caso:
- "Disparar promoção em data de aniversario do cliente"
Requisito não funcional é aquilo que dá uma restrição, que dita como deve ser feito, nesse caso poderia ser:
- "A promoção deve ser enviada com um lembrete misterioso no dia anterior, e no dia seguinte que seria o aniversária revelar qual a promoção"
- "A promoção é enviada em 3 horários diferentes, com mensagens diferentes lembrando o cliente e deve ter um link que encaminha o cliente para a pagina"
Se estiver dentro do "Escopo" ou no corpo deste software como parte de função essencial que aquilo exista, é um requisito.