Em engenharia de software, um requisito funcional define uma função de um sistema de software ou seu componente. O requisito funcional representa o que o software faz, em termos de tarefas e serviços.[1] Uma função é descrita como um conjunto de entradas, seu comportamento e as saídas. Os requisitos funcionais podem ser cálculos, detalhes técnicos, manipulação de dados e de processamento e outras funcionalidades específicas que definem o que um sistema, idealmente, será capaz de realizar. Requisitos comportamentais, que descrevem todos os casos em que o sistema utiliza os requisitos funcionais, são extraídos dos casos de uso. Também, os requisitos funcionais são suportados por requisitos não funcionais (também conhecidos como requisitos de qualidade), que impõem restrições sobre o projeto ou execução (tais como requisitos de desempenho, segurança ou confiabilidade). O plano para a implementação dos requisitos funcionais é detalhado no projeto do sistema. Já o plano para a implementação de requisitos não funcionais é detalhado na arquitetura do sistema.
Este artigo ou secção contém uma lista de referências no fim do texto, mas as suas fontes não são claras porque não são citadas no corpo do artigo, o que compromete a confiabilidade das informações. (Fevereiro de 2013) |
Tal como definido na engenharia de requisitos, os requisitos funcionais especificam resultados particulares de um sistema. Isto deve ser contrastado com requisitos não funcionais, os quais especificam características gerais, tais como custo e confiabilidade. Os requisitos funcionais fazem parte da arquitetura do aplicativo de um sistema, enquanto os requisitos não funcionais denotam a arquitetura técnica de um sistema.
Em alguns casos, um analista de requisitos gera casos de uso após a coleta e validação de um conjunto de requisitos funcionais. A hierarquia de requisitos funcionais é: usuário / pedido das partes interessadas - característica -> requisitos funcionais/requisitos não funcionais/regras de negócio -> caso de uso. Cada caso de uso ilustra cenários de comportamento através de um ou mais requisitos funcionais. Muitas vezes, porém, um analista começará por evocar um conjunto de casos de uso, a partir do qual o analista pode derivar os requisitos funcionais, que devem ser implementados para permitir que um usuário possa realizar cada caso de uso.
São qualidades dos requisitos funcionais:
- Priority (Prioridade): No desenvolvimento ágil, é muito importante saber a prioridade do requisito, devido ela ser usada no plano de iterações. Em cada iteração, os requisitos abertos com maior prioridade são detalhados e desenvolvidos. Nesse sentido, o desenvolvimento ágil garante que o cliente receba o que ele mais precisa em um dado momento.
- INVEST - Independent, Negotiable, Valuable, Estimable, Small and Testable: User stories devem ser Independentes, Negociáveis, Valoráveis, Estimáveis, Pequenos e Testáveis.
- Understandability: Requisitos devem ser escritos na linguagem do cliente.
- Forward traceable: Esse requisito garante a rastreabilidade entre código fonte e casos de testes. Assim, se alteramos um caso de teste, saberemos em qual código será refletido - e vice-versa.[2]
Referências
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.