Solução: Aula 14 - Integração dos Diagramas 💡
Confira as respostas comentadas sobre como manter a integridade total da sua modelagem.
1. Rastreabilidade Vertical
A Rastreabilidade Vertical conecta elementos de diferentes níveis de abstração. No caso do Caso de Uso (Nível de Negócio) para o Diagrama de Classes (Nível de Design), ela garante que cada funcionalidade prometida ao usuário tenha uma ou mais classes responsáveis por sua execução.
2. Detecção de Inconsistências
É perigoso porque gera ambiguidade: o desenvolvedor pode criar o método autenticar() enquanto o diagrama de dinâmica pedia validarLogin(). Regra de Ouro: Use o Dicionário de Dados do projeto. Se uma operação foi definida na classe, ela deve ser usada com o mesmo nome exato em todos os diagramas de interação.
3. Matriz de Rastreabilidade
Colunas fundamentais: * ID do Requisito (RF/RNF). * Nome do Caso de Uso. * Classes Envolvidas. * Diagramas de Dinâmica Gerados. * Status de Validação. Ela prova a cobertura ao mostrar que não existem "requisitos órfãos" (sem diagramas) nem "diagramas fantasmas" (sem requisitos).
4. Verificação Cruzada
Deve-se alinhar os dois. Geralmente, o Diagrama de Estados é a fonte da verdade para o ciclo de vida rigoroso de uma entidade, enquanto o Atividades descreve o processo macro. Se o processo executa algo que o objeto não permite, o processo deve ser corrigido ou o estado do objeto deve ser expandido.
5. Desafio: Auditoria de Autoridade
- Erro: Quebra de autoridade e consistência lógica. Se o cliente é o ator no Caso de Uso, ele é quem detém a responsabilidade de negócio de iniciar a ação.
- Passos de Auditoria:
- Listar todos os Atores do Diagrama de Casos de Uso.
- Verificar as "Linhas de Vida" (Lifelines) de todos os Diagramas de Sequência.
- Confirmar se as permissões (guardas) nos Diagramas de Atividades condizem com os relacionamentos de Casos de Uso.
- Documentar as falhas em um relatório de inconsistências para ajuste global.
Conclusão
A integração é o que separa um desenho informal de uma engenharia de sistemas rigorosa. Um modelo consistente é o melhor guia para um código sem bugs.