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

🔄 CAPÍTULO 15: DIAGRAMAS DINÂMICOS (ESTADOS E ATIVIDADES)

Enquanto o Diagrama de Sequência foca na troca de mensagens, os diagramas dinâmicos focam no Comportamento (Estados) e no Processo (Atividades). Eles são essenciais para modelar regras de negócio complexas. 🛡️🧩


🎯 Objetivo do Capítulo

Compreender as transições de situação de um objeto (Máquina de Estados) e o fluxo de controle de um algoritmo ou processo organizacional (Diagrama de Atividades).


🏢 O Cenário Corporativo (TecProExpress Logistics)

Na TecProExpress, o sistema de entrega de encomendas tem regras rígidas. Um pacote não pode ser marcado como "Entregue" se antes não passou pelo estado "Em Trânsito". Além disso, o processo de "Triagem" envolve várias sub-etapas paralelas.

"Seu desafio é modelar o ciclo de vida da encomenda. O que acontece se o cliente não estiver em casa? O pacote volta para qual estado? Use o Diagrama de Estados para garantir que o programador não permita 'pular etapas' no código."


🧠 Diagrama de Máquina de Estados

Foca nas transições de situação que um objeto único sofre. É o "Status" do banco de dados ganhando vida visual.

📊 Lifecycle de um Pedido (TecProExpress)

stateDiagram-v2
    [*] --> Aberto
    Aberto --> AguardandoPagamento : Checkout concluído
    AguardandoPagamento --> Pago : Confirmação Gateway
    AguardandoPagamento --> Cancelado : Timeout 24h
    Pago --> PreparandoEnvio : NF-e Gerada
    PreparandoEnvio --> Enviado : Coleta Transportadora
    Enviado --> Entregue : Protocolo Assinado
    Entregue --> [*]
    Cancelado --> [*]

🏗️ Diagrama de Atividades (Fluxogramas)

Descreve o fluxo de controle de um processo complexo. É um fluxograma inteligente com suporte a decisões e paralelismo.

ComponenteVisual e Propósito
AtividadeAção executada (Ex: "Calcular Frete").
Decisão (Losango)Bifurcação (Sim/Não).
Sincronização (Barra)Atividades simultâneas (Parallel Processing).

📊 Fluxo de Checkout e Pagamento

graph TD
    A(["INÍCIO"]) --> B["Realizar Checkout"]
    B --> C{"Pagamento Aprovado?"}
    C -- "Sim" --> D["Gerar Ordem de Serviço"]
    C -- "Não" --> E["Notificar Falha"]
    D --> F(["FIM"])
    E --> B
    
    style B fill:#e3f2fd,stroke:#1e88e5
    style D fill:#f1f8e9,stroke:#558b2f

💡 Checkpoint de Lógica

[!IMPORTANT] Reflexão Profissional: Qual a principal diferença entre um Diagrama de Atividades e um de Sequência? (Resposta: O de Atividades foca no Fluxo de Lógica/Algoritmo, enquanto o de Sequência foca na Troca de Mensagens entre Objetos). Use o de Atividades para processos de negócio e o de Sequência para arquitetura técnica. 🧠🛡️