UML——统一建模语言,是一种使用标准化符号和标记的系统或软件设计的图形表示方法。它通过可视化的方式来表示系统中不同组件的结构、行为以及关系。
UML的用途如下:
(1)结构建模:UML类图用于通过定义类、属性、方法及其关系来表示系统的结构。帮助开发人员理解类的组织及其交互关系。
(2)行为建模:UML活动图和状态机图用于表示系统的行为。活动图显示活动和操作的流程,而状态机图表示对象或系统的不同状态和转换。
(3)用例建模:UML用例图用于识别和表示系统的不同用例。它们帮助利益攸关方从用户的角度理解系统的功能和互动。
(4)交互建模:UML序列图和通信图用于表示系统中对象或组件之间的交互。它们显示运行时的消息顺序和控制流。
(5)部署建模:UML部署图用于表示硬件节点上软件组件的物理部署。它们有助于理解系统中软件和硬件组件的分布和配置。
使用UML图来设计、记录、交流软件架构,有助于提高对系统需求的理解,促进利益相关者之间的协作,并在开发过程的尽量早地识别出潜在的设计缺陷。
本文收集并推荐一些适用于Windows、Linux或macOS的免费、开源UML设计工具。
01
Modelio
官网:
https://www.modelio.org/index.htm
源码:
https://github.com/ModelioOpenSource/Modelio
Modelio是一个开源建模工具,支持各种建模标准,如:UML、BPMN、ArchiMate和SysML等。为开发人员、分析师和架构师等职业而设计,在企业架构、流程建模、软件开发和系统工程等方面提供了广泛的功能。
Modelio采用Java开发,因此可以在Windows、Linux和macOS上安装和使用。
功能特性
-
UML建模:Modelio是一个建模工具,支持广泛的模型和图,并提供模型辅助和一致性检查功能。
-
支持与UML集成的BPMN:Modelio将BPMN支持和UML支持结合在一个工具中,并使用专用的图表来支持业务流程建模。
-
Java代码生成器:Java Designer模块使用RCP/JavaScript风格的项目文件结构,支持Java代码生成和方向工程、Javadoc生成和Java自动化。
-
XMI导入/导出:Modelio提供了一个XMI导入/导出特性,使您能够在不同的工具之间交换UML2模型。
-
HTML模型发布:使用HTML Publisher模块,以HTML格式发布模型。
-
系统扩展:Modelio可以扩展为任何语言,方法或建模技术,只需将模块添加到配置。可以使用现有的模块或开发自己的模块。
-
脚本语言支持(Jython):Modelio为在线请求、小脚本和宏定义提供了对Jython脚本语言的集成支持。
02
Umlet
源码:
https://github.com/umlet/umlet
UMLet是一个非常棒的开源UML工具,它提供了友好的用户界面,用户可以轻松快速地绘制各种UML图来实现软件设计可视化。此外,它支持将图表导出为不同的文件格式,例如:eps、pdf、jpg、svg等,便于与他人共享、协作。
UMLet的突出特性之一是它可以与Eclipse的无缝集成。通过在Eclipse中使用UMLet,可以直接从Eclipse环境中轻松地访问和处理UML图,从而提高生产力、简化开发过程。
此外,UMLet提供了丰富的定制选项,允许创建独特的UML元素,以满足特定需求。这种灵活性使得用户能够设计准确地表示出软件体系结构的复杂性。
目前UMLet提供了一个桌面版本和一个Web版本。
03
JetUML
源码:
https://github.com/prmr/JetUML
JetUML是一个轻量级桌面应用程序,主要用于统一建模语言(UML)设计。使用JetUML,用户可以毫不费力地表达软件设计思想,并将其变为现实。JetUML提供了一个轻松的环境,无论是经验丰富的开发人员还是初学者都可以轻松绘制、完善软件架构。
从类图到序列图,从状态图到对象图,再到用例图,JetUML都涵盖了。可以轻松地表示软件系统不同组件之间的关系和交互。
除了直观的界面外,JetUML还提供了保存和共享图表功能。可以将图表保存为JSON格式,以便将来轻松检索和修改。此外,JetUML可以将图表导出为图像格式,从而实现与其他工具和平台集成。甚至可以将图表复制到系统剪贴板,从而轻松地将它们合并到项目文档或PPT中。
JetUML有两个版本可供选择。包括独立的桌面应用程序以及Java 归档文件版本,桌面应用程序便于独立体验使用。Java归档文件版本支持跨操作系统灵活使用。这两个版本都是在GNU通用公共许可证v3下授权开源。
04
Gophor
源码:
https://github.com/gaphor/gaphor
Gaphor是一个用Python编写的UML和SysML建模应用程序。它经过精心设计,功能强大、用户友好,完全兼容的UML 2数据模型。
使用Gaphor,可以毫不费力地可视化设计系统,以最高的精度构建全面、复杂的模型。
首次使用Gaphor时,可以从5种可用的模版中进行选择,包括:Generic、UML、SysML、RAAML和C4 Model。这些模板为软件系统架构设计和风险分析提供了不同的建模语言。
Gaphor支持用于Windows、Linux和macOS。
05
UMLDesigner
官网:
https://www.umldesigner.org/
下载:
https://www.umldesigner.org/download/
UMLDesigner提供了一系列用于UML2.5模型的图。它的主要目标是简化从UML到特定领域建模的转换,使用户能够操作现有的UML模型,并无缝地开始使用DSL。此外,用户还可以灵活地重用图形,并在UML和DSL模型上进行协作。
功能特性:
-
支持包的层次结构
-
类图
组件图
-
复合结构图
-
部署关系图
-
用例图
-
活动图
-
状态机
-
序列图
-
外廓图
06
Sirius
官网:
https://eclipse.dev/sirius/
下载:
https://www.obeodesigner.com/en/download
Sirius是一个Eclipse插件,用于在Eclipse上进行建模(如EMF和GMF)。它为基于模型的架构工程提供了一个通用的工作台,可以根据特定的要求进行定制。它提供了一个桌面版本和一个Web版本。
07
PlantUML
源码:
https://github.com/plantuml/plantuml
PlantUML是一个免费的开源UML工具,可以根据文本描述生成UML图。它提供了一种简单直观的语言来定义图,如:序列图、用例图、对象图、组件图等。既可以使用嵌入式PlantUML的在线解决方案,也可以在本地安装软件来设计UML图表。
它可以输出为PNG、SVG或LaTeX等图像格式,还支持为序列图生成ASCII艺术图,提供JSON数据、YAML数据和工作分解结构(WBS)图表等功能。
功能特征:
-
编写序列图
-
编写用例图
-
编写对象图
-
编写组件图
-
编写JSON数据和YAML数据
-
编写工作分解结构图(WBS)
08
Crystal Facet Uml
源码:
https://sourceforge.net/projects/crystal-facet-uml/
下载:
https://sourceforge.net/projects/crystal-facet-uml/files/latest/download
crystal-facet-uml可以用于创建软件架构图。为用例、需求、结构视图、行为和部署视图的绘制提供了一致的图表。该工具可以以json、xmi等各种格式导出图表。
它提供了一个图形用户界面,用于创建、修改和删除图、UML/SysML元素和关系。支持撤销和重做功能,并且提供多窗口模式,可以显示UML模型的不同部分。
09
NClass
下载:
https://nclass.sourceforge.net/
NClass提供全面的C#和Java语言支持。精心设计的用户界面,简单易用,便于快速无缝开发。它为属性、枚举、委托等语言元素提供了完整的支持,所有这些都具有严格的语法和语义验证。
只需点击几下,就可以轻松地设计应用程序。这个工具的主要目标是提供一个既简单易用又强大的类设计器。可用的图表样式使您能够创建与Visual Studio或其他高端产品中的图表类似的专业外观的图表。此外,您可以选择从模型生成代码或从现有的.NET程序导入类。
该应用程序可用于Windows系统,也可以编译为Linux和macOS。
功能特征
-
完整的C#和Java支持,具有许多语言特定的元素
-
简单易用的用户界面
-
具有语法分析器的内联类编辑器,可轻松快速地进行编辑
-
源代码生成
-
支持从.NET程序集进行逆向工程
-
可配置的逻辑示意图样式
-
打印/保存到图像
-
多语言用户界面
-
支持非Windows用户的Mono
10
Umbrello UML Modeller
网站:
https://uml.sourceforge.io/
下载:
https://uml.sourceforge.io/installation.php
Umbrello UML Modeller是一个用于创建软件的统一建模语言(UML)的免费开源程序。
Umbrello支持XMI 1.2文件导入和导出,目前正在支持XMI 2.0。它还支持从Argo UML、Enterprise Architect、NSUML for NetBeans、Poseidon for UML、IBM/Rational Rose和Unisys XMI for Rational Rose导入文件。
Umbrello是KDE软件编译的一部分,这意味着它可以随所有GNU/Linux发行版一起提供。您可以使用普通软件安装应用程序(Muon,Software Centre,Yast等)或命令行软件包管理器(yum,up 2date,yast,zypper,apt-get,emerge等)安装它。
Umbrello支持许多现成的Linux系统,如:Debian、Ubuntu、Fedora、Arch Linux和Manjaro等。也支持FreeBSD、macOS和Windows操作系统。
原文链接: