Engenharia de Requisitos
A Engenharia de Requisitos é o processo de descoberta, análise, documentação e validação dos serviços que um sistema deve oferecer e das restrições sob as quais ele deve operar. Esses requisitos refletem as necessidades dos clientes e usuários finais.
Tipos de Requisitos
- Requisitos de Usuário: Declarações abstratas em linguagem natural sobre o que o sistema deve fazer. Exemplo: "O sistema deve gerar relatórios mensais de custos."
- Requisitos de Sistema: Descrições detalhadas das funcionalidades e restrições. Exemplo: "O sistema deve gerar relatórios às 17h30 do último dia útil, segregados por clínica e dosagem de medicamentos."
Requisitos Funcionais vs. Não Funcionais
| Tipo | Descrição | Exemplos |
|---|---|---|
| Funcionais | Serviços específicos que o sistema deve fornecer. |
|
| Não Funcionais | Restrições sobre o sistema como um todo. |
|
Elicitação de Requisitos
Técnicas para descobrir e entender os requisitos:
- Entrevistas: Formais (com roteiro) ou informais.
- Cenários: Descrições de interações típicas. Exemplo: "Cenário de coleta de histórico médico com fluxos normais e exceções."
- Casos de Uso (UML): Diagramas que representam interações entre atores e sistema.
- Etnografia: Observação imersiva do ambiente de trabalho dos usuários.
Documento de Requisitos (ERS)
Estrutura padrão (baseada no IEEE):
- Prefácio: Histórico de versões e público-alvo.
- Introdução: Objetivos do sistema e alinhamento com negócios.
- Requisitos de Usuário: Funcionalidades em linguagem acessível.
- Requisitos de Sistema: Detalhes técnicos e não funcionais.
- Arquitetura: Visão geral dos módulos e componentes.
- Modelos: Diagramas UML (Casos de Uso, Sequência, etc.).
- Anexos: Especificações de hardware, banco de dados, etc.
Validação de Requisitos
Verificações essenciais:
- Validade: O requisito atende a uma necessidade real?
- Consistência: Há conflitos entre requisitos?
- Completude: Todos os cenários estão cobertos?
- Realismo: É tecnicamente viável?
- Verificabilidade: Pode ser testado?
Gerenciamento de Mudanças
Processo para lidar com evolução dos requisitos:
- Identificação: Detecção do problema ou nova necessidade.
- Análise: Avaliação de impacto e custo.
- Implementação: Ajuste nos documentos e no sistema.
- Revisão: Atualização formal dos requisitos.
"Requisitos mudam porque problemas complexos não podem ser totalmente definidos de antemão." (Sommerville)