PlantUML ArchiMate 图表语法指南

什么是 ArchiMate 图表?

一个ArchiMate 图表是一种高层次的企业架构建模可视化工具,用于跟踪组织内战略、业务流程、软件应用和物理数据基础设施。与深入分析软件执行流程的传统UML图不同,ArchiMate 帮助业务分析师、解决方案架构师和CTO们描绘高层次企业目标如何依赖于底层IT系统。

虽然基础版 PlantUML 包含原生图形,但生产级别的企业布局需要官方的Archimate-PlantUML标准库扩展。通过使用声明式宏和标准化颜色带,它可帮助您保持一致且符合 TOGAF 标准的模型。借助VPasCode,您可以在文本中完全定义您的架构模块和关系线,让引擎动态处理框体颜色方案和对齐方式。

核心语法指南:元素与构造

要在 PlantUML 中安全使用官方 ArchiMate 扩展,您必须包含标准库文件,正确实现类别宏,处理嵌套块,并应用明确的结构关系。

1. 初始化 ArchiMate 标准库

为了启用官方宏、颜色调色板和结构化构造型,您的脚本块必须在启动标签下方直接导入标准库文件。您可选择性地应用官方主题之一,以确保高对比度的可见性:

@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>

2. 使用类别宏声明元素

标准库通过在类别前缀宏中包裹原生形状来简化元素创建。元素遵循严格的类别_元素名称(ID, "标签")命名规范。前缀决定结构层级,并自动注入正确的颜色标记:

  • 战略与动机(紫色): 动机_利益相关者(), 战略_能力()
  • 业务层(黄色): 业务_参与者(), 业务_流程(), 业务_服务()
  • 应用层(蓝色): 应用组件(), 应用服务()
  • 技术层(绿色): 技术节点(), 技术系统软件()
!include <archimate/Archimate>
动机利益相关者(CEO, "首席执行官")
应用组件(CRM, "Salesforce CRM系统")

3. 定义组边界和结构嵌套

企业地图很大程度上依赖视觉包含来表示所有权或运行时隔离。您可以使用以下宏创建边界文件夹:Group()Grouping()宏,或使用花括号将元素嵌套在彼此内部:

!include <archimate/Archimate>
Grouping(应用子系统, "客户管理套件") {
    应用组件(AuthMod, "OAuth令牌模块")
    应用服务(UserReg, "用户注册API")
}

4. 映射标准化的企业关系

ArchiMate对连接使用严格的词汇表。不是使用原始箭头,标准库提供了专用的关系宏,格式为Rel_关系类型(来源_ID, 目标_ID, "标签")。要强制手动调整方向,可以附加空间方向提示(例如_Up, _Down, _Left,或_Right):

!include <archimate/Archimate>

动机-利益相关者(CEO, "首席执行官")
应用-组件(CRM, "Salesforce CRM 系统")

分组(AppSubsystem, "客户管理套件") {
    应用-组件(AuthMod, "OAuth Token 模块")
    应用-服务(UserReg, "用户注册 API")
}

' 结构与行为关系示例
关系-实现(UserReg, AuthMod, "实现安全功能")
关系-服务-权利(CRM, CEO, "提供仪表板")

分层架构图的最佳实践

  • 隔离不同的层级: 从上到下按顺序组织你的脚本(动机 > 业务 > 应用 > 技术),以便让利益相关者直观理解你的架构布局。
  • 使用简短的组件 ID: 保持内部宏追踪字符串简短(例如使用AP_01Srv_Auth),同时将描述性、面向客户的文本保留给双引号标签参数。
  • 在跨层连线中强制使用明确的方向: 当跨越结构边界时,布局路径可能会不可预测地变化。使用方向性宏(如Rel_Access_Down())可确保数据流在层级分割处平稳地向下流动。

现实世界的 PlantUML ArchiMate 示例

示例 1:经典战略能力映射(动机与战略层级)

此功能蓝图记录了组织的战略层级,展示了企业利益相关者如何与业务能力及实现的技术成果保持一致。

@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>

title 战略企业对齐图

动机-利益相关者(CFO, "首席财务官")
动机-驱动因素(CostEfficiency, "运营成本降低")
战略-能力(AutomatedBilling, "企业发票自动化")
业务-流程(InvoiceRun, "月末账目对账")

' 建立战略依赖关系
关系-关联(CFO, CostEfficiency, "旨在改进")
关系-影响(AutomatedBilling, CostEfficiency, "积极影响")
关系-实现(InvoiceRun, AutomatedBilling, "实现能力")
@enduml

语法解析: 通过执行紫色的战略宏,引擎能够清晰地映射出各个元素。清晰的关系宏将人类利益相关者与组织动机连接起来,使企业战略与底层执行行为保持一致。

示例 2:端到端三层企业系统(跨层网格)

此高级蓝图展示了全面的跨层架构拓扑。它将一个运营中的业务流程从上至下映射到支持的应用程序微服务,直至底层的云基础设施主机。

@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>

title 多层应用架构对齐

Grouping(BizLayer, "业务运营") {
    Business_Actor(Agent, "客户服务支持人员")
    Business_Process(Ticketing, "处理企业支持工单")
}

Grouping(AppLayer, "应用生态系统") {
    Application_Service(TicketSvc, "Zendesk 集成 API")
    Application_Component(DataRouter, "事件处理引擎")
}

Grouping(TechLayer, "基础设施层") {
    Technology_SystemSoftware(K8sCluster, "Kubernetes 编排集群")
    Technology_Node(CloudVM, "AWS EC2 m6i.xlarge 计算目标")
}

' 使用方向性提示平滑建立跨层映射
Rel_Assignment(Agent, Ticketing, "每日执行")
Rel_Serving_Down(TicketSvc, Ticketing, "支持网页工单界面")

Rel_Composition(DataRouter, TicketSvc, "接收来自")
Rel_Realization_Down(K8sCluster, DataRouter, "托管应用容器")

Rel_Composition_Down(CloudVM, K8sCluster, "提供核心虚拟化裸金属资源")
@enduml

语法分解: 此图突出了结构化分组 组件的威力。元素会根据其宏观家族自动获得不同的、分层特定的颜色色调(黄色、蓝色、绿色)。方向性关系覆盖,如Rel_Serving_DownRel_Realization_Down 会促使依赖关系优雅地沿企业网格向下传递。

滚动至顶部