Os requisitos devem ser redigidos de modo a serem passíveis de entendimento pelos diversos interessados do projeto e do sistema. Os clientes, usuários finais e desenvolvedores são todos interessados nos requisitos, mas com expectativas diferentes.
Enquanto desenvolvedores e usuários finais têm interesse em detalhes técnicos, clientes requerem descrições mais abstratas.
Assim, Sommerville sugere dois níveis de descrição de requisitos:
| Requisitos de Usuário | Requisitos de Sistema |
|---|---|
São declarações em linguagem natural, acompanhadas de diagramas intuitivos de quais serviços são esperados do sistema e das restrições sob as quais ele deve operar. Devem estar em um nível de abstração mais alto, de modo que sejam compreensíveis pelos usuários do sistema que não possuem conhecimento técnico. |
Definem detalhadamente as funções, serviços e restrições do sistema. São versões expandidas dos requisitos de usuário, usadas pelos desenvolvedores para projetar, implementar e testar o sistema. Os requisitos de sistema são mais detalhados. Como as especificações em linguagem natural são insuficientes e para especificá-los, notações mais especializadas devem ser utilizadas, como desenhos e gráficos. |