Requisitos funcionais: descrevem as funcionalidades que se espera que o sistema disponibilize, de uma forma completa e consistente. É aquilo que o utilizador espera que o sistema ofereça, atendendo aos propósitos para qual o sistema será desenvolvido.
Requisitos não-funcionais: referem-se a aspectos não-funcionais do sistema, como restrições nas quais o sistema deve operar ou propriedades emergentes do sistema. Costumam ser divididos em Requisitos não-funcionais de: Utilidade, Confiança, Desempenho, Suporte e Escalabilidade.
fonte: pt.wikipedia.org/wiki/Engenharia_de_requisitos
3.1.Requisitos Funcionais:
Estão intimamente ligados às funcionalidades propostas pelo sistema, e que serão usadas na resolução do problema do contratante, e atenderá todas as suas necessidades funcionais. Resumidamente, são os requisitos que objetivamente cumprem as reais necessidades do usuário do sistema.
Exemplo: Controle financeiro, controle de tráfego aéreo, controle de produção.
topo
3.2.Requisitos Não-Funcionais:
Geralmente ligados à qualidade do produto como, por exemplo, robustez, segurança ou integridade. Dividem-se, assim como a qualidade de produtos, em dois sub-ramos:
Dependência positiva:
Quando da presença de um o outro é mais facilmente incorporado.
Figura 02 – Dependência positiva
Dependência negativa:
São conflitantes entre si, a presença ou existência de um compromete o outro ou diminui seu grau de atuação.
Figura 03 – Dependente negativa.
Requisitos não-funcionais podem ser classificados como:
Orientados ao consumidor:
Observáveis pelos clientes, não necessariamente os contratantes, mas os usuários dos software. Por exemplo: eficiência, amigabilidade, ergonomia.
Atributos orientados tecnicamente:
Ligados diretamente ao sistema e que garantem a sua qualidade como tratamento de erros ou anomalias (robustez), processamento em tempo real.
Duas abordagens podem ser utilizadas na engenharia de requisitos:
Orientada ao produto:
Uma abordagem onde o produto a ser produzido é focalizado como principal fonte de elicitação de requisitos não funcionais. Naturalmente a de mais assimilação pelo contratante, já que é feita de acordo com ponto de fácil mensuração por alguém que não tenha experiência técnica.
Exemplo:
Deve ser veloz (eficiente), seguro contra erros do usuário (robusto), etc.
Orientada ao processo
Abordagem técnica que prioriza o processo de desenvolvimento e não somente o produto, usa a premissa que através de um processo bem estruturado e de qualidade comprovada, o produto final incorpora as qualidades propostas pelo processo de desenvolvimento.
Exemplo:
O sistema deve ser feito em Java, deve ser orientado a objetos e deve usar como base de dados MySQL.
fonte: http://www.inf.ufsc.br/~wesley/engSoft/corpo.htm#reqNFunc