📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia Engenharia de Software e Modelagem UML (Capítulos 06, 10, 11, 13 e 14). Recomendado revisar antes de começar.
v1.0 — Engenharia de Software, UML 2.5, Casos de Uso, Diagrama de Classes e Sequência
Trilha de Especialização Pedagógica — Projeto 1 de 4
- ➡️ v1 (este): Modelagem Bancária · UML 2.5 · Casos de Uso · Classes de Domínio · Sequência
- v2: Modelagem de Microsserviços e Event-Driven com Diagramas de Atividades
- v3: Domain-Driven Design (DDD): Bounded Contexts & Context Mapping
- v4: C4 Model: Diagramas de Contexto, Contêineres, Componentes e Código
🎓 Nível Profissional Simulado: Arquiteto de Software / Analista de Sistemas Pleno. Antes de escrever uma única linha de código em um sistema financeiro, arquitetos projetam o modelo na notação UML (Unified Modeling Language). Dominar Casos de Uso, Diagramas de Classes (composição, agregação, herança) e Diagramas de Sequência é essencial para construir sistemas de missão crítica.
Elaborar a Especificação de Arquitetura e Modelagem de Domínio Completa de um Sistema Bancário Digital (Core Banking) na notação UML 2.5, cobrindo o Diagrama de Casos de Uso, o Diagrama de Classes com relacionamentos de herança (ContaCorrente, ContaPoupanca) e o Diagrama de Sequência de uma transação Pix em tempo real.
“Estamos reformulando o motor de contas e transferências do banco digital. Precisamos de uma especificação técnica formal: mapear todos os atores (Cliente, Gerente, Sistema de Antifraude), detalhar os casos de uso de abertura de conta, depósito, saque e transferência Pix, modelar a hierarquia de classes com saldo, limite de cheque especial e taxas, e desenhar o fluxo sequencial exato de validação e liquidação de um Pix.”
| ID | Tipo | Descrição | Origem no Briefing |
|---|---|---|---|
| RF01 | Funcional | Modelar Casos de Uso com atores Cliente, Gerente e Sistema Antifraude. | “mapear todos os atores” |
| RF02 | Funcional | Diagrama de Classes com classe abstrata Conta e subclasses ContaCorrente e ContaPoupanca. |
“hierarquia de classes com saldo e limite” |
| RF03 | Funcional | Diagrama de Sequência da transferência Pix demonstrando validação de saldo e bloqueio de concorrência. | “fluxo sequencial de liquidação de Pix” |
| RNF01 | Não-Funcional | Conformidade estrita com a especificação formal da OMG (UML 2.5). | Padrão Internacional |
| RNF02 | Não-Funcional | Modelagem de domínio desacoplada de tecnologia de banco de dados específica. | Pureza de Domínio |
| ID | User Story | Prioridade |
|---|---|---|
| US01 | Como desenvolvedor, quero consultar o Diagrama de Classes para implementar entidades sem ambiguidades. | Alta |
| US02 | Como arquiteto, quero validar no Diagrama de Sequência se o antifraude é acionado antes da liquidação. | Alta |
# Branch da funcionalidade
git checkout -b feature/US01-uml-banking-domain
# Validar especificacao UML
cat index.md
sequenceDiagram
autonumber
actor Cliente as 👤 Cliente Pagador
participant App as 📱 App Bancário
participant Core as ⚙️ Core Banking API
participant Fraude as 🛡️ Antifraude
participant Bacen as 🏛️ Banco Central (SPI)
Cliente->>App: Solicita Pix (Chave + Valor)
App->>Core: POST /api/v1/pix/transferir
Core->>Fraude: Analisar Risco da Transação
Fraude-->>Core: Aprovado (Score de Risco Baixo)
Core->>Core: Debitar Saldo em Conta
Core->>Bacen: Enviar Ordem de Liquidação
Bacen-->>Core: Confirmação de Liquidação SPI
Core-->>App: Comprovante de Pagamento
App-->>Cliente: Exibir Comprovante com Sucesso ✅
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd uml_01_especificacao_sistema_bancario
# Executar comandos específicos da tecnologia:
python main.py # ou npm run dev / ./gradlew build
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd catalogo_projetos/uml_01_especificacao_sistema_bancario`
sacar(valor) e depositar(valor) respeitando o Princípio de Substituição de Liskov (LSP).O diagrama abaixo sintetiza a organização dos artefatos, contratos e diretrizes arquiteturais na subpasta uml/:
flowchart TD
subgraph Especificacao["Especificação & Contratos"]
E1["Contratos Formais"] --> E2["Modelagem de Domínio"]
end
subgraph Implementacao["Implementação & Stacks"]
I1["Arquiteturas & Código"] --> I2["Paridade Multilinguagem"]
end
subgraph Padroes["Governança & Padrões"]
P1["Living Styleguides"] --> P2["Conformidade de Design"]
end
subgraph Homologacao["Qualidade & Homologação"]
Q1["Matriz de Rastreabilidade"] --> Q2["Checkpoints CP-01..05 PASS"]
end
Especificacao --> Implementacao
Implementacao --> Padroes
Padroes --> Homologacao
style Especificacao fill:#e3f2fd,stroke:#1976d2,stroke-width:1.5px
style Implementacao fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px
style Padroes fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px
style Homologacao fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px
| ID | Persona | História de Usuário | Critério de Aceite | Prioridade |
|---|---|---|---|---|
| US-01 | Analista de Negócios Bancários | Desejo especificação formal de requisitos de um Core Banking | Casos de uso para abertura de conta, transferência PIX, saque e conciliação | Alta |
| US-02 | Arquiteto de Software | Desejo diagrama de classes UML 2.5 com relações de herança e composição | Modelagem de ContaCorrente, ContaPoupanca, Transacao, Titular e Tarifa | Alta |
| US-03 | Engenheiro de Domínio | Desejo diagrama de sequência modelando o fluxo transacional de transferência | Mensagens síncronas/assíncronas, verificações de saldo e reservas de fundos | Alta |
| US-04 | Especialista em Confiabilidade | Desejo diagrama de estados (State Machine) do ciclo de vida de uma transação | Estados CRIADA, RESERVADA, AUTORIZADA, CONCLUIDA, ESTORNADA e FALHA | Alta |
| US-05 | Auditor de Conformidade | Desejo matriz de rastreabilidade completa entre Requisitos de Negócio e Classes | Rastreabilidade bidirecional garantindo cobertura total de regras do BACEN | Média |
| ID | Descrição do Requisito | Criticidade |
|---|---|---|
| RF-01 | Diagrama de Casos de Uso cobrindo atores Correntista, Caixa, Sistema Central e BACEN | Alta |
| RF-02 | Diagrama de Classes de Domínio com atributos tipados, visibilidade e multiplicidades | Alta |
| RF-03 | Diagrama de Sequência para liquidação de transferência PIX com chamadas entre camadas | Alta |
| RF-04 | Diagrama de Máquina de Estados modelando ciclo de vida de transações financeiras | Alta |
| RF-05 | Código-fonte PlantUML versionado e scripts de compilação em uml/ | Média |
| ID | Especificação Arquitetural | Criticidade |
|---|---|---|
| RNF-01 | Adesão formal aos padrões da especificação internacional OMG UML 2.5 | Alta |
| RNF-02 | Consistência conceitual entre modelos estáticos (Classes) e dinâmicos (Sequência/Estados) | Alta |
| RNF-03 | Formatos de exportação vetorial (SVG) garantindo clareza e alta resolução | Média |
| RNF-04 | Estruturação dos fontes PlantUML na subpasta uml/ | Alta |
| RNF-05 | Rastreabilidade de 100% dos requisitos funcionais mapeados para artefatos | Alta |
| User Story | Requisito Funcional | Requisito Não-Funcional | Módulo / Artefato de Código | Status de Homologação |
|---|---|---|---|---|
| US-01 | RF-01 |
RNF-01, RNF-05 |
uml/modelagem.puml |
Testado |
| US-02 | RF-02 |
RNF-01, RNF-02 |
uml/modelagem.puml |
Testado |
| US-03 | RF-03 |
RNF-01, RNF-02 |
uml/modelagem.puml |
Testado |
| US-04 | RF-04 |
RNF-01, RNF-03 |
uml/modelagem.puml |
Testado |
| US-05 | RF-05 |
RNF-02, RNF-05 |
docs/matriz_rastreabilidade.md |
Testado |
| Checkpoint | Escopo da Validação | Artefato Verificado | Status |
|---|---|---|---|
| CP-01 | Estruturação de Contratos & Pastas | uml/ |
PASS ✅ |
| CP-02 | Modelagem de Domínio & Schemas | Domain Schemas |
PASS ✅ |
| CP-03 | Paridade Técnica & Implementações | Multi-stack Code |
PASS ✅ |
| CP-04 | Documentação Viva & Estilo | Styleguide & Guides |
PASS ✅ |
| CP-05 | Homologação com RTM & Validações | Quality Gate |
PASS ✅ |