当涉及到软件开发时,图形化地可视化和传达软件架构给他人已经成为了必需。建模和绘图这些系统及其抽象层次使我们能够分析和改进设计,从而在构建实现时提高质量。
本文将比较七种流行的可视化建模语言。
统一建模语言(UML)
UML 是由一组软件工程师和研究人员在 1990 年代创建的,并现在由对象管理组(OMG)维护。UML 是一种图形语言,为建模软件系统提供了一套标准符号和符号。UML 2.5 包括 14 种不同类型的图表,以建模软件开发生命周期的各个部分。
优点
- UML 提供了强大和广泛的标准符号,可以提高大型组织间的沟通。
- 灵活性使可以仅在需要时使用符号的特定部分。
- 工具通常支持代码生成,可以加快开发速度。
缺点
- 复杂的符号对于初学者来说是一个陡峭的学习曲线,需要花费大量时间学习和有效使用。
- 对于小型和简单的软件系统而言,UML 可能过于复杂和耗时。
- 工具通常价格昂贵,使用困难,需要培训。
C4 模型
C4 模型是一种轻量级结构化方法,用于为特定受众可视化软件架构。它是由一位软件架构师和作者 Simon Brown 于 2011 年创建的。C4 模型实际上只是两件事,一个分层的常用抽象集和四种标准图表类型。C4 模型与符号无关,这意味着没有指定标准的形状、颜色或样式。
优点
- 分层结构允许深入到技术细节,为需要技术细节的受众提供更详细的信息。
- 简单易学,非常适合工程师、利益相关者和非技术团队成员理解。
- C4 模型灵活适应,可以在各种工具和符号中使用。
缺点
- 有限的功能集可能是对需要各种图表类型的大型组织的限制,例如用例、活动和类图表。
- C4 模型的流行程度还在增长中,与像 UML 这样的标准相比,应用还不是很广泛。
- 与更成熟的建模语言相比,C4 模型工具相对较少。
ArchiMate
ArchiMate 是面向企业架构的开放和独立建模语言。它是由开放组(The Open Group)在 2011 年开发的,该组织负责维护多个开放标准。它提供了三个抽象层(业务、应用和技术)、标准建模元素(包括业务参与者、业务过程和应用组件)以及它们之间的关系。
优点
- ArchiMate 提供了广泛的框架,有各种抽象和符号可描述和传达架构。
- 包括颜色编码方案,用于区分不同类型的架构组件。
- 设计为与其他企业架构标准(如 TOGAF 和 BPMN)兼容。
缺点
- 在全球某些地区的使用仍然有限,尽管在欧洲被广泛使用。
- ArchiMate 是一种复杂的建模语言,需要时间学习如何有效使用它,这可能对一些人来说是一个入门障碍。
- 常与特定软件工具一起使用,这可能会限制 ArchiMate 模型的可移植性。
开放组架构框架(TOGAF)
开放组架构框架或 TOGAF 是企业架构框架,分为四个关键领域:业务、应用、数据和技术。它最初是由开放组在 1995 年创建的,该组织也负责维护 ArchiMate。TOGAF 提供了全面和系统化的方法,并包括开发和实施企业架构的逐步过程。
优点
- 提供了全面和可适应的语言,这意味着组织可以根据自己的需要随着时间的推移来定制它。
- 厂商中立,意味着它可以与任何技术或供应商解决方案一起使用,为组织提供灵活性。
- TOGAF 是一个广泛认可并被世界各地的组织广泛使用的行业标准,这可以为利益相关者提供保障和信誉。
缺点
- 对于那些不熟悉框架的人来说,TOGAF 和 ADM 过程可能特别难学,并可能需要很长时间来实施。
- TOGAF 的强调标准和治理可提供一致性,但也存在变得过于僵化和不灵活的风险。
- 认证和培训可能很昂贵,这可能成为一些想使用框架的组织的障碍。
业务流程建模符号(BPMN)
BPMN 是一种图形化建模语言,提供了业务流程、活动、事件、网关、流程和工件的标准符号。它是分析和改进业务流程的强大工具。BPMN 最初是由一组组织和个人在 2004 年创建的,并由对象管理组(OMG)维护。
优点
- BPMN 的设计旨在使技术和非技术利益相关者轻松理解,使其适用于广泛的受众。
- 提供了易于理解的标准符号,弥合了设计和实施业务流程的沟通差距。
- 子模型将图表划分为易于发现最适用于他们的领域。
缺点
- 符号全面,学习模型制作可能很困难,这意味着那些制作模型的人可能会遇到陡峭的学习曲线。
- 一些供应商在实现和执行 BPMN 图表时略有不同,尽管有明确的标准。
系统建模语言(SysML)
SysML 是一种开源建模语言,扩展了 UML,并设计用于分析复杂系统。它最初是在 2001 年创建的,并后来被对象管理组(OMG)采用。系统工程师使用 SysML 通信和分析各种系统,例如:软件、硬件、信息、过程和人员。
优点
- 消除了 UML 的软件特定限制,以允许建模更广泛的系统,例如物理和人员。
- SysML 移除了一些 UML 的功能,使其更简单,更易于学习。
- 提供了模型、视图和视角的广泛支持,这在 UML 中是有限的。
缺点
- 由于 SysML 基于 UML,因此它继承了 UML 的许多困难和缺点。
- 有关图表需要多完整的规则有歧义可能会导致错误。
- 在各种 SysML 工具之间缺乏互操作性,这使得共享模型变得困难。
4+1 视图模型
4+1 视图模型是使用多个并发视图来描述大型系统的视图模型,每个视图都从不同利益相关者的角度来看。它最初是由加拿大软件工程师 Philippe Kruchten 在 1995 年提出的。它定义的 5个视图是逻辑视图、进程视图、开发视图和场景。
优点
- 该方法允许利益相关者轻松消化对他们最重要的模型区域。
- 4+1 适合组织和提供结构图和系统信息。
- 视图可以省略,如果它们对模型没有贡献。
缺点
- 4+1 不强制使用正式符号或标准,这可能导致在应用模型时存在不一致性。
- 对于某些设计决策的某些方面,例如安全性、性能或可扩展性,可能提供的细节不足。
- 不适用于非常小的系统或具有非常特定焦点的系统。
总结
语言 | 概述 | 优点 | 缺点 |
UML | UML是一个提供了标准符号和符号集,用于对软件系统进行建模的图形化语言。UML包括14种不同的图表类型,可用于模型化软件开发生命周期的各个部分。 | 提供了强大和广泛的标准符号,工具支持代码生成,灵活性使用需要时,可提高组织内部的沟通 | 复杂的符号需要大量学习时间和使用成本,工具常常昂贵且需要培训 |
C4 模型 | C4 模型是一种轻量级的结构化方法,用于针对特定受众可视化软件架构。C4 模型本质上只有两个东西,即一组分层的常用抽象和四种标准的图表类型。C4 模型与符号无关,这意味着没有规定标准形状、颜色或样式。 | 提供了易于学习、灵活和适应性强的建模方法,可以根据需要进行层级划分 | 对于需要更多类型的图表(例如用例、活动和类图)的大型组织,功能受限 |
ArchiMate | ArchiMate 是一个面向企业架构的开放和独立的建模语言。它提供了三个抽象层(业务、应用和技术)、标准建模元素(包括业务参与者、业务流程和应用程序组件)以及它们之间的关系。 | 提供了全面的框架和符号,可以描述和传达架构,可与其他企业架构标准兼容,包括颜色编码方案,以区分不同类型的架构组件 | 复杂的符号需要大量学习时间和使用成本,采用情况在全球范围内仍有限制,可能需要特定的软件工具 |
TOGAF | TOGAF 是一个企业架构框架,分为四个关键域:业务、应用、数据和技术。它提供了全面和系统化的方法,包括开发和实施企业架构的逐步过程。 | 提供了全面和灵活的框架,可根据组织的需求进行定制,供应商中立,被广泛认可和使用 | TOGAF和ADM流程对于那些不熟悉框架的人来说可能特别难以学习,可能需要大量的时间来实施。TOGAF强调标准和治理可以保持一致性,但也存在过度僵化和不灵活的风险。同时,TOGAF的认证和培训成本可能较高,这可能成为一些想使用该框架的组织的障碍。 |
BPMN | BPMN 是一种图形化建模语言,为业务流程、活动、事件、网关、流程和工件提供标准符号。它是分析和改进业务流程的强大工具。BPMN 首次由一组组织和个人创建于 2004 年,之后由 Object Management Group(OMG)维护。 | 设计的符号易于技术和非技术干系人理解,提供了标准的符号,可以轻松理解和搭建业务流程,分区模型使查找最适用于他们的区域变得容易 | 符号全面,学习难度较大,可能需要大量时间来学习,各供应商实现和执行 BPMN 图表的方式略有不同 |
SysML | SysML 是一种扩展 UML 的开源建模语言,旨在分析复杂系统。它于 2001 年首次创建,并于后来被 Object Management Group(OMG)采用。系统工程师使用 SysML 来沟通和分析各种系统,例如:软件、硬件、信息、过程和人员。 | 删除了 UML 的软件特定限制,以允许对更广泛的系统进行建模,例如物理和人员,简化了 UML 的某些特性,使其更简单易学,提供了模型、视图和观点的广泛支持,UML 中则有限 | 基于 UML,因此继承了 UML 的许多困难和缺点,有关图表需要多完整的规则可能会导致错误,不同的 SysML 工具之间的互操作性缺乏可能会使共享模型变得困难 |
4+1 视图模型 | 4+1 视图模型是一种描述大型系统的视图模型,使用多个并发视图,每个视图都从不同的干系人视角进行描述。它于 1995 年首次由加拿大软件工程师 Philippe Kruchten 提出。它定义的 5 种视图是逻辑视图、过程视图、开发视图和场景。 | 允许利益相关者轻松消费对他们最重要的模型区域,对图表和系统信息进行组织和提供结构,视图可省略,如果它们不为模型做出贡献 | 4+1 不强制使用正式符号或标准,可能导致模型应用的不一致性,可能对某些设计决策的某些方面提供不足够的详细信息,例如安全、性能或可扩展 |