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 11: CASOS DE USO (PRÁTICA E RELAÇÕES)

Dominar os conceitos básicos é apenas o começo. Na engenharia profissional, precisamos modelar como as funcionalidades dependem umas das outras através de relacionamentos formais da UML. 🛡️🧩


🎯 Objetivo do Capítulo

Aplicar os relacionamentos de Inclusão (<<include>>) e Extensão (<<extend>>) em cenários reais, garantindo que o diagrama reflita regras de negócio obrigatórias e opcionais.


🏢 O Cenário Corporativo (TecProExpress Health)

A TecProExpress iniciou um projeto para uma rede de laboratórios. O sistema deve permitir que o Bioquímico valide exames, mas a lei exige que todo exame validado dispare automaticamente uma notificação para o Órgão Governamental.

Ao mesmo tempo, o paciente pode (ou não) solicitar o envio do laudo por e-mail após a visualização.

"Seu desafio é modelar essas dependências. O que é um passo obrigatório (Inclusão) e o que é uma ação opcional (Extensão)? Esse diagrama guiará a segurança e o fluxo de dados da aplicação."


🧠 Relacionamentos entre Casos de Uso

1. Inclusão (<<include>>)

Ocorre quando um Caso de Uso sempre precisa de outro para ser concluído. É uma dependência obrigatória.

  • Exemplo: Para Efetuar Pagamento, o sistema deve obrigatoriamente Validar Saldo.

2. Extensão (<<extend>>)

Ocorre quando um Caso de Uso pode disparar outro em situações específicas. É opcional.

  • Exemplo: Ao Realizar Pedido, o sistema pode (se o usuário quiser) Aplicar Cupom de Desconto.

📊 Visualização de Fluxo Laboratorial

graph LR
    subgraph "Fronteira TecPro Health"
        UC1(["Visualizar Exame"])
        UC4(["Validar Laudo"])
        UC5(["Gerar PDF do Prontuário"])
        UC7(["Disparar Webhook Governamental"])
        UC8(["Download Exame"])
    end

    RE["Recepcionista"] --- UC1
    BI["Bioquímico Sênior"] --- UC4
    UC4 -. "<< include >>" .-> UC7
    PA["Paciente"] --- UC8
    UC8 -. "<< extend >>" .-> UC5

🔍 Detalhamento: Segurança Visual

Note no diagrama acima como o Paciente nunca toca no endpoint de "Validar Laudo". Visualmente, o Arquiteto trancou a rota. Nenhum programador sênior esquecerá de colocar a trava de segurança no código Java após ver este fluxograma.

[!TIP] Dica Sênior: Se você tem uma ação que se repete em 10 Casos de Uso diferentes (ex: "Fazer Login"), use o <<include>> para não precisar redesenhar a lógica em todos. Isso é o equivalente ao reuso de código na modelagem. 🚀


💡 Checkpoint de Lógica

[!IMPORTANT] Reflexão Profissional: Se você modelar um <<include>> para uma ação que na verdade é opcional, o que acontecerá com o sistema? (Resposta: O sistema ficará engessado. O usuário será obrigado a fazer algo que não queria, gerando uma péssima experiência de uso e um bug de regra de negócio). 🧠🛡️