O que é um Diagrama ArchiMate?
Um Diagrama ArchiMateé uma visualização de modelagem de arquitetura empresarial de alto nível que rastreia estratégias, processos de negócios, aplicações de software e infraestrutura física de dados em toda a organização. Diferentemente dos mapas tradicionais UML que analisam profundamente rotinas de execução de software, o ArchiMate ajuda analistas de negócios, arquitetos de soluções e CTOs a mapear como objetivos corporativos de alto nível dependem dos sistemas de TI subjacentes.
Embora o PlantUML básico contenha primitivas nativas, layouts empresariais de produção exigem a extensão da biblioteca oficial Archimate-PlantUMLextensão da biblioteca padrão. Ao utilizar macros declarativas e faixas de cor padronizadas, permite que você mantenha modelos consistentes e compatíveis com TOGAF. Com VPasCode, você pode definir seus blocos arquitetônicos e fios relacionais inteiramente em texto, permitindo que o motor gerencie dinamicamente os esquemas de cor dos quadros e o alinhamento.
Guia de Sintaxe Principal: Elementos e Construções
Para usar a extensão oficial ArchiMate com segurança no PlantUML, você deve incluir o arquivo da biblioteca padrão, implementar corretamente as macros de categoria, lidar com blocos aninhados e aplicar relações estruturais explícitas.
1. Inicializando a Biblioteca Padrão ArchiMate
Para desbloquear as macros oficiais, paletas de cor e estereótipos estruturais, seu bloco de script deve importar o arquivo da biblioteca padrão diretamente abaixo da sua tag de início. Você pode opcionalmente aplicar um dos temas oficiais para garantir visibilidade de alto contraste:
@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>
2. Declarando Elementos Usando Macros de Categoria
A biblioteca padrão simplifica a criação de elementos envolvendo formas nativas dentro de macros com prefixo de categoria. Os elementos seguem uma convenção estrita Categoria_NomeElemento(ID, "Rótulo")de nomeação. O prefixo determina a camada estrutural e injeta automaticamente o token de cor correto:
- Estratégia & Motivação (Roxo):
Motivacao_Actor(),Estrategia_Capacidade() - Camada de Negócios (Amarelo):
Negocio_Actor(),Negocio_Processo(),Negocio_Servico() - Camada de Aplicação (Azul):
Componente_Aplicativo(),Serviço_Aplicativo() - Camada de Tecnologia (Verde):
Nó_Tecnologia(),Software_Sistema_Tecnologia()
!include <archimate/Archimate>
Motivação_Apostador(CEO, "Diretor Executivo")
Componente_Aplicativo(CRM, "Sistema Salesforce CRM") 
3. Definindo Limites de Grupo e Aninhamento Estrutural
Mapas empresariais dependem fortemente da contenção visual para representar propriedade ou isolamento de tempo de execução. Você pode criar pastas delimitadoras usando o Grupo() ou Agrupamento() macros, ou aninhar elementos uns dentro dos outros usando chaves:
!include <archimate/Archimate>
Agrupamento(AppSubsystem, "Suite de Gestão de Clientes") {
Componente_Aplicativo(AuthMod, "Módulo de Token OAuth")
Serviço_Aplicativo(UserReg, "API de Registro de Usuário")
} 
4. Mapeando Relacionamentos Empresariais Padronizados
ArchiMate impõe um vocabulário rigoroso para conexões. Em vez de setas brutas, a biblioteca padrão oferece macros de relacionamento dedicadas formatadas como Rel_TipoRelacionamento(De_ID, Para_ID, "Rótulo"). Para forçar ajustes manuais de orientação, você pode acrescentar dicas espaciais de direção (como _Acima, _Abaixo, _Esquerda, ou _Direita):
!include <archimate/Archimate>
Motivation_Stakeholder(CEO, "Diretor Executivo")
Application_Component(CRM, "Sistema Salesforce CRM")
Grouping(AppSubsystem, "Suite de Gestão de Clientes") {
Application_Component(AuthMod, "Módulo de Token OAuth")
Application_Service(UserReg, "API de Registro de Usuário")
}
' Exemplos de relacionamentos estruturais e comportamentais
Rel_Realization(UserReg, AuthMod, "Implementa segurança")
Rel_Serving_Right(CRM, CEO, "Fornece painéis de controle") 
Melhores Práticas para Diagramas de Arquitetura em Camadas
- Isolar Camadas Distintas:Organize seus scripts sequencialmente de cima para baixo (Motivação > Negócio > Aplicação > Tecnologia) para tornar seus layouts de arquitetura intuitivos para os interessados.
- Aproveite IDs Curtos de Componentes: Mantenha suas strings internas de rastreamento de macros breves (por exemplo, use
AP_01ouSrv_Auth), enquanto reserva textos descritivos e voltados para o cliente para o parâmetro de rótulo entre aspas duplas. - Impor Direções Explícitas em Fios que Cruzam Camadas: Os caminhos de layout podem mudar de forma imprevisível ao cruzar limites estruturais. Usar macros direcionais como
Rel_Access_Down()garante que seus fluxos de dados se movam suavemente para baixo através das divisões de camadas.
Exemplos Reais de PlantUML com ArchiMate
Exemplo 1: Mapeamento Clássico de Capacidades Estratégicas (Níveis de Motivação e Estratégia)
Este plano funcional documenta a camada estratégica de uma organização, ilustrando como os interessados corporativos se alinham com capacidades de negócios e resultados técnicos realizados.
@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>
title Mapa de Alinhamento Estratégico Empresarial
Motivation_Stakeholder(CFO, "Diretor Financeiro")
Motivation_Driver(CostEfficiency, "Redução de Custos Operacionais")
Strategy_Capability(AutomatedBilling, "Automatização da Emissão de Faturas Empresariais")
Business_Process(InvoiceRun, "Reconciliação do Livro-Registro no Fim do Mês")
' Conectar dependências estratégicas
Rel_Association(CFO, CostEfficiency, "Busca melhorar")
Rel_Influence(AutomatedBilling, CostEfficiency, "Impacta positivamente")
Rel_Realization(InvoiceRun, AutomatedBilling, "Cumpre a capacidade")
@enduml 
Análise de Sintaxe: Ao executar as macros estratégicas roxas, o motor mapeia os elementos de forma clara. Macros relacionais claras conectam o interessado humano através das motivações organizacionais, alinhando a estratégia corporativa de forma limpa com os comportamentos de execução subjacentes.
Exemplo 2: Sistema Empresarial de Três Camadas de Extremo a Extremo (Malha entre Camadas)
Este projeto avançado demonstra uma topologia de arquitetura abrangente e de múltiplas camadas. Ele mapeia um processo de negócios operacional descendo por meio de microsserviços de aplicativos de suporte até o host de infraestrutura em nuvem subjacente.
@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>
title Alinhamento da Arquitetura de Aplicativo Multicamadas
Grouping(BizLayer, "Operações de Negócios") {
Business_Actor(Agent, "Agente de Suporte ao Cliente")
Business_Process(Ticketing, "Processo de Ticket de Suporte Empresarial")
}
Grouping(AppLayer, "Ecosistema de Aplicativos") {
Application_Service(TicketSvc, "API de Integração com Zendesk")
Application_Component(DataRouter, "Motor de Processamento de Eventos")
}
Grouping(TechLayer, "Nível de Infraestrutura") {
Technology_SystemSoftware(K8sCluster, "Cluster de Orquestração Kubernetes")
Technology_Node(CloudVM, "Destino de Computação AWS EC2 m6i.xlarge")
}
' Estabeleça mapeamentos entre camadas de forma suave usando dicas direcionais
Rel_Assignment(Agent, Ticketing, "Executa diariamente")
Rel_Serving_Down(TicketSvc, Ticketing, "Alimenta a interface web do atendimento")
Rel_Composition(DataRouter, TicketSvc, "Recebe webhooks de")
Rel_Realization_Down(K8sCluster, DataRouter, "Hospeda o contêiner do aplicativo")
Rel_Composition_Down(CloudVM, K8sCluster, "Fornece hipervisor central em bare-metal")
@enduml 
Análise de Sintaxe: Este mapa destaca o poder da estruturação Grouping componentes. Os elementos recebem automaticamente tons de cor distintos e específicos por camada (amarelo, azul, verde) com base em suas famílias macro. Sobrescritas de relacionamentos direcionais como Rel_Serving_Down e Rel_Realization_Down forçam as dependências a se propagarem elegantemente pela grade empresarial.