Diferentes níveis de requisitos são úteis, pois eles comunicam informações sobre o sistema para diferentes tipos de leitor.
Segundo Sommerville alguns dos problemas que surgem durante o processo de engenharia de requisitos são as falhas em não fazer uma clara separação entre esses diferentes níveis de descrição, a saber:
1. Requisitos de usuário (para expressar os requisitos abstratos de alto nível) são declarações, em uma linguagem natural com diagramas, de quais serviços o sistema deverá fornecer a seus usuários e as restrições com as quais este deve operar.
2. Requisitos de sistema (para expressar a descrição detalhada do que o sistema deve fazer) são descrições mais detalhadas das funções, serviços e restrições operacionais do sistema de software. O documento de requisitos do sistema (às vezes, chamado especificação funcional) deve definir exatamente o que deve ser implementado. Pode ser parte do contrato entre o comprador do sistema e os desenvolvedores de software.
Possíveis leitores dos requisitos de usuário e de sistema:
Os leitores dos requisitos de usuário não costumam se preocupar com a forma como o sistema será implementado; podem ser gerentes que não estão interessados nos recursos detalhados do sistema. Outros ex são: Gerentes clientes, Usuários finais do sistema, Engenheiros clientes, Gerentes contratantes e Arquitetos de sistema.
Os leitores dos requisitos de sistema precisam saber mais detalhadamente o que o sistema fará, porque estão interessados em como ele apoiará os processos dos negócios ou porque estão envolvidos na implementação do sistema. Outros ex são: Usuários finais do sistema, Engenheiros clientes, Arquitetos de sistema e Desenvolvedores de software
Fonte: Engenharia de Software - Sommerville, 9ª edição, cap 4.