Project Icon

Archimate-PlantUML

为PlantUML提供宏和包含文件

Archimate-PlantUML是一个开源项目,为PlantUML提供宏和包含文件,简化ArchiMate企业架构图的创建。该项目支持ArchiMate的元素、关系和分组,实现组件嵌套,并提供多种主题。用户通过简单的文本语法即可创建复杂架构图,适合需要可视化和管理企业架构的团队。Archimate-PlantUML结合了PlantUML的灵活性和ArchiMate的标准化,为架构建模提供直观有力的工具。

Archimate-PlantUML

用于轻松创建Archimate图的PlantUML宏和包含文件。

Archimate-PlantUML示例图 - 互联网浏览器

目录

  1. 背景
  2. 入门
  3. 使用方法
  4. 示例
  5. 贡献
  6. 许可证
  7. 致谢

背景

PlantUML

PlantUML是一个开源项目,允许您使用简单的文本语言创建UML图。它使用Graphviz进行图表布局,生成PNG、SVG或LaTeX格式的图像。

ArchiMate

ArchiMate是一种企业架构建模语言,支持跨业务领域的架构描述、分析和可视化。

ArchiMate提供了一种通用语言,用于描述业务流程、组织结构、信息流、IT系统和技术基础设施的构建和运作。这就像传统建筑中的建筑图纸,描述了建筑物的各个方面的构造和使用。这种洞察力有助于不同的利益相关者设计、评估和沟通这些业务领域内部和之间的决策和变更的后果。

Archimate-PlantUML结合了PlantUML和ArchiMate的优点,提供了一种简单的方法来创建和管理ArchiMate图。Archimate-PlantUML是一组在PlantUML Archimate规范基础上编写的宏和其他包含文件,旨在简化创建元素和定义关系的语法。

入门

在您的.puml或.wsd文件中包含Archimate.puml文件:

!includeurl https://raw.githubusercontent.com/plantuml-stdlib/Archimate-PlantUML/master/Archimate.puml

对于离线使用,下载文件并在本地引用它们:

!include path/to/Archimate.puml

使用方法

在包含Archimate.puml后,您可以使用为ArchiMate元素定义的宏。

ArchiMate元素

ArchiMate元素按以下模式定义:

Category_ElementName(nameOfTheElement, "description")
或
Category_ElementName(nameOfTheElement, "description", true) //启用元素嵌套

例如:

  • 要定义一个属于Motivation类别的Stakeholder元素,语法如下:
    Motivation_Stakeholder(StakeholderElement, "利益相关者描述")
    
    输出: 利益相关者
  • 要定义一个Business Service元素:
    Business_Service(BService, "业务服务", true) {
        Application_Service("AppService01", "应用服务01")
        Application_Service("AppService02", "应用服务02")
        Application_Service("AppService03", "应用服务03")
    }
    
    输出: 业务服务

ArchiMate关系

ArchiMate关系按以下模式定义:

Rel_RelationType(fromElement, toElement, "description")

要定义两个元素的方向/方位:

Rel_RelationType_Direction(fromElement, toElement, "description")

支持的RelationTypes有:

  • Access
  • Aggregation
  • Assignment
  • Association
  • Composition
  • Flow
  • Influence
  • Realization
  • Serving
  • Specialization
  • Triggering

支持的Directions有:

  • Up
  • Down
  • Left
  • Right

例如:

  • 要表示上面定义的Stakeholder和Business Service之间的composition关系,语法如下:
    Rel_Composition(StakeholderElement, BService, "关系描述")
    
    输出: 组合关系
  • 要将两个元素排列成上下位置,语法如下:
    Rel_Composition_Down(StakeholderElement, BService, "关系描述")
    
    输出: 向下组合关系

ArchiMate分组

ArchiMate中的分组使用以下语法表示:

Grouping(nameOfTheGroup, "分组描述"){
    //定义ArchiMate元素
}

以及:

Group(nameOfTheGroup, "分组描述"){
    //定义ArchiMate元素
}

例如

  • 分组类型1:

    Grouping(Example01, "分组类型01"){
        Motivation_Stakeholder(StakeholderElement, "利益相关者描述")
        Business_Service(BService, "业务服务")
    }
    

    输出: 分组类型1

  • 分组类型2:

    Group(Example01, "分组类型01"){
        Motivation_Stakeholder(StakeholderElement, "利益相关者描述")
        Business_Service(BService, "业务服务")
    }
    

    输出: 分组类型2

组件嵌套

嵌套允许层次化地组织组件,提高图表的清晰度。嵌套的层级数量没有限制。 实现允许在任何其他组件内嵌套任何组件。在嵌套时,元素将显示为一个矩形,右上角有archimate原型。

嵌套可以按以下模式启用:

Category_ElementName(nameOfTheElement, "description", true) {
    Category_ElementName(uniqueName, "description)
}

例如:

Business_Product("BusProduct01", "业务产品01", true) {
    Business_Service("BusService01", "业务服务01")
    Business_Service("BusService02", "业务服务02")
    Business_Service("BusService03", "业务服务03")
}

Technology_Device("TechDevice01", "技术设备01", true) {
    Technology_Device("TechDevice02", "技术设备02")
    Technology_Device("TechnDevice03", "技术设备03", true) {
        Technology_Device("TechnDevice04", "技术设备04", false)
        Technology_Device("TechnDevice05", "技术设备05")
    }
}

输出: 嵌套示例 注意,当启用嵌套时,Technology-Device元素的表示从节点变为矩形。

主题支持

主题支持已启用,共有5种变体可用。所有主题都基于Archimate规范。

通过添加以下行可以启用主题:

!theme <theme-name> from <theme-folder>

// 示例
!theme archimate-saturated from https://raw.githubusercontent.com/plantuml-stdlib/Archimate-PlantUML/master/themes
主题名称预览
默认(无添加行)默认
archimate-standard标准
archimate-alternate替代
archimate-saturated饱和
archimate-lowsaturation低饱和
archimate-handwriting手写

示例

@startuml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/Archimate-PlantUML/master/Archimate.puml
!theme archimate-standard from https://raw.githubusercontent.com/plantuml-stdlib/Archimate-PlantUML/master/themes

title Archimate示例 - 需求和应用服务

'元素'
Motivation_Requirement(ReqPayrollStandard, "使用标准系统进行工资核算")
Motivation_Requirement(ReqBudgetPlanning, "在ERP系统内进行预算规划")

Application_Service(ASPayroll,"工资核算服务")
Application_Service(ASBudgetPlanning,"预算规划服务")
Application_Component(ACSAPFinanceAccRec, "SAP财务 - 应收账款")
Application_Component(ACSAPHR, "SAP人力资源")
Application_Component(ACSAPFin, "SAP财务")
Application_Component(ACSAP,"SAP") 

'关系'
Rel_Realization_Up(ASPayroll, ReqPayrollStandard)
Rel_Realization_Up(ASBudgetPlanning, ReqBudgetPlanning)
Rel_Realization_Up(ACSAPFinanceAccRec, ASBudgetPlanning)
Rel_Realization_Up(ACSAPHR, ASPayroll)

Rel_Composition_Up(ACSAPFin, ACSAPFinanceAccRec)
Rel_Composition_Up(ACSAP, ACSAPHR)
Rel_Composition_Up(ACSAP, ACSAPFin)
@enduml

输出: Archimate-PlantUML示例图 - 互联网浏览器

贡献

如果您有任何想法,提出问题或fork仓库并提交拉取请求。

许可证

该项目采用MIT许可证 - 详见LICENSE.md文件

致谢

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号