Requisitos funcionais são a definição das funcionalidades do sistema, o que ele deve fazer em situações específicas e quais restrições ele deve possuir. Define exatamente aquilo que o cliente quer que o software faça.
Requisitos não funcionais definem como se dará a utilização do software, seu desempenho, facilidade de uso, risco de erro em operações, entre outros. Estabelece que o software proporcione melhor experiência para o usuário.