Representar visual e textualmente a estrutura e o comportamento do sistema — comunicando arquitetura, fluxos e responsabilidades entre equipe e stakeholders.
────────────────────────────────────────────────────────────
CASO DE USO
────────────────────────────────────────────────────────────
ID: [CU-000]
Nome: [verbo + objeto, ex.: Registrar atividade]
Atores: [primário: quem inicia] | [secundários: sistemas externos]
Prioridade: [Alta | Média | Baixa]
RF relacionados: [RF-000, RF-001]
Resumo:
[Uma frase: o que o sistema oferece ao ator]
Pré-condições:
- [condição 1]
Gatilho:
- [evento que inicia o caso de uso]
Fluxo principal:
1. [ator] [ação]
2. Sistema [resposta/validação]
3. ...
N. Sistema encerra com [resultado]
Fluxos alternativos:
A1. No passo [N], se [condição]:
A1.1. Sistema [comportamento alternativo]
A1.2. Retorna ao passo [M] ou encerra.
Fluxos de exceção:
E1. No passo [N], se [falha]:
E1.1. Sistema informa [mensagem]
E1.2. [registra log / rollback / encerra]
Pós-condições (sucesso):
- [estado garantido]
Regras de negócio:
- [RN-000]: [texto]
────────────────────────────────────────────────────────────
EXEMPLO PREENCHIDO
────────────────────────────────────────────────────────────
ID: CU-004
Nome: Exportar relatório de atividades em PDF
Atores: Gestor (primário) | Serviço de auditoria (secundário)
Prioridade: Média
RF relacionados: RF-012
Resumo:
Permitir que o gestor baixe um PDF com atividades do período selecionado.
Pré-condições:
- Gestor autenticado com permissão de exportação.
- Consulta de atividades já exibida na tela.
Gatilho:
- Gestor aciona o botão “Exportar PDF”.
Fluxo principal:
1. Gestor confirma período e filtros.
2. Sistema valida intervalo (máx. 90 dias — RN-004).
3. Sistema gera PDF no servidor.
4. Sistema registra log de auditoria (usuário, filtros, timestamp).
5. Sistema disponibiliza download ao gestor.
Fluxos alternativos:
A1. No passo 3, se não houver registros:
A1.1. Sistema exibe “Nenhum dado no período”.
A1.2. Encerra sem gerar arquivo.
Fluxos de exceção:
E1. No passo 3, se falha na geração:
E1.1. Sistema exibe mensagem genérica de erro.
E1.2. Sistema registra incidente técnico e encerra.
Pós-condições (sucesso):
- PDF entregue; evento de auditoria persistido.
Regras de negócio:
- RN-004: Período máximo de 90 dias corridos.
────────────────────────────────────────────────────────────
DIAGRAMA DE CLASSES — NOTAÇÃO TEXTUAL
────────────────────────────────────────────────────────────
Pacote / contexto: [nome do módulo ou bounded context]
Classe: [NomeEntidade]
<<stereótipo>> [opcional: Entity, ValueObject, Service]
Descrição: [papel da classe no domínio]
Atributos:
- [nome]: [tipo] [multiplicidade, ex.: 1..1, 0..*]
Métodos (opcional):
+ [nome]([parâmetros]): [retorno]
Invariantes / regras:
- [regra que sempre deve valer]
Relacionamentos:
[ClasseA] ──[associação|agregação|composição]──> [ClasseB]
multiplicidade: [1] ── [0..*]
papel/navegabilidade: [opcional]
atributo de ligação: [quando aplicável]
Enumeração: [NomeStatus]
Valores: [valor1, valor2, valor3]
────────────────────────────────────────────────────────────
EXEMPLO PREENCHIDO
────────────────────────────────────────────────────────────
Pacote / contexto: Gestão de atividades
Classe: Atividade
<<Entity>>
Descrição: Registro de uma ação operacional rastreável
Atributos:
- id: UUID (1..1)
- dataHora: DateTime (1..1)
- descricao: String (1..1)
- status: StatusAtividade (1..1)
Métodos:
+ cancelar(motivo: String): void
Invariantes:
- dataHora não pode ser futura em relação ao servidor
Classe: Usuario
<<Entity>>
Atributos:
- id: UUID (1..1)
- nome: String (1..1)
- perfil: PerfilUsuario (1..1)
Enumeração: StatusAtividade
Valores: REGISTRADA, CONFERIDA, CANCELADA
Relacionamentos:
Usuario ──associação──> Atividade
multiplicidade: 1 ── 0..*
papel: responsável pelo registro
Atividade ──> StatusAtividade (atributo status)
────────────────────────────────────────────────────────────
DIAGRAMA DE SEQUÊNCIA — NOTAÇÃO TEXTUAL
────────────────────────────────────────────────────────────
ID: [SEQ-000]
Nome do fluxo: [ex.: CU-004 — Exportar PDF]
Participantes: [Ator/Tela], [Controller/API], [Serviço], [Repositório], [Sistema externo]
Legenda:
-> chamada síncrona
-->> retorno
alt [condição] / opt [opcional] / loop [condição de repetição]
Sequência:
1. [ParticipanteA] -> [ParticipanteB]: [mensagem/método(dados)]
2. [ParticipanteB] --> [ParticipanteA]: [retorno]
alt [condição verdadeira]
2a. ...
else [outra condição]
2b. ...
end
opt [condição opcional]
3. ...
end
Notas:
- Tempo máximo / SLA: [se RNF aplicável]
- RF/RNF: [referências]
────────────────────────────────────────────────────────────
EXEMPLO PREENCHIDO
────────────────────────────────────────────────────────────
ID: SEQ-012
Nome do fluxo: CU-004 — Exportar relatório PDF
Participantes: TelaConsulta, ApiAtividades, PdfService, AuditLog, BancoDados
RF/RNF: RF-012, RNF-005 (consulta), política de auditoria
Sequência:
1. TelaConsulta -> ApiAtividades: GET /api/atividades?de=&ate=&filtros
2. ApiAtividades -> BancoDados: buscarRegistros(filtros)
3. BancoDados --> ApiAtividades: lista
4. ApiAtividades --> TelaConsulta: 200 OK + JSON
5. TelaConsulta -> ApiAtividades: POST /api/atividades/exportar-pdf
6. ApiAtividades -> ApiAtividades: validarIntervalo (RN-004)
alt intervalo inválido
6a. ApiAtividades --> TelaConsulta: 400 + mensagem de validação
else sem registros
6b. ApiAtividades --> TelaConsulta: 404 + "Nenhum dado no período"
else sucesso
7. ApiAtividades -> PdfService: gerar(lista, metadados)
8. PdfService --> ApiAtividades: bytes PDF
9. ApiAtividades -> AuditLog: registrar(usuario, filtros, timestamp)
10. AuditLog -> BancoDados: insert(log)
11. ApiAtividades --> TelaConsulta: 200 + URL/download PDF
end
Notas:
- Passos 1–4 podem reutilizar consulta já carregada na tela (otimização).
- Falha em PdfService: retorno 500 + log técnico (ver CU-004 E1).