O que é um Diagrama de Caso de Uso?
Um Diagrama de Caso de Usoé um plano comportamental usado para visualizar as relações entre os usuários de um sistema (conhecidos como atores) e as ações ou objetivos específicos que eles desejam alcançar (conhecidos como casos de uso). Em vez de mostrar loops lógicos passo a passo, um diagrama de caso de uso fornece uma visão geral de alto nível do escopo funcional de um sistema, tornando-o uma excelente ferramenta para definir requisitos do projeto, limites do sistema e fluxos de trabalho dos interessados.
Com VPasCode, você pode criar instantaneamente diagramas de caso de uso claros e profissionais sem lutar contra o alinhamento visual da tela. Este guia ignora as notações obscuras e legadas e se concentra exclusivamente nos elementos de sintaxe práticos que você precisa para documentação diária de software.
Guia de Sintaxe Básica: Elementos e Construções
Construir um diagrama de caso de uso no PlantUML depende de alguns elementos estruturais simples, envoltos nos seus padrões @startuml e @enduml tags.
1. Declarando Atores
Um ator representa uma entidade externa que interage com seu aplicativo (como um usuário humano, um serviço em segundo plano ou uma API de hardware externa). Você declara um ator usando a palavra-chave actor seguida por um ID de atalho interno:
actor customer
actor admin como "Administrador do Sistema" 
Dica Profissional: Use a palavra-chave como para atribuir uma string de exibição limpa e legível por humanos a IDs de atores complexos.
2. Definindo Casos de Uso
Um caso de uso representa um objetivo funcional ou um processo de negócios. Você pode definir um caso de uso de duas maneiras: envolvendo o texto entre parênteses (Seu Caso de Uso), ou usando explicitamente a caso de usopalavra-chave para formatação complexa:
(Entrar no Painel)
caso de uso checkout como "Processar Pagamento com Cartão de Crédito" 
3. Mapeando Interações Básicas
Para conectar seus atores aos seus casos de uso correspondentes, use linhas de relacionamento básicas direcionadas ou não direcionadas. Também é possível anexar rótulos textuais para adicionar contexto crítico a uma interação:
cliente --> (Entrar no Painel)
administrador --> checkout : "Aprova reembolsos" 
4. Relacionamentos Avançados: Incluir e Estender
Ao modelar comportamentos de sistemas complexos, você frequentemente precisa mostrar dependências entre diferentes casos de uso usando estereótipos padrão UML:
- Incluir (Dependência Obrigatória):Indica que um caso de uso base depende de outro caso de uso auxiliar para concluir com sucesso sua execução. Use uma linha de conexão pontilhada (
..>) com um rótulo textual anexado:Plantuml Edit Plantuml in VPasCode(Processar Checkout) ..> (Verificar Saldo) : <<incluir>>
- Estender (Comportamento Opcional/Condicional):Indica que um fluxo opcional pode se ramificar de um caso de uso base sob condições específicas. Observe que a seta aponta do caso de uso de *extensão* de volta para o caso de uso de *base*:
Plantuml Edit Plantuml in VPasCode
(Aplicar Código Promocional) ..> (Processar Checkout) : <<estender>>
5. Forçando Fronteiras do Sistema
Para distinguir claramente o que acontece dentro de sua aplicação de software em comparação com o que acontece externamente, use o “retângulopalavra-chave para envolver seus casos de uso internos. Crucialmente, os atores devem permanecer fora deste bloco de contêiner para refletir seu status como participantes externos:
ator cliente
retângulo "Plataforma de Comércio Eletrônico" {
(Navegar no Catálogo)
(Adicionar ao Carrinho)
}
cliente --> (Navegar no Catálogo)
cliente --> (Adicionar ao Carrinho) 
Melhores Práticas para Layouts Limpos
- Mantenha o Texto Breve:Os casos de uso devem sempre começar com um verbo claro e ativo (por exemplo, “Gerar Relatório”, “Atualizar Perfil”) em vez de uma frase longa.
- Aproveite Âncoras Direcionais: Se seus atores e casos de uso se agrupam em uma pilha desordenada, use setas de direção espacial como
-direita->ou-baixo->para empurrar suavemente o motor de layout para uma estrutura limpa e legível. - Isolamento de Fronteiras do Sistema: Sempre use um retângulo de fronteira ao documentar aplicativos que interagem com múltiplos microserviços de terceiros. Isso torna imediatamente claro quem detém cada processo.
Exemplos Práticos de Diagramas de Casos de Uso do PlantUML
Copie e cole os seguintes projetos práticos diretamente na sua área de edição em tempo real do VPasCode para ver como eles são renderizados dinamicamente.
Exemplo 1: Autenticação de Usuário Central e Gerenciamento de Conta
Este projeto modela um ecossistema de aplicativo padrão contendo um usuário principal, um operador administrativo e uma caixa de fronteira contendo mecanismos centrais de segurança.
@startuml
' Define a orientação do layout da esquerda para a direita
direção da esquerda para a direita
ator "Usuário Final" como usuário
ator "Administrador de Segurança" como admin
retângulo "Serviço de Provedor de Identidade" {
(Entrar)
(Redefinir Senha)
(Atualizar Dados do Perfil)
(Revisar Registros de Segurança)
(Desativar Contas)
}
usuário --> (Entrar)
usuário --> (Redefinir Senha)
usuário --> (Atualizar Dados do Perfil)
(Revisar Registros de Segurança) <-- admin
(Desativar Contas) <-- admin
@enduml 
Análise de Sintaxe: A diretriz direção da esquerda para a direita força o motor de layout a posicionar os atores nas asas externas e expandir os casos de uso horizontalmente em vez de verticalmente. Observe como colocar as declarações de ator limpa e fora do retânguloenvoltório mantém-os organizados, enquanto inverte a direção do colchete da seta para o usuário administrador (<-- administrador) os fixa limpa e claramente no lado direito da matriz do diagrama.
Exemplo 2: Checkout Avançado de Comércio Eletrônico com Dependências Externas
Este layout de sistema do mundo real mapeia um fluxo de trabalho de checkout complexo que depende de APIs bancárias externas, inclusões estruturais e bandeiras de extensão opcionais.
@startuml
direção da esquerda para a direita
ator "Cliente" como cliente
ator "Funcionário do Armazém" como staff
ator "Gateway Stripe" como stripe
retângulo "Sistema de Cumprimento da Loja Online" {
(Fazer Pedido)
(Aplicar Cupom)
(Gerar Fatura)
(Selecionar e Embalar Itens)
(Atualizar Status de Envio)
}
' Interações externas com os limites do sistema
cliente --> (Fazer Pedido)
(Fazer Pedido) --> stripe : "Autorizar Fundos"
' Estruturas de inclusão e extensão
(Fazer Pedido) ..> (Gerar Fatura) : <<incluir>>
(Aplicar Cupom) ..> (Fazer Pedido) : <<extender>>
' Caminhos de cumprimento
(Selecionar e Embalar Itens) <-- staff
(Atualizar Status de Envio) <-- staff
(Gerar Fatura) --> staff : "Enviar Cópia por E-mail"
@enduml 
Análise de Sintaxe: Este modelo destaca como um único caso de uso (Fazer Pedido) exige uma invocação de (Gerar Fatura) usando o <<incluir>>tag sobre uma linha pontilhada. Enquanto isso, aplicar um código de cupom é corretamente modelado como uma ramificação opcional por meio de <<extender>>apontando para trás em direção à execução base. Todos os atores externos permanecem claramente isolados fora do envelope do sistema.