Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🔗 Interações Dinâmicas (Relacionamentos)

Os componentes da nossa nuvem não vivem em silos. Se um "Caso de Uso" não se comunicar com nenhum Ator, ele é um caso de "Código Lixo/Morto".

Segundo Melo (2004), a UML usa associações em setas e pontilhados para gerenciar funções compostas dentro de componentes de software sem duplicar código.


🏗️ Padrões de Componentização

A UML provê maneiras nativas de representar reuso de código no back-end (Para garantir o princípio do "Don't Repeat Yourself" ou DRY):

Estereótipo (Tag)Execução na Vida Real e Padrão UML
🤝 Associação RetaUma linha simples conectando a Entidade Ator Externa até qual Funcionalidade (Caso de Uso) ele pode chamar.
➕ Include (Ação Obrigatória)Aponta de uma rota para outra Função. Antes de Salvar o Pedido no Banco (Processo A), o sistema deve rodar um Script de Checar Estoque (Processo B). O Fluxo B é injetado (include) mandatoriamente no fluxo do Pedido A.
🛡️ Extend (Caminho Alternativo)Aponta o contrário do Include. Somente SE o Pedido foi rejeitado pelo cartão (Condicional), uma rota Opcional de "Acionar Cobrança por Suporte" se estenderá (extend) para aquele momento.

graph LR
    A["Usuário Mobile"] --- C1(["Finalizar Compra"])
    
    C1 -.->|"<<include>> (Sempre Executa)"| IN(["Validar Cartão de Crédito"])
    EX(["Calcular Imposto Internacional"]) -.->|"<<extend>> (Se mora Fora)"| C1
    
    style C1 fill:#e3f2fd,stroke:#1e88e5
    style IN fill:#c8e6c9,stroke:#4caf50
    style EX fill:#fff3e0,stroke:#ff9800