Os requisitos não funcionais são requisitos que não estão diretamente relacionados com os serviços específicos oferecidos pelo sistema a seus usuários.
Eles podem estar relacionados às propriedades emergentes do sistema, como confiabilidade, tempo de resposta e ocupação de área. Surgem por meio das necessidades dos usuários, devido a restrições de orçamento, políticas organizacionais, necessidades de interoperabilidade com outros sistemas de software ou hardware, ou a partir de fatores externos, como regulamentos de segurança ou legislações de privacidade.
Os requisitos não funcionais podem ser de:
1) produto: especificam ou restringem o comportamento do software. Exemplos incluem os requisitos de desempenho quanto à rapidez com que o sistema deve executar e quanta memória ele requer, os requisitos de confiabilidade que estabelecem a taxa aceitável de falhas, os requisitos de proteção e os requisitos de usabilidade.
2) organizacionais: requisitos gerais de sistemas derivados das políticas e procedimentos da organização do cliente e do desenvolvedor. São exemplos: requisitos do processo operacional, que definem como o sistema será usado, os requisitos do processo de desenvolvimento que especificam a linguagem de programação, o ambiente de desenvolvimento ou normas de processos a serem usadas, bem como os requisitos ambientais que especificam o ambiente operacional do sistema.
3) externos: abrange todos os requisitos que derivam de fatores externos ao sistema e seu processo de desenvolvimento. Podem incluir requisitos reguladores.
Fonte: Sommerville, 9 Edição, Capítulo 4, Páginas 60 e 61.