📚 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.

🏦 Especificação & Modelagem de Domínio Bancário com UML 2.5

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

🎓 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.


🎯 Objetivo & Escopo do Projeto

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.


🧑‍💼 Fase 1 — Levantamento de Requisitos

O Briefing do Cliente (Superintendente de Arquitetura Bancária)

“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.”

Requisitos Funcionais (RF) e Não-Funcionais (RNF)

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

📋 Fase 2 — Backlog & User Stories

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

🌿 Fase 3 — Engenharia em Equipe (Git Flow & Setup)

# Branch da funcionalidade
git checkout -b feature/US01-uml-banking-domain

# Validar especificacao UML
cat index.md

🛠️ Fase 4 — Modelagem do Diagrama de Sequência Pix (UML)

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 ✅


🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd uml_01_especificacao_sistema_bancario

2. Execute a aplicação ou testes

# 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`

🧭 Decisões de Arquitetura (ADRs)


🧪 Testes de Validação & Consistência de Modelo



🏛️ Arquitetura Visual & Engenharia do Sistema

O diagrama abaixo sintetiza a organização dos artefatos, contratos e diretrizes arquiteturais na subpasta uml/:

Arquitetura da Aplicação

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

🎯 Engenharia de Requisitos & Modelagem Formal

👤 User Stories (Histórias de Usuário)

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

⚙️ Requisitos Funcionais (RF)

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

🛡️ Requisitos Não-Funcionais (RNF)

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

🔗 Matriz de Rastreabilidade (RTM)

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

🏁 Checkpoints de Qualidade & Homologação

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 ✅