Table of Contents
Informações
🎓 Guia de Modelagem UML
"A modelagem não é apenas desenhar; é pensar visualmente para resolver a complexidade do software."
Bem-vindo à sua jornada na Linguagem de Modelagem Unificada. Este guia foi projetado para capacitar analistas e desenvolvedores a projetar sistemas robustos, escaláveis e bem documentados, cobrindo desde requisitos até a arquitetura física.
⚡ Atalhos Rápidos
-
Trilha de Aulas --- 16 lições modernas englobando análise, diagramas e integração. Iniciar Jornada
-
Slides Interativos --- Material visual otimizado com transições e suporte Reveal.js. Ver Slides
-
Quizzes e Prática --- Avalie seu progresso com 160 questões técnicas exclusivas. Testar Conhecimento
-
Laboratórios e Projetos --- Aplique conceitos de modelagem em cenários reais. Ver Projetos
-
Exercícios Progressivos --- Das questões conceituais ao desafio prático de modelagem. Praticar Agora
-
Setup e Ferramentas --- Configurações essenciais para StarUML, Visual Paradigm e mais. Configurar
🗺️ Mapa da Jornada (Módulos)
O curso está estruturado em 4 Módulos cruciais para a maestria em UML:
📦 Módulo 1: Fundamentos e Requisitos
Entendendo o problema para desenhar a solução. - Aulas 01 a 04: Introdução à Análise, Engenharia de Software, Intro UML e Diagrama de Casos de Uso.
📐 Módulo 2: Especificação e Estrutura
A anatomia estática do sistema. - Aulas 05 a 07: Especificação de Casos de Uso, e Diagrama de Classes (Partes 1 e 2).
🧠 Módulo 3: Modelagem Comportamental
Como os objetos colaboram e reagem ao longo do tempo. - Aulas 08 a 11: Diagrama de Sequência, Comunicação, Atividades e Estados.
💻 Módulo 4: Arquitetura e Integração Final
Da visão física ao projeto consolidado. - Aulas 12 a 16: Componentes, Implantação, Integração, Workshop e Projeto Final.
💡 Dicas de Sucesso
- Simplicidade é Chave: Não tente modelar cada detalhe. Foque no que agrega valor à comunicação.
- Consistência: Garanta que as classes no diagrama de sequência existam no diagrama de classes.
- Diagramas são Vivos: Use-os para discutir com o time, não apenas para documentar após o código.
Pronto para modelar? Ir para Aula 01
Sobre o Curso
🎓 Guia de Modelagem UML Profissional
Este curso foi projetado para capacitar estudantes e profissionais na arte da análise e projeto de sistemas, utilizando a Linguagem de Modelagem Unificada (UML) como base para a comunicação técnica eficiente.
🎯 Objetivos do Curso
-
Análise Holística --- Compreender o sistema como um todo, desde a viabilidade técnica até os requisitos detalhados.
-
Domínio da UML --- Dominar a leitura e criação dos principais diagramas que regem o desenvolvimento de software moderno.
-
Mentalidade Ágil --- Integrar as práticas de modelagem com o manifesto ágil e frameworks como Scrum e Kanban.
-
Prática de Mercado --- Simular cenários reais de levantamento de requisitos e documentação técnica em ambientes digitais.
📚 O Que Você Vai Aprender
Módulo 1 – Fundamentos de Sistemas
- Introdução à Análise e Papel do Analista
- Ciclo de Vida de Sistemas (Modelos)
- Estudo de Viabilidade (Custo-Benefício)
- Requisitos Funcionais e Não Funcionais
Módulo 2 – Levantamento e Modelagem
- Técnicas de Coleta de Requisitos
- Documentação e Especificação Técnica
- Métodos Tradicionais vs Modernos
- Introdução Prática à UML e OO
Módulo 3 – Métodos Ágeis
- Valores e Princípios do Manifesto Ágil
- Framework Scrum (Papéis e Eventos)
- Gestão Visual com Kanban
- WIP e Fluxo Contínuo
Módulo 4 – Laboratório e Projeto final
- Design Sprint e Prototipação
- Comunicação em Equipes de Alta Performance
- Desenvolvimento Ágil de Backlog
- Apresentação e Defesa de Solução
🛠️ Metodologia
Foco 100% didático e orientado a problemas reais. Cada aula combina teoria sólida com atividades que simulam o dia a dia de um analista de sistemas.
Pronto para modelar soluções incríveis? Começar Agora
📘 Disciplina: Análise e Modelagem de Sistemas com UML
Carga sugerida: 80 horas Pré-requisitos: Lógica de Programação e Fundamentos de Engenharia de Software
🎯 Objetivo Geral
Capacitar o aluno a analisar requisitos e modelar sistemas de software utilizando a UML (Unified Modeling Language), aplicando boas práticas de engenharia de software e padrões de modelagem.
📚 Plano de Curso – 16 Aulas 🔹 Aula 1 – Introdução à Análise de Sistemas
Conceitos de sistema e sistema de informação
Papel do analista de sistemas
Ciclo de vida do software
Introdução à modelagem
🔹 Aula 2 – Fundamentos de Engenharia de Software
Processos de desenvolvimento (Cascata, Incremental, Ágil)
Levantamento de requisitos
Requisitos funcionais e não funcionais
Documento de requisitos
🔹 Aula 3 – Introdução à UML
Histórico da UML
Objetivos da modelagem
Estrutura da UML
Visões arquiteturais
🔹 Aula 4 – Diagrama de Casos de Uso
Atores
Casos de uso
Relacionamentos (include, extend, generalização)
Fronteira do sistema
Ferramentas de modelagem
Atividade prática: Modelar sistema simples (ex: biblioteca ou sistema acadêmico)
🔹 Aula 5 – Especificação de Casos de Uso
Fluxo principal
Fluxos alternativos
Regras de negócio
Escrita estruturada de requisitos
🔹 Aula 6 – Diagrama de Classes (Parte 1)
Classes e atributos
Métodos
Visibilidade
Relacionamentos
🔹 Aula 7 – Diagrama de Classes (Parte 2)
Associação
Agregação
Composição
Herança
Multiplicidade
Atividade prática: Modelagem estrutural completa
🔹 Aula 8 – Diagrama de Sequência
Objetos
Linha do tempo
Mensagens
Ativação
Criação e destruição de objetos
🔹 Aula 9 – Diagrama de Comunicação
Diferença entre sequência e comunicação
Interações entre objetos
Aplicações práticas
🔹 Aula 10 – Diagrama de Atividades
Fluxo de controle
Decisão
Paralelismo
Swimlanes
Atividade prática: Modelagem de processo de negócio
🔹 Aula 11 – Diagrama de Estados
Estados e transições
Eventos
Estados compostos
Aplicação em sistemas reativos
🔹 Aula 12 – Diagrama de Componentes
Arquitetura do sistema
Interfaces
Dependências
Organização em camadas
🔹 Aula 13 – Diagrama de Implantação
Nós
Artefatos
Distribuição física
Modelagem cliente-servidor
🔹 Aula 14 – Integração dos Diagramas
Rastreabilidade entre diagramas
Coerência e consistência
Boas práticas de modelagem
Revisão geral
🔹 Aula 15 – Projeto Prático (Workshop)
Definição do problema
Levantamento de requisitos
Construção completa da modelagem UML
Apresentação parcial
🔹 Aula 16 – Apresentação Final do Projeto
Entrega do projeto completo
Defesa técnica
Discussão crítica
Feedback final
🛠 Ferramentas Sugeridas
StarUML
Visual Paradigm
Lucidchart
Draw.io
📊 Metodologia
Aulas expositivas dialogadas
Estudos de caso reais
Modelagem incremental
Projeto prático em grupo
📌 Avaliação Sugerida
Exercícios práticos (20%)
Modelagens individuais (20%)
Projeto em grupo (40%)
Apresentação final (20%)
Aulas
Aulas do Curso
Bem-vindo à seção de aulas! Aqui você encontra todo o conteúdo do curso organizado por módulos.
📚 Módulos do Curso
Módulo 1 – Fundamentos e Requisitos
- Aula 01 - Introdução à Análise
- Aula 02 - Engenharia de Software
- Aula 03 - Introdução à UML
- Aula 04 - Diagrama de Casos de Uso
Módulo 2 – Especificação e Estrutura
- Aula 05 - Especificação de Casos de Uso
- Aula 06 - Diagrama de Classes (Parte 1)
- Aula 07 - Diagrama de Classes (Parte 2)
Módulo 3 – Modelagem Comportamental
- Aula 08 - Diagrama de Sequência
- Aula 09 - Diagrama de Comunicação
- Aula 10 - Diagrama de Atividades
- Aula 11 - Diagrama de Estados
Módulo 4 – Arquitetura e Integração Final
Módulo 1 – Fundamentos e Requisitos
Aula 01 - Introdução à Análise de Sistemas 🎯
Módulo
MÓDULO 1 – FUNDAMENTOS E REQUISITOS
1. O Universo da Análise de Sistemas 🌍
A análise de sistemas é o processo de coletar e interpretar fatos, diagnosticar problemas e utilizar essas informações para recomendar melhorias no sistema. É a base fundamental onde a Modelagem UML será aplicada.
🧠 Conceitos Estratégicos
Sistemas de Informação (SI)
Um SI não é apenas software. É um arranjo de pessoas, dados, processos e tecnologia que interagem para apoiar e melhorar as operações do dia a dia de um negócio.
O Analista como Arquiteto
O analista de sistemas atua como um tradutor, transformando necessidades de negócio em especificações técnicas precisas.
2. Abordagem Sistêmica e Pensamento Crítico 🔍
Para modelar bem, o analista deve enxergar o todo antes das partes.
mindmap
root((Análise de Sistemas))
Processos
Entradas
Transformação
Saídas
Dados
Estrutura
Persistência
Fluxo
Atores
Usuários
Sistemas Externos
Administradores
Feedback
Monitoramento
Correção
3. Estruturação de Workspace de Requisitos 💻
Um analista moderno utiliza o terminal para organizar a base de conhecimento do projeto.
├── README.md
└── docs/
├── ata-reuniao/
├── diagramas/
└── requisitos/
4. Diferenciando Análise de Projeto 🎨
| Característica | Análise de Sistemas (O QUÊ) | Projeto de Sistemas (COMO) |
|---|---|---|
| Foco | Entendimento do problema | Desenho da solução |
| Público | Usuários e Stakeholders | Desenvolvedores e Arquitetos |
| UML | Casos de Uso, Atividades | Classes, Sequência, Componentes |
| Objetivo | Requisitos Funcionais | Arquitetura Técnica |
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Gestão de uma Clínica Médica.
Desafio: 1. Identifique 2 processos críticos de negócio (ex: agendamento). 2. Liste 3 informações que não podem faltar no banco de dados. 3. Descreva uma regra de negócio (ex: "Só pode cancelar com 24h de antecedência").
Importante
Uma falha nesta etapa inicial pode comprometer todos os diagramas UML subsequentes. Analise antes de desenhar!
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Fundamentos de Engenharia de Software ➡️
Aula 02 - Engenharia de Software e Modelagem 🔧
Módulo
MÓDULO 1 – FUNDAMENTOS E REQUISITOS
1. Processos e Ciclos de Vida 🚀
A Engenharia de Software fornece a estrutura para que a análise e a modelagem UML ocorram de forma organizada. O ciclo de vida define quando cada diagrama deve ser construído.
🧠 Modelos de Desenvolvimento
Modelo Cascata (Tradicional)
Linear e sequencial. A modelagem UML deve ser completa antes da programação. Ideal para sistemas críticos com requisitos fixos.
Modelos Ágeis (Scrum/XP)
Iterativo e incremental. A modelagem UML é feita em "micro-doses" (Just-in-Time), focando na funcionalidade imediata.
2. A Abstração no Ciclo de Vida 📊
Diferentes fases do projeto exigem diferentes níveis de detalhamento na modelagem.
graph LR
A[Requisitos] --> B[Análise]
B --> C[Design]
C --> D[Código]
subgraph "Nível de Abstração"
A -.- High((Alto))
D -.- Low((Baixo))
end
style High fill:#f9f,stroke:#333
style Low fill:#ccf,stroke:#333
3. Gestão de Requisitos com Markdown 💻
Documentar requisitos de forma clara é o primeiro passo para um diagrama de Casos de Uso impecável.
4. Classificação Técnica de Requisitos 📑
| Tipo | Descrição | Exemplo em UML |
|---|---|---|
| Funcional (RF) | O que o sistema faz | Caso de Uso / Sequência |
| Não-Funcional (RNF) | Restrições e qualidades | Notas no Diagrama |
| Regra de Negócio | Lógicas e políticas | Admonitions / Comentários |
Dica de Analista
Nunca comece um diagrama UML sem ter uma lista de requisitos aprovada pelo stakeholder. O diagrama é o mapa dos requisitos.
5. Mini-Projeto Prático 🚀
Cenário: Dashboard de Investimentos.
Desafio: 1. Escreva 2 Requisitos Funcionais (RF). 2. Escreva 1 Requisito Não-Funcional de Performance (RNF). 3. Identifique um fluxo de exceção (ex: "Saldo insuficiente").
Atenção
Ignorar requisitos não-funcionais (como segurança ou latência) costuma quebrar a arquitetura física do sistema mais tarde.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Introdução à Linguagem UML ➡️
Aula 03 - Introdução à Linguagem UML ⚙️
Módulo
MÓDULO 1 – FUNDAMENTOS E REQUISITOS
1. O Surgimento da Linguagem Padrão 📚
A UML (Unified Modeling Language) não é uma metodologia, mas sim uma linguagem visual para especificar, visualizar, construir e documentar artefatos de sistemas de software.
🧠 A "Guerra dos Métodos"
História e Evolução
Nos anos 90, existiam dezenas de linguagens de modelagem. A UML surgiu da unificação dos três métodos mais populares: Booch, OMT (Rumbaugh) e OOSE (Jacobson).
Por que padronizar?
Permitir que equipes diferentes, em lugares diferentes, entendam o projeto sem ambiguidades. É o "Plantão Técnico" do engenheiro de software.
2. A Estrutura dos 14 Diagramas 📊
A UML 2.5 é dividida em dois grandes grupos: Estruturais e Comportamentais.
graph TD
A[UML 2.5] --> B[Estruturais]
A --> C[Comportamentais]
B --> B1[Classes]
B --> B2[Objetos]
B --> B3[Componentes]
B --> B4[Implantação]
C --> C1[Casos de Uso]
C --> C2[Sequência]
C --> C3[Atividades]
C --> C4[Estados]
style B fill:#e1f5fe,stroke:#01579b
style C fill:#f3e5f5,stroke:#4a148c
3. Preparando o Ambiente UML 💻
Analistas utilizam ferramentas CASE (Computer-Aided Software Engineering) para desenhar e exportar modelos.
└── domain/
├── services/
└── entities/
4. Visões do Modelo 4+1 (Kruchten) 🏗️
| Visão | Descrição | Diagramas Chave |
|---|---|---|
| Lógica | Funcionalidades para o usuário | Classes, Estados |
| Processo | Performance e paralelismo | Atividades, Sequência |
| Desenvolvimento | Organização do código | Componentes, Pacotes |
| Física | Topologia do Hardware | Implantação |
| Cenários (+1) | Requisitos base | Casos de Uso |
Dica de Ouro
Não use todos os diagramas em todos os projetos. Foque naqueles que resolvem as dúvidas da sua equipe.
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Controle de Drones de Entrega.
Desafio: 1. Identifique qual visão seria mais crítica para este sistema (Física ou Processo?). 2. Liste 2 diagramas UML que ajudariam a explicar o funcionamento do drone. 3. Justifique o uso da UML em vez de apenas texto para descrever o sistema.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Casos de Uso ➡️
Aula 04 - Diagrama de Casos de Uso 👥
Módulo
MÓDULO 1 – FUNDAMENTOS E REQUISITOS
1. O Contrato Funcional: Casos de Uso 📚
O diagrama de casos de uso é o coração da modelagem comportamental. Ele descreve o que o sistema faz do ponto de vista do usuário (Ator), sem se preocupar com o "como" interno.
🧠 Elementos Chave
Ator
Representa um papel desempenhado por um usuário humano ou um sistema externo que interage com o sistema.
Caso de Uso
Uma unidade funcional que representa uma tarefa completa realizada pelo sistema. Deve começar sempre com um verbo no infinitivo.
2. Modelagem Prática de Biblioteca 📊
Um diagrama de casos de uso define a fronteira do sistema e as interações principais.
graph LR
subgraph "Fronteira: Sistema Biblioteca"
UC1((Emprestar Livro))
UC2((Consultar Acervo))
UC3((Manter Usuário))
end
User((👤 Usuário))
Admin((👨💼 Bibliotecário))
User --> UC1
User --> UC2
Admin --> UC3
Admin -- "Auxilia" --> UC1
style User fill:#e1f5fe
style Admin fill:#fff3e0
3. Relacionamentos: Include e Extend ⚙️
Entender a diferença entre dependência obrigatória e opcional é vital para o nível intermediário.
> Localizado relacionamento 'include' -> 'Validar Login'
> Localizado relacionamento 'extend' -> 'Calcular Multa'
> Status: Sucesso!
Include vs Extend
- Include: Obrigatório. (Ex: Para emprestar, sempre precisa validar o usuário).
- Extend: Opcional/Condicional. (Ex: Calcular multa só acontece se houver atraso).
4. Generalização de Atores 🎭
Assim como no código OO, atores podem herdar permissões.
| Ator Pai | Ator Filho | Benefício |
|---|---|---|
| Funcionário | Gerente | Gerente herda tudo que funcionário faz |
| Cliente | Cliente VIP | VIP possui extensões de desconto |
| Sistema | Sistema de Pagamento | Especialização de logs e APIs |
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Delivery de Comida.
Desafio:
1. Desenhe (mentalmente ou rascunho) 3 atores: Cliente, Entregador, Restaurante.
2. Identifique um caso de uso que use include.
3. Identifique um caso de uso que use extend.
Antipattern
Não tente modelar o fluxo do processo em Casos de Uso. Use-os para listar funcionalidades. Para fluxos, usaremos o Diagrama de Atividades.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Especificação de Casos de Uso ➡️
Módulo 2 – Especificação e Estrutura
Aula 05 - Especificação de Casos de Uso 📝
Módulo
MÓDULO 2 – ESPECIFICAÇÃO E ESTRUTURA
1. Documentação Detalhada 📚
Enquanto o diagrama de casos de uso mostra a visão geral, a especificação detalha o diálogo entre o ator e o sistema. É o documento que o desenvolvedor usará para codificar a lógica de negócio.
🧠 Componentes da Especificação
Fluxo Principal (Caminho Feliz)
Sequência de passos onde tudo ocorre conforme o esperado, sem erros ou desvios inesperados.
Fluxos Alternativos
Variações que ainda levam ao objetivo final, mas por caminhos diferentes (ex: pagar com cartão vs pagar com boleto).
Fluxos de Exceção
Tratamento de erros que impedem a conclusão da tarefa (ex: saldo insuficiente ou queda de conexão).
2. Dinâmica da Especificação 📊
A estrutura lógica de uma especificação segue uma ordem rigorosa de pré e pós condições.
graph TD
A[Início] --> B{Pré-condições ok?}
B -- Não --> C[Erro de Autenticação/Dados]
B -- Sim --> D[Fluxo Principal]
D --> E{Desvio?}
E -- Alternativo --> F[Lógica Adicional]
E -- Exceção --> G[Tratar Erro]
F --> H[Pós-condições]
G --> I[Log de Erro]
H --> J[Fim - Sucesso]
3. Template de Especificação Pro 💻
Um analista sênior organiza as especificações de forma que sejam testáveis.
**Resumo**: Registra a venda de produtos e valida o pagamento.
4. Estrutura de Fluxos e Regras 📑
| Elemento | Propósito | Exemplo |
|---|---|---|
| Passo do Ator | Ação externa | "O Cliente insere o cartão" |
| Passo do Sistema | Reação interna | "O Sistema valida o PIN" |
| Regra de Negócio (RN) | Condição lógica | "Desconto de 10% para compras > R$ 500" |
Dica de Redação
Use frases curtas e objetivas. Evite termos técnicos da implementação como "clicar no botão salvar" (use "solicitar gravação").
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Check-in de Aeroporto (Totem).
Desafio: 1. Escreva o fluxo principal (4 passos) para "Realizar Check-in". 2. Crie um fluxo de exceção para "Documento Inválido". 3. Identifique uma pré-condição obrigatória.
Importante
Regras de Negócio (RN) devem ser citadas na especificação, mas detalhadas em um documento separado de regras, para facilitar a manutenção.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Classes (Parte 1) ➡️
Aula 06 - Diagrama de Classes (Parte 1) 🏢
Módulo
MÓDULO 2 – ESPECIFICAÇÃO E ESTRUTURA
1. Fundamentos da Estrutura Estática 📚
O Diagrama de Classes é a espinha dorsal da UML. Ele descreve a estrutura do sistema mostrando suas classes, atributos, operações e os relacionamentos entre os objetos.
🧠 Anatomia de uma Classe
Os 3 Compartimentos
- Nome: Identificador da classe (ex:
Paciente). - Atributos: Variáveis de estado (ex:
nome: String). - Operações: Comportamentos ou métodos (ex:
marcarConsulta()).
2. Visibilidades e Encapsulamento 📊
Na UML, utilizamos símbolos para representar o acesso aos membros da classe, refletindo os conceitos de Orientação a Objetos.
classDiagram
class ContaBancaria {
+numero: String
#titular: String
-saldo: Double
+depositar(valor: Double)
-atualizarLog()
}
note for ContaBancaria "+ Público\n- Privado\n# Protegido"
3. Prototipagem de Entidades via CLI 💻
Analistas podem validar a estrutura de dados criando classes rápidas para testar a lógica de atributos.
def __init__(self, id, email):
self._id = id # Protegido
self.email = email # Público
self.__senha = None # Privado
EOFpython -c "from entidade import Usuario; print('Entidade validada!')"Entidade validada!
4. Identificando Classes no Domínio 📑
| Candidato | Por que é uma Classe? | Exemplo de Atributos |
|---|---|---|
| Pessoas | Papéis que interagem | nome, cpf, dataNascimento |
| Coisas | Objetos físicos ou lógicos | numeroSerie, valor, status |
| Eventos | Ocorrências no tempo | dataHora, local, resultado |
Dica de Modelagem
Não coloque "ID" ou "Código" em todas as classes no início. Foque nos atributos conceituais que definem o negócio primeiro.
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Inventário de Loja de Games.
Desafio:
1. Desenhe a classe Produto com 3 atributos privados e 2 operações públicas.
2. Identifique os tipos de dados (String, Integer, etc) para cada atributo.
3. Use a notação UML correta (+, -, #).
Erro Comum
Evite classes "Deus" que fazem tudo. Quebre o sistema em classes menores e especializadas.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Classes (Parte 2) ➡️
Aula 07 - Diagrama de Classes (Parte 2) 🔗
Módulo
MÓDULO 2 – ESPECIFICAÇÃO E ESTRUTURA
1. Relacionamentos Avançados 📚
Dificilmente uma classe vive sozinha. O poder da UML está em descrever como as classes se conectam para formar o sistema.
🧠 Tipos de Relacionamentos
Associação
Conexão estrutural básica. Pode ter nome e direção. (Ex: Professor ministra Disciplina).
Agregação (Todo/Parte Fraca)
O objeto parte pode existir sem o todo. (Ex: Time e Jogador. Se o time acabar, o jogador continua existindo).
Composição (Todo/Parte Forte)
O objeto parte morre com o todo. (Ex: Documento e Página. Se você rasgar o documento, a página não tem sentido sozinha).
2. Herança e Polimorfismo 📊
A generalização permite reaproveitar estrutura e comportamento, criando hierarquias ricas.
classDiagram
class Veiculo {
<<abstract>>
+marca: String
+acelerar()*
}
class Carro {
+numeroPortas: Int
+acelerar()
}
class Moto {
+cilindrada: Int
+acelerar()
}
Veiculo <|-- Carro
Veiculo <|-- Moto
3. Validando Estruturas Complexas 💻
A multiplicidade define quantos objetos participam de um relacionamento.
4. Multiplicidade e Navegabilidade 📑
| Símbolo | Significado | Exemplo Prático |
|---|---|---|
| 1 | Exatamente um | Um CPF pertence a 1 Pessoa |
| 0..1 | Zero ou um | Uma Pessoa pode ter 0 ou 1 Carro |
| * | Muitos (zero ou mais) | Um Autor escreve * Livros |
| 1..* | Um ou muitos | Uma NF possui 1..* Itens |
Classes de Associação
Use quando o relacionamento em si possui atributos. Ex: Estudante e Disciplina se relacionam via Matrícula, que guarda a nota.
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Gestão de Clínica Veterinária.
Desafio:
1. Identifique o relacionamento entre Dono e Pet (Agregação ou Composição?).
2. Desenhe uma classe de associação Consulta entre Veterinário e Pet.
3. Defina a multiplicidade entre Clínica e Sala.
Atenção
Cuidado com a Herança excessiva. Muitas vezes, uma Composição é mais flexível e evita o "Problema da Fragilidade da Classe Base".
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Sequência ➡️
Módulo 3 – Modelagem Comportamental
Aula 08 - Diagrama de Sequência 🔄
Módulo
MÓDULO 3 – DIAGRAMAS COMPORTAMENTAIS UML
1. Fundamentos do Diagrama de Sequência 📚
Nesta aula, estudaremos o Diagrama de Sequência, que modela a interação entre objetos focando na ordem temporal das mensagens.
🧠 Conceitos Fundamentais
Ator/Objeto
Entidades que participam da interação, representadas por retângulos no topo do diagrama.
Linha de Vida (Lifeline)
Linha tracejada vertical que representa a existência do objeto ao longo do tempo.
Mensagem
Comunicação entre objetos, representada por setas horizontais com rótulos que indicam operação/método.
Ativação
Retângulo fino na linha de vida que indica quando o objeto está processando uma operação.
2. Anatomia do Diagrama de Sequência 📊
sequenceDiagram
participant U as 👤 Usuário
participant S as 📱 Sistema
participant BD as 🗺 BD
participant Email as 📧 ServicoEmail
U->>+S: login(email, senha)
S->>+BD: validarCredenciais(email, senha)
BD-->>-S: credenciaisValidas: Boolean
alt credenciais válidas
S->>+BD: buscarDadosUsuario(email)
BD-->>-S: dadosUsuario: Usuario
S->>+Email: enviarNotificacaoLogin(usuario)
Email-->>-S: emailEnviado: Boolean
S-->>-U: loginSucesso(dadosUsuario)
else credenciais inválidas
S->>S: incrementarTentativasFalhas(email)
S-->>-U: loginFalha("Credenciais inválidas")
end
3. Tipos de Mensagens 📨
Mensagens Síncronas e Assíncronas
Mensagem Síncrona (-->)
Comportamento: Remetente aguarda resposta antes de continuar
**Uso**: Chamadas de método, consultas ao banco de dados
**Notação**: Seta sólida
**Exemplo**: `cliente.calcularDesconto(valor)`
Mensagem Assíncrona (->>)
Comportamento: Remetente não aguarda resposta
**Uso**: Notificações, logs, emails
**Notação**: Seta aberta
**Exemplo**: `sistema.enviarEmail(destinatario)`
Mensagem de Retorno (-->>)
Comportamento: Resposta a uma mensagem anterior
**Opcional**: Pode ser omitida se óbvia
**Notação**: Seta tracejada
4. Fragmentos de Combinação 💻
5. Fragmentos Avançados ⚙️
Alt (Alternative)
Estrutura Condicional
```mermaid sequenceDiagram participant C as Cliente participant S as Sistema
C->>S: finalizarPedido()
alt estoque suficiente
S->>S: processarPagamento()
S-->>C: pedidoConfirmado()
else produto indisponível
S-->>C: produtoIndisponivel()
else pagamento negado
S-->>C: pagamentoRejeitado()
end
```
Loop (Repetição)
Estrutura de Repetição
```mermaid sequenceDiagram participant S as Sistema participant BD as BancoDados
loop para cada item do pedido
S->>BD: verificarEstoque(item)
BD-->>S: quantidadeDisponivel
S->>S: atualizarItemPedido(item)
end
```
Par (Paralelo)
Processamento Paralelo
```mermaid sequenceDiagram participant S as Sistema participant Email as Email participant SMS as SMS participant Log as Log
par notificar cliente
S->>Email: enviarConfirmacao()
and notificar por SMS
S->>SMS: enviarSMS()
and registrar auditoria
S->>Log: registrarOperacao()
end
```
6. Auto-Mensagens e Criar/Destruir 🎨
Auto-Mensagens
Mensagem para Si Mesmo
Representa operações internas de um objeto.
**Notação**: Seta que começa e termina na mesma linha de vida
**Uso**: Métodos privados, validações internas
Criar e Destruir Objetos
Criar Objeto
Notação: Mensagem apontando para o retângulo do objeto
**Rótulo**: `<<create>>` ou `new(parâmetros)`
Destruir Objeto
Notação: X no final da linha de vida
**Rótulo**: `<<destroy>>` ou `delete`
7. Boas Práticas 📐
Organização Visual
!!! tip "Diretrizes de Layout" 1. Objetos da esquerda para direita: Do ator para sistemas internos 2. Mensagens numeradas: Para processos complexos 3. Comentários: Explique lógicas não óbvias 4. Agrupamento: Use fragmentos para organizar fluxos
Granularidade Adequada
Nível de Detalhe
❌ Muito detalhado: objeto.setAtributo(valor), validarCPF()
✅ **Adequado**: `processarPagamento()`, `enviarConfirmacao()`
❌ **Muito genérico**: `processarPedido()` (sem mostrar interações internas)
8. Mini-Projeto Prático 🚀
Cenário: Sistema de Reserva de Quartos de Hotel
Desafio:
1. Identifique 3 participantes: Portador, Maquineta, Operadora.
2. Desenhe o fluxo de uma "Autorização de Compra".
3. Use um fragmento alt para tratar o cenário de "Saldo Insuficiente".
Dica de Sênior
Não modele cada linha de código. Foque nas mensagens importantes entre os componentes principais da arquitetura.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Comunicação ➡️
Aula 09 - Diagrama de Comunicação 📢
Módulo
MÓDULO 3 – MODELAGEM COMPORTAMENTAL
1. Perspectiva Espacial: Comunicação 📚
Antigamente chamado de Diagrama de Colaboração, o Diagrama de Comunicação foca na organização estrutural dos objetos que trocam mensagens.
🧠 Diferenças Estratégicas
Foco na Estrutura
Enquanto a Sequência foca no tempo, a Comunicação foca nos links entre objetos. É excelente para visualizar o acoplamento do sistema.
Numeração de Mensagens
Como não há linha do tempo vertical, as mensagens são numeradas (1, 1.1, 2, etc.) para indicar a sequência da execução.
2. Visualizando a Colaboração 📊
O layout em grafo facilita ver quais objetos são "hubs" de comunicação no sistema.
graph LR
User((👤 Atendente)) -- "1: criarPedido()" --> P[<u>:Pedido</u>]
P -- "1.1: adicionarItem()" --> I[<u>:ItemPedido</u>]
P -- "1.2: calcularTotal()" --> P
P -- "2: validarEstoque()" --> E[<u>:Estoque</u>]
style User fill:#e1f5fe
style P fill:#fff3e0
3. Verificação de Vizinhança via CLI 💻
No desenvolvimento, o diagrama de comunicação nos ajuda a pensar em quais classes precisam de referências para outras.
- ItemPedido (1..*)
- Estoque (1)
- Financeiro (1)
> Status: Acoplamento dentro do limite aceitável.
4. Quando usar Sequência vs Comunicação 📑
| Característica | Diagrama de Sequência | Diagrama de Comunicação |
|---|---|---|
| Ponto Forte | Ordem cronológica clara | Caminhos físicos e links |
| Complexidade | Melhor para muitos fragmentos(alt, loop) | Melhor para poucas mensagens |
| Histórico | Visão "Horizontal" | Visão "Grafo" |
| Uso Ideal | Lógica de algoritmos complexos | Visualização de Arquitetura |
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Controle de Elevador.
Desafio: 1. Identifique os objetos: Botão, Controlador, Motor. 2. Desenhe as comunicações numeradas para "Chamar Elevador para o 5º andar". 3. Identifique qual objeto centraliza a lógica (o Hub).
Dica de Analista
Se o seu diagrama de comunicação parece uma "teia de aranha" confusa, seu sistema pode estar com alto acoplamento (muitas classes dependendo de muitas outras).
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Atividades ➡️
Aula 10 - Diagrama de Atividades 🏃♂️
Módulo
MÓDULO 3 – MODELAGEM COMPORTAMENTAL
1. Modelagem de Processos de Negócio 📚
O Diagrama de Atividades foca no fluxo de controle e de dados. É o melhor diagrama para descrever algoritmos complexos ou processos de negócio (workflow), sendo parente próximo do fluxograma tradicional.
🧠 Elementos de Controle
Nó de Decisão e União
Representado por um losango. Define caminhos alternativos baseados em condições (guards).
Fork e Join (Paralelismo)
Barras pretas grossas que indicam o início e o fim de atividades que ocorrem simultaneamente.
2. Orquestração do Fluxo 📊
Diferente do Sequência, o Atividades mostra "o que" acontece em ordem lógica de execução.
graph TD
Start(( )) --> Pack[Empacotar Produto]
Pack --> Fork{ }
Fork --> Pay[Processar Pagamento]
Fork --> Logis[Gerar Etiqueta]
Pay --> Join{ }
Logis --> Join
Join --> Dispatch[Despachar Pedido]
Dispatch --> End(( ))
style Start fill:#000
style End fill:#000,stroke:#fff,stroke-width:4px
3. Automação de Workflows via CLI 💻
Workflows modelados em Diagramas de Atividades podem ser convertidos em motores de regras ou scripts de automação.
[STEP 2] Parallel: [Unit Tests] [Linting]
[STEP 3] Deployment: Staging
[SUCCESS] Sistema online em produção.
4. Partições (Swimlanes) 🏊♂️
As raias ou "swimlanes" dividem as atividades por responsabilidade (quem faz o quê).
| Raia | Responsabilidade | Atividades Comuns |
|---|---|---|
| Cliente | Usuário externo | Solicitar, Pagar, Receber |
| Vendas | Departamento interno | Validar Pedido, Faturar |
| Estoque | Logística | Separar, Embalar, Despachar |
Dica de Fluxo
Use o Diagrama de Atividades para mapear processos manuais antes de tentar automatizá-los com software.
5. Mini-Projeto Prático 🚀
Cenário: Sistema de Cadastro de Novo Usuário com Confirmação de Email.
Desafio:
1. Desenhe o fluxo: Preencher Dados -> Enviar Email -> Aguardar Clique -> Ativar Conta.
2. Adicione uma decisão: "Email já existe?".
3. Adicione um fork para: Enviar Log de Auditoria e Enviar Boas-vindas ao mesmo tempo.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Estados ➡️
Aula 11 - Diagrama de Estados 🔄
Módulo
MÓDULO 3 – DIAGRAMAS COMPORTAMENTAIS UML
1. Fundamentos do Diagrama de Estados 📚
Nesta aula, estudaremos o Diagrama de Estados (State Machine), que modela o comportamento dinâmico de objetos em resposta a eventos.
🧠 Conceitos Fundamentais
Estado
Condição ou situação na vida de um objeto durante a qual ele satisfaz alguma condição, executa atividade ou aguarda evento.
**Notação**: Retângulo com cantos arredondados
Transição
Mudança de estado causada por evento, podendo ter condição de guarda e ação associada.
**Notação**: Seta rotulada com `evento[guarda]/ação`
Evento
Ocorrência que pode disparar uma transição de estado.
**Tipos**: Chamada, sinal, mudança, tempo
2. Anatomia do Diagrama de Estados 📊
stateDiagram-v2
[*] --> Criado : criar()
Criado --> Ativo : ativar() [condiçõesOK]
Criado --> Cancelado : cancelar()
Ativo --> Suspenso : suspender()
Ativo --> Bloqueado : bloquear() [violacao]
Ativo --> Inativo : desativar()
Suspenso --> Ativo : reativar()
Suspenso --> Cancelado : cancelar()
Bloqueado --> Ativo : desbloquear() [administrador]
Bloqueado --> Cancelado : cancelar()
Inativo --> Ativo : ativar()
Inativo --> Cancelado : cancelar()
Cancelado --> [*]
state Ativo {
[*] --> Normal
Normal --> Premium : upgrade()
Premium --> Normal : downgrade()
}
3. Estados Especiais e Atividades 🔀
Estados Inicial e Final
Estado Inicial
Notação: Círculo preenchido [•]
**Comportamento**: Ponto de entrada da máquina de estados
**Regra**: Apenas uma transição de saída
Estado Final
Notação: Círculo com borda [◎]
**Comportamento**: Terminação da máquina de estados
**Característica**: Nenhuma transição de saída
Atividades em Estados
Entry, Do e Exit
Estado
___________
entry / açãoEntrada
do / atividadeContínua
exit / açãoSaída
**Entry**: Executada ao **entrar** no estado
**Do**: Executada **durante** a permanência no estado
**Exit**: Executada ao **sair** do estado
4. Transições Complexas 💻
5. Estados Compostos (Aninhados) 🎨
Hierarquia de Estados
Estado Composto
Definição: Estado que contém outros estados (sub-estados)
**Vantagem**: Reduz complexidade e permite reutilização
**Exemplo**:
```
Estado "Ativo"
├── Sub-estado "Funcionando"
└── Sub-estado "Manutenção"
```
Estados Paralelos (Concorrentes)
Regiões Paralelas
Uso: Quando objeto pode estar em múltiplos estados simultaneamente
**Notação**: Estados separados por linha tracejada
**Exemplo**: Telefone pode estar "Ligado" E "Conectado" ao mesmo tempo
6. Eventos e Triggers ⚙️
Tipos de Eventos
Evento de Chamada (Call Event)
Formato: nomeOperacao(parametros)
**Disparo**: Invocação de método ou operação
**Exemplo**: `sacar(valor)`, `login(usuario, senha)`
Evento de Sinal (Signal Event)
Formato: nomeDoSinal
**Disparo**: Recebimento de sinal assíncrono
**Exemplo**: `sistemaInicializado`, `falhaDetectada`
Evento de Tempo (Time Event)
Formatos: after(tempo), when(condição)
**Disparo**: Passagem de tempo ou condição temporal
**Exemplo**: `after(30 seg)`, `when(dataVencimento < hoje)`
Evento de Mudança (Change Event)
Formato: when(condição)
**Disparo**: Quando condição se torna verdadeira
**Exemplo**: `when(temperatura > 80)`, `when(saldo < 0)`
7. Aplicacões Práticas 🏢
Quando Usar Diagramas de Estados
!!! success "Ideal Para" - Objetos reativos: Respondem a eventos externos - Protocolos: Sequências de interação bem definidas - Interfaces de usuário: Botões, janelas, formulários - Dispositivos: Equipamentos com estados óbvios
**Exemplos**: Conta bancária, processamento de pedidos, elevador
!!! warning "Evitar Para" - Objetos passivos: Apenas armazenam dados - Operações simples: Cálculos diretos sem transições - Fluxos de controle: Use diagrama de atividades
**Exemplos**: Endereço, produto (sem ciclo de vida), relatórios
Integração com Outros Diagramas
!!! tip "Relação com Classes" - Estados correspondem a valores de atributos - Transições correspondem a métodos que alteram estado - Validação: Métodos devem respeitar transições válidas
5. Mini-Projeto Prático 🚀
Cenário: Ciclo de vida de um Ar-Condicionado Inteligente.
Desafio: 1. Identifique 3 estados básicos: Desligado, Resfriando, Ventilando. 2. Adicione um estado de "Manutenção" que só pode ser acessado via código técnico. 3. Defina o evento que faz o aparelho passar de "Resfriando" para "Ventilando" (ex: Temperatura Atingida).
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Diagrama de Componentes ➡️
Módulo 4 – Arquitetura e Integração
Aula 12 - Diagrama de Componentes 🗜️
Módulo
MÓDULO 4 – DIAGRAMAS AVANÇADOS E ARQUITETURA
1. Visão Física do Software 📚
O Diagrama de Componentes descreve como o sistema é dividido em módulos físicos (arquivos, DLLs, pacotes, microserviços) e como eles se conectam através de interfaces.
🧠 Anatomia do Componente
Interfaces Fornecidas (Lollipop)
Serviços que o componente oferece ao mundo exterior. Representado por um círculo.
Interfaces Requeridas (Socket)
Serviços que o componente precisa para funcionar. Representado por um semicírculo.
2. Orquestração de Microserviços 📊
A modelagem de componentes é vital para entender o acoplamento entre serviços.
graph LR
UI[Frontend Web] -- IAuth --> Auth[Serviço Autenticação]
UI -- IOrder --> Order[Serviço Pedidos]
Order -- IPayment --> Pay[Gateway Pagamento]
Order -- IStock --> Stock[Serviço Estoque]
style UI fill:#e1f5fe
style Pay fill:#f1f8e9
3. Inspeção de Dependências via CLI 💻
Em projetos modernos, os componentes são gerenciados por gerenciadores de pacotes (npm, pip, maven).
│ ├─ auth-module
│ └─ order-module
└─ shared-utils (v1.0)
[SUCCESS] Nenhuma vulnerabilidade detectada.
4. Camadas e Responsabilidades 📑
| Camada | Componentes Comuns | Regra de Ouro |
|---|---|---|
| Apresentação | Controllers, Views | Nunca acessa o Banco diretamente |
| Negócio | Services, Entities | Contém a lógica de domínio |
| Dados | Repositories, DAOs | Foca apenas em persistência |
| Integração | API Clients, Adapters | Isola sistemas externos |
Dica de Arquitetura
Sempre prefira depender de interfaces (abstrações) do que de implementações concretas. Isso facilita os testes e a manutenção.
5. Mini-Projeto Prático 🚀
Cenário: Arquitetura de um Aplicativo de Delivery.
Desafio:
1. Identifique 3 componentes principais (API, App Cliente, App Entregador).
2. Defina uma interface de comunicação (ex: INotifyOrder).
3. Desenhe o relacionamento de dependência entre eles.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Laboratório de Requisitos ➡️
Aula 13 - Diagrama de Implantação 🌐
Módulo
MÓDULO 4 – DIAGRAMAS AVANÇADOS E ARQUITETURA
1. Visão de Implantação 📚
O Diagrama de Implantação (Deployment Diagram) descreve a arquitetura física do sistema, mostrando como os artefatos de software são distribuídos nos nós de hardware.
🧠 Elementos Principais
Nó (Node)
Representa um recurso computacional físico ou virtual (Servidor, PC, Smartphone, Nuvem). Notação: Um cubo 🧊.
Artefato (Artifact)
O arquivo físico que resulta do desenvolvimento (JAR, DLL, EXE, Docker Image).
Notação: Retângulo com o estereótipo <<artifact>>.
2. Modelagem de Arquitetura 📊
Diferente do diagrama de componentes (que é lógico), o de implantação é sobre infraestrutura.
graph TD
subgraph "Servidor Cloud [AWS]"
Docker[<<artifact>> backend.jar]
DB[<<artifact>> postgres_db]
end
subgraph "Desktop Cliente"
Browser[<<nó>> Web Browser]
end
Browser -- "HTTPS / TCP-IP" --> Docker
Docker -- "JDBC" --> DB
3. Dispositivos e Execução 💻
A UML permite detalhar o ambiente de execução dentro de um nó.
"Node": "Worker-01",
"Artifact": "api-v1.0.jar",
"Network": "Bridge-External"
}
[SUCCESS] Artefato implantado com sucesso no nó.
4. Distribuição Física 📑
| Elemento | Tipo | Exemplo Real |
|---|---|---|
| Device | Hardware Físico | Servidor Dell, Roteador, Mobile |
| Execution Environment | Software de Sistema | JVM, Docker, Servidor Web (Nginx) |
| Communication Path | Conexão | HTTP, Bluetooth, Fibra Ótica |
Dica de Arquiteto
Use este diagrama para planejar a escalabilidade e identificar gargalos de rede entre os computadores do sistema.
5. Mini-Projeto Prático 🚀
Cenário: Arquitetura Cliente-Servidor de um Sistema Bancário.
Desafio:
1. Identifique 3 nós: Smartphone, Servidor de API, Servidor de Banco de Dados.
2. Defina os protocolos de comunicação entre eles (ex: REST/JSON, SQL).
3. Especifique em qual nó ficaria o artefato auth-module.bin.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Integração dos Diagramas ➡️
Aula 14 - Integração dos Diagramas 🔗
Módulo
MÓDULO 4 – DIAGRAMAS AVANÇADOS E ARQUITETURA
1. Rastreabilidade e Coerência 📚
A modelagem UML só é eficaz quando os diagramas são consistentes entre si. A Integração garante que um método no Diagrama de Sequência realmente exista no Diagrama de Classes.
🧠 Pilares da Integração
Rastreabilidade
Capacidade de seguir a evolução de um requisito desde o Caso de Uso até a Implantação.
Consistência Horizontal
Garantir que diagramas do mesmo nível (ex: Sequência e Comunicação) contem a mesma história.
2. A Teia da UML 📊
Os diagramas não são ilhas isoladas; eles se alimentam mutuamente.
graph TD
UC[Caso de Uso] -- "Define Escopo" --> CD[Diagrama de Classes]
CD -- "Define Estrutura" --> SD[Diagrama de Sequência]
SD -- "Define Lógica" --> AD[Diagrama de Atividades]
AD -- "Define Fluxo" --> COMP[Diagrama de Componentes]
COMP -- "Define Pacotes" --> UC
3. Auditoria de Modelagem via CLI 💻
Analistas Sêniores usam scripts para verificar se os nomes das classes batem com a modelagem.
[WARNING] Método 'validarSenha' no Seq não encontrado em Classes.md
[ERROR] Objeto 'Carrinho' sem correspondência no UseCase.md
[FAIL] Modelagem inconsistente detectada.
4. Matriz de Rastreabilidade 📑
| Requisito (RF) | Caso de Uso | Classe Principal | Diagrama de Dinâmica |
|---|---|---|---|
| RF01: Login | Manter Usuário | Autenticador |
Seq_Login_01 |
| RF02: Checkout | Finalizar Venda | Pedido |
Ativ_Checkout_Flow |
| RF03: Estoque | Baixar Produto | Estoque |
State_Item_Vendido |
Dica de Auditoria
Antes de começar a programar, faça o "teste da caneta": tente seguir o fluxo de um requisito passando por todos os diagramas. Se a "caneta" travar, falta uma conexão.
5. Mini-Projeto Prático 🚀
Cenário: Revisão Geral do Sistema NexusCart.
Desafio:
1. Escolha uma funcionalidade: "Adicionar Produto ao Carrinho".
2. Verifique se o ator do Caso de Uso é o mesmo que inicia a Sequência.
3. Garanta que a Classe Carrinho tenha o método adicionarItem().
4. Documente uma inconsistência encontrada e como corrigi-la.
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Workshop Prático ➡️
Módulo 5 – Projeto Final
Aula 15 - Desenvolvimento do Projeto Final 🚀
Módulo
MÓDULO 5 – PROJETO FINAL E AVALIAÇÃO
1. Da Teoria à Prática 📚
Chegou o momento de consolidar todo o conhecimento em um projeto completo. O Projeto Final desafia você a aplicar a modelagem UML de ponta a ponta, desde a descoberta até o design arquitetural.
🧠 Checklist de Excelência
Modelagem Estrutural
Garantir que os Diagramas de Casos de Uso e Classes reflitam fielmente o escopo e as regras de negócio.
Modelagem Comportamental
Demonstrar a dinâmica do sistema através de Diagramas de Sequência e Atividades para as funcionalidades críticas.
2. Roadmap do Projeto 📊
Siga as etapas para garantir uma entrega de alta qualidade.
timeline
title Etapas do Projeto Final
Semana 1 : Definição de Escopo : Casos de Uso
Semana 2 : Modelo Estático : Diagrama de Classes : Dicionário de Dados
Semana 3 : Modelo Dinâmico : Sequência : Atividades
Semana 4 : Refinamento : Documentação : Preparação da Apresentação
3. Gestão de Versões do Projeto via CLI 💻
Mantenha seu projeto organizado usando ferramentas de controle de versão.
4. Critérios de Avaliação Técnicos 📑
| Critério | Peso | O que será avaliado? |
|---|---|---|
| Consistência | 30% | Os diagramas "conversam" entre si? |
| Notação UML | 20% | Uso correto de símbolos, flechas e visibilidade. |
| Complexidade | 20% | O sistema resolve um problema real? |
| Documentação | 30% | Clareza das especificações e mini-projetos. |
Atenção
Não se esqueça das Regras de Negócio. Um diagrama bonito sem lógica de negócio correta é apenas um desenho.
5. Mini-Projeto Prático (Sprint Final) 🚀
Cenário: Revisão por Pares (Peer Review).
Desafio: 1. Troque seu Diagrama de Classes com um colega. 2. Identifique 2 possíveis "Bugs de Modelagem" (ex: herança mal aplicada, falta de multiplicidade). 3. Sugira uma melhoria arquitetural (ex: uso de uma interface).
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Próxima Aula: Apresentação e Avaliação ➡️
Aula 16 - Apresentação e Avaliação 🏆
Módulo
MÓDULO 5 – PROJETO FINAL E AVALIAÇÃO
1. O Momento da Entrega 📚
A Apresentação e Avaliação não é apenas o fim, mas a celebração do processo de modelagem. É aqui que você demonstra sua capacidade de traduzir problemas complexos em diagramas claros e acionáveis.
🧠 Checklist de Apresentação
Poder de Síntese
Conseguir explicar a arquitetura do sistema em menos de 5 minutos, focando nos pontos mais críticos.
Postura Profissional
Responder a questionamentos técnicos sobre escolhas de relacionamentos (ex: por que Agregação e não Composição?).
2. Processo de Feedback 360º 📊
A avaliação é uma oportunidade de aprendizado contínuo.
graph TD
A[Apresentação] --> B[Arguição Técnica]
B --> C[Feedback Pares]
C --> D[Avaliação Mentor]
D --> E([Certificação])
style E fill:#f3e5f5,stroke:#9c27b0
3. Empacotamento Final via CLI 💻
Antes de exportar seu projeto, certifique-se de que tudo está em ordem.
[SUCCESS] Documentação gerada com sucesso.sha256sum Projeto_Final_Analista.pdf5f98... Final Hash for submission
4. O Caminho do Analista Sênior 📑
| Nível | Competência | Atitude |
|---|---|---|
| Junior | Faz o diagrama correto | Segue regras |
| Pleno | Resolve problemas de design | Questiona requisitos |
| Sênior | Desenha arquiteturas escaláveis | Foca no valor de negócio |
| Lead | Mentora outros analistas | Define padrões |
Parabéns!
Você concluiu a jornada de Modelagem UML. Agora você possui as ferramentas para projetar sistemas robustos e profissionais.
5. Mini-Projeto Prático (Auto-Avaliação) 🚀
Cenário: Reflexão sobre o aprendizado.
Desafio: 1. Qual foi o diagrama mais difícil de aprender e por quê? 2. Se você pudesse refazer a Aula 01, o que faria de diferente hoje? 3. Defina seu próximo objetivo de estudo (ex: Padrões de Projeto - GoF).
🎯 Materiais e Prática
-
Slides Interativos --- Acesse a apresentação visual da aula. Ver Slides
-
Testar Conhecimento --- Responda ao Quiz da aula para fixar os conceitos. Responder Quiz
-
Exercícios Progressivos --- Pratique com 5 exercícios de fixação e desafio. Praticar
-
Mini-Projeto --- Aplique a análise no seu projeto de referência. Ver Projeto
Concluir Curso: Voltar ao Início 🏠
Materiais
Materiais Complementares 📚
Bem-vindo à seção de materiais complementares do curso de Guia de Modelagem UML. Aqui você encontra recursos adicionais para apoiar seus estudos e aprofundar seu conhecimento técnico.
-
Slides --- Acompanhe o conteúdo teórico com slides dinâmicos e visuais.
-
Exercícios --- Pratique a modelagem de sistemas com exercícios progressivos.
-
Quizzes --- Valide seu aprendizado com testes rápidos por módulo.
-
Projetos --- Construa um portfólio sólido com 16 mini-projetos práticos.
-
Ambiente --- Guias de instalação de ferramentas (VS Code, Astah, Lucidchart).
Slides
Slides Interativos
Nesta seção você acessa os slides completos de cada uma das 16 aulas do Curso. As apresentações foram desenhadas com visual otimizado Reveal.js.
Para utilizar as transições (como as setas do teclado) em tela-cheia, pressione a tecla F.
Módulo 1 – Fundamentos e Requisitos
- Aula 01 - Introdução à Análise
- Aula 02 - Engenharia de Software
- Aula 03 - Introdução à UML
- Aula 04 - Diagrama de Casos de Uso
Módulo 2 – Especificação e Estrutura
- Aula 05 - Especificação de Casos de Uso
- Aula 06 - Diagrama de Classes (Parte 1)
- Aula 07 - Diagrama de Classes (Parte 2)
Módulo 3 – Modelagem Comportamental
- Aula 08 - Diagrama de Sequência
- Aula 09 - Diagrama de Comunicação
- Aula 10 - Diagrama de Atividades
- Aula 11 - Diagrama de Estados
Módulo 4 – Arquitetura e Integração Final
Exercícios
Exercícios Práticos
Mantenha a prática constante para dominar a modelagem UML. Cada lista contém 5 exercícios (Básico, Intermediário e Desafio) com links para soluções detalhadas.
Módulo 1 – Fundamentos e Requisitos
- Exercícios 01 - Introdução à Análise
- Exercícios 02 - Engenharia de Software
- Exercícios 03 - Introdução à UML
- Exercícios 04 - Diagrama de Casos de Uso
Módulo 2 – Especificação e Estrutura
- Exercícios 05 - Especificação de Casos de Uso
- Exercícios 06 - Diagrama de Classes (Parte 1)
- Exercícios 07 - Diagrama de Classes (Parte 2)
Módulo 3 – Modelagem Comportamental
- Exercícios 08 - Diagrama de Sequência
- Exercícios 09 - Diagrama de Comunicação
- Exercícios 10 - Diagrama de Atividades
- Exercícios 11 - Diagrama de Estados
Módulo 4 – Arquitetura e Integração Final
Quizzes
Quizzes Interativos
Teste seus conhecimentos técnicos com nossos quizzes interativos de 10 questões cada.
Módulo 1 – Fundamentos e Requisitos
- Quiz 01 - Introdução à Análise
- Quiz 02 - Engenharia de Software
- Quiz 03 - Introdução à UML
- Quiz 04 - Diagrama de Casos de Uso
Módulo 2 – Especificação e Estrutura
- Quiz 05 - Especificação de Casos de Uso
- Quiz 06 - Diagrama de Classes (Parte 1)
- Quiz 07 - Diagrama de Classes (Parte 2)
Módulo 3 – Modelagem Comportamental
- Quiz 08 - Diagrama de Sequência
- Quiz 09 - Diagrama de Comunicação
- Quiz 10 - Diagrama de Atividades
- Quiz 11 - Diagrama de Estados
Módulo 4 – Arquitetura e Integração Final
Projetos
Projeto Integrador: NexusCart 🛒
O Projeto Integrador deste curso consiste no desenvolvimento da modelagem completa de uma plataforma de E-commerce Omnichannel chamada NexusCart.
Você evoluirá este projeto aula a aula, aplicando cada novo diagrama e técnica aprendida.
🚀 Fases do Projeto
Módulo 1: Fundamentos e Requisitos
- Etapa 01 - Visão Geral do Sistema
- Etapa 02 - Levantamento de Requisitos
- Etapa 03 - Escolha do Modelo de Processo
- Etapa 04 - Identificação de Atores e Casos de Uso
Módulo 2: Estrutura e Dados
- Etapa 05 - Especificação de Casos de Uso
- Etapa 06 - Atributos e Visibilidade
- Etapa 07 - Relações e Multiplicidade
Módulo 3: Dinâmica e Comportamento
- Etapa 08 - Fluxos de Mensagens (Sequência)
- Etapa 09 - Organização de Instâncias
- Etapa 10 - Processos de Negócio (Atividades)
- Etapa 11 - Ciclo de Vida de Pedidos (Estados)
Módulo 4: Arquitetura e Lab
- Etapa 12 - Modularização (Componentes)
- Etapa 13 - Laboratório de Design Sprint
- Etapa 14 - Laboratório de Comunicação Ágil
Módulo 5: Finalização
Conselho de Ouro
Salve todos os arquivos de modelagem em uma pasta organizada. Ao final do curso, você terá um portfólio completo de análise e projeto de sistemas!
Configuração
Configuração do Ambiente
Prepare sua máquina para modelar sistemas com as melhores ferramentas do mercado.
📋 Próximos Passos
Após configurar seu ambiente, você estará pronto para iniciar a Aula 01 e começar sua jornada em modelagem UML.
Configuração: Windows 🪟
Siga os passos abaixo para preparar seu ambiente de modelagem UML no Windows.
1. Instalando o VS Code
O Visual Studio Code será nossa principal ferramenta para visualizar e criar diagramas via código. 1. Acesse code.visualstudio.com. 2. Baixe o instalador para Windows. 3. Execute o instalador e siga as instruções padrão.
2. Extensões Recomendadas
Abra o VS Code (Ctrl+Shift+X) e instale as seguintes extensões:
* Mermaid Editor: Para renderizar diagramas definidos via texto.
* Draw.io Integration: Para criar diagramas visuais diretamente no VS Code.
* Markdown All in One: Melhora a experiência de escrita para os seus arquivos de aula.
3. PlantUML (Opcional - Avançado)
Para usar o PlantUML, você precisará do Java e do Graphviz: 1. Java: Instale o JRE/JDK aqui. 2. Graphviz: Baixe o instalador em graphviz.org. 3. Extensão: Instale "PlantUML" no VS Code.
4. Git (Versionamento)
Essencial para salvar seu progresso no GitHub.
1. Baixe em git-scm.com.
2. No terminal (cmd ou PowerShell), configure sua identidade:
[!TIP] Use o tema Dark Modern no VS Code para uma melhor visualização dos diagramas com cores vibrantes.
Configuração: Linux 🐧
Siga os passos abaixo para configurar seu ambiente de modelagem UML em distribuições baseadas em Debian/Ubuntu.
1. Instalando o VS Code
Abra o terminal e execute:
sudo apt update
sudo apt install software-properties-common apt-transport-https wget
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt install code
2. Extensões de Modelagem
No VS Code, instale: * Mermaid Editor * Draw.io Integration * PlantUML
3. Dependências do PlantUML
Para renderizar diagramas complexos, instale o Java e o Graphviz:
4. Git
Provavelmente já está instalado, mas para garantir:
sudo apt install git
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
5. Dica de Performance 🚀
Se estiver usando o VS Code via Snap, ele pode ter problemas com algumas extensões de arquivos. Recomendamos a instalação via .deb oficial conforme o passo 1.
Configuração: macOS 🍎
Siga os passos abaixo para preparar seu Mac para modelar sistemas com UML.
1. Instalando o VS Code
- Acesse code.visualstudio.com.
- Baixe a versão para o chip Apple Silicon (M1/M2/M3) ou Intel, conforme seu caso.
- Arraste o Visual Studio Code para a pasta Applications.
2. Extensões Essenciais
No VS Code (Cmd+Shift+X), instale:
* Mermaid Editor
* Draw.io Integration
* PlantUML
3. Brew e Dependências
Recomendamos o uso do Homebrew para instalar o Graphviz (necessário para o PlantUML):
1. Instale o Homebrew (se não tiver): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Instale o Graphviz e o Java:
4. Git
O macOS já vem com o Git, mas você pode atualizar via Brew:
brew install git
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
[!IMPORTANT] Se o VS Code pedir permissão para acessar pastas de sistema ao abrir arquivos
.drawioou.mermaid, clique em Permitir.
Versão para Impressão
Esta página foi gerada automaticamente para impressão.