Sabemos que os requisitos são descrições dos serviços fornecidos pelo sistema e suas restrições operacionais, ou seja, os requisitos refletem a necessidade dos clientes de um sistema que ajuda a resolver algum, ou alguns, problemas que o mesmo possui.
O processo de descobrir, analisar, documentar e verificar esses serviços e restrições é denominado de Engenharia de Requisitos.
Segundo Davis (1993 apud Sommerville 2008) explica o porque que a indústria de software em alguns casos usa a definição de requisitos como uma declaração abstrata de alto nível e outros o definem como sendo uma definição detalhada de uma função do sistema. Desta forma Davis explica:
Se uma empresa deseja estabelecer um contrato para o desenvolvimento de um grande projeto de software, ela necessita definir suas necessidades de maneira suficientemente abstrata, para que uma solução não seja pré-definida. Os requisitos devem ser redigidos de modo que os diversos fornecedores possam apresentar propostas, oferecendo diferentes maneiras de atender às necessidades organizacionais ao cliente. Assim que aprovado pelo cliente, o fornecedor deve redigir uma definição mais detalhada do sistema para o cliente, de uma forma que o cliente possa entender e validar o que o software fará. Esses documentos podem ser chamados de requisitos do sistema. "Davis (1993 apud Sommerville 2008)"



