Antes de modelar, identifique:
- problema e objetivo;
- usuários/atores;
- regras de negócio;
- sistema atual, se existir;
- integrações externas;
- restrições técnicas e regulatórias;
- dados principais;
- riscos e ambiguidades.
Escreva requisitos pequenos, identificáveis e testáveis.
FR-001 — O cliente deve conseguir criar uma reserva.
NFR-001 — 95% das consultas críticas devem responder dentro do SLO definido.
BR-001 — Um horário não pode ser reservado por dois clientes simultaneamente.
Use casos de uso para representar objetivo observável de um ator externo.
Evite:
- usar "Sistema" como ator genérico;
- transformar cada clique em caso de uso;
- duplicar regra de negócio dentro de todos os casos;
- usar
include/extendapenas para deixar diagrama mais complexo.
Use BPMN quando o foco é processo de negócio, responsabilidades, eventos e handoffs.
Use Activity Diagram quando o foco é comportamento/algoritmo do sistema.
Comece pelo nível mais alto necessário.
C4 Context
→ C4 Container
→ C4 Component (somente quando útil)
O objetivo não é desenhar cada classe; é comunicar decisões e fronteiras.
Modele:
- conceitos;
- relacionamentos;
- cardinalidade;
- invariantes;
- chaves;
- isolamento/ownership quando multi-tenant;
- histórico/auditoria quando necessário.
Use OpenAPI para operações, parâmetros, schemas, autenticação e respostas.
Use AsyncAPI para canais, mensagens, payloads e operações send/receive.
Quando houver escolha arquitetural relevante, crie ADR com contexto, decisão, alternativas e consequências.
Conecte:
Requirement
→ Business Rule
→ Use Case
→ Architecture/Data/API
→ Implementation
→ Test
Não é necessário rastrear cada linha de código. Priorize fluxos críticos e decisões importantes.
Mudanças em comportamento relevante exigem verificar:
- requisitos;
- diagramas;
- contracts;
- ADRs;
- testes;
- runbooks.
Em sistemas existentes, não misture os dois modelos.
- AS-IS: evidencia o que existe hoje.
- TO-BE: evidencia a mudança aprovada.
A diferença entre ambos vira backlog/roadmap de implementação.