UML相关工具推荐-效率工具论坛-资源-SpringForAll社区

UML相关工具推荐

UML 意义

很多时候,客户跟产品经理交流,产品经理再跟开发交流,开发再和其他开发交流。在沟通的过程中,很多需求可能变了味,不再是客户最开始所描述的。其根本原因在于每个人的思维方式和理解能力是不同的。UML 的意义就是它定下了一套建模的标准,把抽象的文字转换成了更形象的图形。你拿一个时序图或者活动图比你巴拉巴拉讲半天更能让其他人明白整个业务流程的流转交互。

客户的需求用用例图来表示明确功能点,复杂交互可以用活动图、时序图来表示,对象的状态变更可以用状态机图来表示。包图、类图可以化解多人开发时信息孤岛、命名冲突、不规范等问题,组件图可以有助于了解组件、包或者三方库之间的依赖关系,部署图可以让运维架构师们清晰的了解各软件服务所需的物理资源以及分布情况。

软件开发过程中各角色常用的建模图形

角色 常用建模
产品 用例图、活动图;思维导图、甘特
开发 活动图、时序图、类图、状态图、包图;数据库建模:ER 图、物理模型图
测试 用例图
架构师、运维 组件图(类似架构图)、部署图;网络拓扑图

UML 常用工具

很长一段时间,我接触到的都是图形化界面的工具,如 Visio、PowerDesigner、网页版的图形化工具 Diagram 等。这些工具优点很明显,图形化的界面拖拽很方便;但缺点也很突出,不谈收费以及不适配所有平台这个问题外,图形、线条、箭头我一直存在对不齐的问题,其次每次都需要保留源文件才能进行修改,但是嵌入到输出页面的都是一张张图片而不会把源文件也放进去。

后面接触到文本型的工具,如 PlantUML、Mermaid 等,说是工具,其实更加倾向于是实现了 UML 语法语义要求的语言。这两种现在基本上都有基于 Markdown 代码块的插件,来将代码块转换成图形,这样既可以解决用手和眼睛来拖拽对齐的问题,又可以解决输出页面保留了源文件(应该说是源代码)方便日后修改的问题。

PlantUML 和 Mermaid 各种图的语法就不多阐述了,两者基本上蛮相似的。以下是 PlantUML 给的一个 demo:

 
@startuml
Alice -> Bob: Authentication 
RequestBob --> Alice: Authentication 
ResponseAlice -> Bob: Another authentication 
RequestAlice <-- Bob: Another authentication Response
@enduml

图片[1]-UML相关工具推荐-效率工具论坛-资源-SpringForAll社区

可以发现还是很清晰美观的。如果你追求图形的样式、线条的布局,PlantUML 也有对应的一些配置,如正交线、分块等。

IntelliJ IDEA Markdown 插件安装

image

VS Code Markdown 插件安装

image

外链

  1. https://en.wikipedia.org/wiki/Unified_Modeling_Language
  2. https://github.com/plantuml/plantuml
  3. https://github.com/mermaid-js/mermaid
请登录后发表评论

    没有回复内容