Alguns autores denominam o processo de gerenciamento e desenvolvimento de requisitos como Engenharia de Requisitos (Sommerville e Kotonya 1998); outros se referem como Gerenciamento de Requisitos (Leffingwell e Widrig 2000). Na figura eu dividi a Engenharia de Requisitos em duas partes, Desenvolvimento de Requisitos e Gerenciamento de Requisitos.
Desenvolvimento de Requisitos
Podemos dividir o Desenvolvimento de Requisitos em elicitação, analise, especificação, e validação (Abran e Moore 2001). Essas subdisciplinas incluem todas as atividades envolvidas em coletar, avaliar e documentar requisitos para um software ou software produto, incluem as seguintes tarefas:
- Identificar classes de usuários esperadas no produto
- Elicitar necessidades individuais que representam cada classe de usuário
- Entender as tarefas dos usuários e seus objetivos e os objetivos de negócio alinhado com cada tarefa
- Analisar a informação recebida dos usuários para distinguir suas tarefas de requisitos funcionais, não funcionais, regras de negócio, soluções sugeridas, e informação errada
- Alocar parte dos requisitos para componentes de software definidos na arquitetura do sistema
- Entender a relativa importância dos atributos de qualidade
- Negociar a prioridade das implementações
- Traduzir as necessidades coletadas dos usuários em especificação de requisitos e modelos
- Revisar os requisitos documentados
Interação é a chave do sucesso do Desenvolvimento de Requisitos. Paneje múltiplos ciclos de exploração de requisitos, refinando requisitos de auto nível em detalhes, e confirme com os usuários. Isso pode demandar tempo e pode ser uma experiencia frustrante, mas é intríceco para evitar definições nebulosas e nenhum pouco claras sobre o novo software.
Gerenciamento de Requisitos
Gerenciamento de Requisitos significa "Estabelecer e manter um acordo com o cliente sobre o requisitos para o projeto de software" (Paulk et al. 1995). Este acordo está incorporado na especificação de requisitos e modelos. A aceitação do cliente é apenas um pedaço da equação necessária para a aprovação do requisito. Os desenvolvedores também precisam aceitar as especificações e concordarem em construi-las no produto. As atividades do gerenciamento de requisitos são as seguintes:
- Definição de uma baseline (uma fotografia no tempo que representa o atual corpo do acordo sobre a especificação de requisitos)
- Revisar propostas de mudanças de requisitos e avaliar o impacto de cada mudança antes de aprovar
- Incorporar as mudanças aprovadas no projeto de forma controlada
- Manter o plano do projeto com os requisitos atuais
- Negociar o contrato baseada no impacto da mudança dos requisitos
- Traçar requisitos com seu correspondentes no desing, código fonte e casos de teste
- Rastrear o status dos requisitos e as atividades de mudanças no projeto
A Figura abaixo, indica uma outra forma de visualizar a distinção entre desenvolvimento de requisitos e gerenciamento de requisito.