Resposta originalmente publicada no Quora em 01/11/2019
Olha, dei uma lida no Sommerville e lá está escrito mais ou menos o seguinte:
Requisitos funcionais:
É a definição das funcionalidades que um sistema de software deve fornecer. Esse tipo de requisito informa como o sistema deve trabalhar os dados de entrada e quais informações devem ser geradas na saída.
Serve para definir o comportamento do sistema em situações específicas. Os requisitos funcionais também servem para definir o escopo do sistema de software ao limitarem explicitamente o que o sistema deve ou não deve fazer.
Requisitos não funcionais:
Esse tipo de requisito trata das limitações nos serviços ou funções oferecidas pelo sistema baseando em parâmetros como “número de transações por segundo”, “número de usuários operando o sistema ao mesmo tempo” ou limitações impostas por padronizações, por exemplo.
Requisitos não funcionais muitas vezes se aplicam à implementação e operação do sistema como um todo ao contrário de focar em funcionalidades e ou serviços individuais de sistemas.
Na verdade, há uma linha não muito clara entre o que é requisito funcional e não funcional. Dependendo da abordagem isso pode ficar confuso.
Um requisito de usuário de segurança como limitar o tempo de acesso de usuários autenticados, pode se enquadrar como requisito não funcional.
Entretanto quando visto com mais detalhes, o requisito de limitar o tempo de acesso de usuário pode se desdobrar em outros requisitos claramente funcionais.
Esse desdobramento pode levar o requisito da limitação do tempo de acesso a ser tratado como um requisito funcional.
Isso mostra que requisitos de um sistema de software são interligados e um requisito pode gerar limitações, influenciar ou mesmo acabar gerando outros requisitos.
Os requisitos de sistema entretanto não só especificam serviços ou funcionalidades do sistema.
Eles também especificam o que é necessário para assegurar que os serviços e funcionalidades sejam efetivamente entregues.
Fonte: SOMMERVILLE, Ian. Software Engineering: Tenth Edition. 10. ed. Boston: Pearson, 2016. 796 p. ISBAN 13: 978-0-13-394303-0. página 91