目录

介绍

基本的UML类型

结构UML图

行为UML图

可用的建模工具

PlantUML的救援

Visual Studio Code集成

编写少数模型

类图

活动图

导出文档

结论


介绍

UML代表统一建模语言。它是一种通用建模语言,用于标准化可视化软件系统体系结构的方法。它是由格雷迪Booch、伊瓦尔·雅各布森和詹姆斯·鲁博在1994-1995年在Rational软件公司开发。1997年晚些时候,该标准被采纳为行业标准。

UML是一种用广泛接受的图形符号表达软件组件设计的方法。在使用任何文本编程语言开始编写模型本身之前,拥有图形模型通常很好。稍后,该模型也可用于文档目的。UML的用处可以通过以下现实场景来描述:当我们加入新开发人员时,我们不希望他们阅读每一行代码并猜测它的全部内容; 我们想给他们一个整个系统的概述。同样,当我们希望他们处理某个功能时,我们不希望他们只是口头上的简要介绍; 我们希望它们具有所需特征的蓝图,因此使用UML图。

按照上面提到的方法可以缓解很多关于系统的麻烦和误解。在这个过程中,设计缺陷通常也会被捕获。

UML最初是在白板上的草图,具有最少量的细节,以便与团队成员进行设计讨论。在最终确定决策时,将相关草图放在更复杂的工具上,最终结果将作为程序员使用的蓝图。

基本的UML类型

根据您的使用情况,有许多UML图可供选择。但是,它们被分类为结构行为 UML图集。

结构图反映了系统的结构,而行为图描述了系统在某些操作下的反应。总共有14个UML图表; 有些很重要,有些则不那么重要。它们如下......

结构UML图

  • 类图
  • 对象图
  • 组件图
  • 部署图
  • 包图
  • 复合结构图
  • 部署图

行为UML图

  • 用例图
  • 活动图
  • 序列图
  • 状态图
  • 通讯图
  • 时序图
  • 交互概述图

我们只会编写几个不同的代码。跟着你,你将通过编码图表找出我的意思。

可用的建模工具

对于建模,简单的笔和纸可以做到这一点。但是,对于持久的文档和频繁的编辑目的,您可能希望寻找更多的专业级工具。工具的选择可以是桌面,在线或只是IDE(集成开发环境)插件的形式。有些人可能会要求您每月/每年订阅,而有些则是免费软件。一些众所周知的工具如下:

产品

平台

定价模型

Microsoft Visio

桌面/在线

共享软件

draw.io

线上

免费软件

LicidChart

线上

共享软件/免费软件

PlantUMLEclipse UML2

IDE插件/扩展

免费软件

PlantUML的救援

虽然Visio和draw.io看起来都是不错的选择,但是在免费试用期后需要几美元,而另一个需要持续的互联网连接。这就是为什么PlantUML听起来很棒,如果你刚开始并努力做了一个决定。

PlantUML承担了一些图表绘制的工作,有些不同。与从工具箱中拖放不同形状并连接它们不同,您可以根据伪编程语言表达图表。这种语言很容易理解,并且不需要花费太多时间来学习。

Visual Studio Code集成

PlantUML支持各种IDE集成。所有支持的IDE都列在PlantUML官方网站上,http://plantuml.com/running。

我们选择VS Code,因为它最近很热,而且没有停止它的迹象。在VS Code上安装PlantUML扩展之前,请确保您具有以下先决条件:

  • Java
  • GraphViz

对于Windows用户,如果您有Chocolatey(Windows的包管理器),则可以使用以下命令简化安装过程:

choco install plantuml

您可以从“扩展选项卡中搜索并安装PlantUML扩展。它可以在Visual Studio市场中使用。您也可以通过在Windows上按Ctrl + Shift + P或在Mac上按Command + Shift + P来使用VS Code命令面板,然后键入:

ext install plantuml

1VS代码的PlantUML扩展安装

编写少数模型

如前所述,在PlantUML中,我们使用伪编程语言来生成图表。此代码文件可以具有以下文件扩展名之一:

* .wsd * .pu * .puml * .plantuml * .iuml

要进行测试运行,请创建包含任何上述扩展名的文件并粘贴以下代码:

@startuml
scale 3
Alice -> Bob : test
@enduml

Alt + DOption + D可预览生成的图表。

2:在VS代码中使用PlantUML进行测试运行

类图

类图表示系统中的对象以及它们之间的各种关系。这是您在设计系统时遇到的最常见的UML图。类包含的属性仅是字段、属性和操作,而这些属性只是简单的方法。属性和操作都有自己的可访问修饰符(可见性),用运算符表示,如(+, - ,〜,#),例如+ field1表示类中有一个字段是public。

管理训练营的类图可能具有以下体系结构:

3:训练营管理的类图

相应的PlantUML伪代码如下:

@startuml
scale 2
class Event {+startTime: DateTime+venue: string+registrationClosed: boolean-notifyAttendes()
}class ApplicationUser {-userName: string-password: string+isLocked: boolean-suggestRandomPasswod()+changeProfilePic()
}class Speaker {+openForSpeaking: boolean-callForAction()+applyAsSpokePerson()
}class Topic {+title: string+sourceCodeUrl: string+downloadMaterials()
}class Attendee {-eventAttended: number-suggestEventBasedOnPreference()+registerForTicket()
}ApplicationUser <|-- Speaker
ApplicationUser <|-- Attendee
Speaker "1" *-- "*" Topic
Event "1" o-- "*" Speaker
Event "1" o-- "*" Attendee
@enduml

图中的一些符号值得一提。它们以更表格的方式描述。

图形符号

PlantUML表示法

含义

空箭头

<|—

泛化/继承

填充菱形箭头

*—

组成

空菱形箭头

o—

聚合

活动图

活动图广泛用于描述业务流程和工作流程。它看起来类似于流程图。但是,它们支持顺序和并行行为。

活动图可以在垂直泳道中组织,也可以不组织。泳通道表示一个或多个参与者参与工作流程。在活动图中,完整的黑色圆圈表示过程的开始,而内部带有黑点的空心圆圈表示结束。多边形通常是决策阶段。水平条表示并行发生两个或多个动作。

在线游戏购买系统的活动图可以具有以下处理流程:

4:在线游戏购买过程的活动图

相应的PlantUML伪代码如下:

@startuml
scale 2
start
:Add games to cart;
:Checkout;
:Check cookie;
while (if cookie?) is (is invalid)
:Show login form;
endwhile
fork
:Mail invoice;
fork again
:Load games;
end fork
:Install and play;
stop
@enduml

导出文档

PlantUML支持将图表导出为不同的文件格式。以下是一些受支持的类型:

* .png* .svg* eps* .pdf* vdx*xmi* scmi* html* .txt* .utxt* .latex

5:使用PlantUMLVS代码导出图表

默认导出位置设置为桌面。但是,下面的VS Code用户设置将确保伪代码和图表都与源代码目录一起存在于名为“docs”的文件夹中。

"plantuml.diagramsRoot": "docs/diagrams/src",
"plantuml.exportOutDir": "docs/diagrams/out"

您将获得如下导出结果:

Project Folder/  docs/        diagrams/            src/                architecture_overview.wsd            out/                architecture_overview.png

结论

本文几乎没有涉及UML的内容。对UML的讨论很广泛,需要一些时间来学习。从顶层只讨论了几个图表,而重点更多地放在PlantUML而不是UML本身。建议进一步阅读以更好地理解UML的细节。以下书籍可以帮助您启动和运行:

  • 学习UML 2.0:UML的实用介绍
  • UML Distilled:标准对象建模语言简介(第3版)

原文地址:https://www.codeproject.com/Articles/1278703/UML-Made-Easy-with-PlantUML-VS-Code

使用PlantUML和VS Code轻松实现UML相关推荐

  1. 打造VS Code(支持Markdown/UML/脑图/代码模板)

    文章目录 Markdown 脑图 UML MD 中插入 UML 代码模板 mermaid 语法 小结 Visual Studio Code是一个文本编辑器,除了写代码和编辑普通文本外,借助插件还可以实 ...

  2. 快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图

    快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图 前言 一.UML类图简介 二.类之间的六大关系及UML类图 1.依赖关系及UML类图表示 2.泛化关系及UML类图表示 3.实现关系及UM ...

  3. PlantUML 快速入门(二) UML 时序图

    UML 序列图 序列图是仅次于类图的最常用 UML 图. 序列图将交互关系表示为一个二维图,纵向是时间轴,时间沿竖线向下延伸:横向轴代表了在协作中各个角色,一般是一个 Class 的对象,用一条虚线代 ...

  4. 轻松理解UML用例图时序图类图的教程

    摘自https://zhuanlan.zhihu.com/p/29874146 写在前面 当你老大扔给你这样的图,或者你需要完成某些功能而去看文档的时候发现以下类似这样的图会不会不(一)知(脸)所(懵 ...

  5. Mac下安装 PlantUML 插件画时序图、UML类图

    1. 安装 PlantUML 插件 安装完 PlantUML 就可以画时序图.流程图了. 但是,不能画 UML 类图,还少了一个图形渲染的工具 Graphviz. 2.在 Mac 上安装 Graphv ...

  6. java 类图 xmind_轻松学习UML之类图,状态图

    本文主要讲解UML图中的类图与状态图相关内容,如有不足之处,还请指正. 概述 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言,UML因其简单.统一 ...

  7. npm收录了哪些包_使用VS Code轻松找到npm软件包中的漏洞(Vuln Cost)

    Visual Studio Code可能是JavaScript开发人员使用最广泛的代码编辑器.由于开发的80%甚至90%的代码严重依赖于开源软件包,因此开发人员需要知道这些软件包的功能.例如,您是否知 ...

  8. VS Code中使用PlantUML绘图

    PlantUML 是一个开源项目,支持通过脚本绘图,所以 PlantUML 是一种建模语言.根据 http://plantuml.com/zh/,PlantUML 可以绘制如下种类的 UML 图: 时 ...

  9. idea uml图怎么画_有了IDEA中的这款插件,流程图、类图轻松搞定,简直神器

    总有童鞋问,这个流程图图怎么绘制的,这个UML类图用什么工具做的等等,今天给大家推荐一款idea插件PlantUml,来帮助大家快速快速完成绘制. PlantUml是什么 PlantUml是一个支持快 ...

最新文章

  1. Subversion存储库中“分支”,“标记”和“主干”的含义是什么?
  2. 关于文件透明加密解密
  3. 02_Android写xml文件和读xml文件
  4. 第 4 章  超链接和路径
  5. [BZOJ] 1688: [Usaco2005 Open]Disease Manangement 疾病管理
  6. 蚂蚁金服亿级并发下的移动端到端网络接入架构解析
  7. 计算机三四级网络技术,全国计算机等级考试四级网络技术论述题真题3
  8. spring data elasticsearch 对应 elasticsearch 版本
  9. linux p 参数,tar的-p参数解决方案
  10. 疯狂的程序员 31-40
  11. FasterRCNN
  12. H3CIERS+(H3C认证路由交换互联网专家介绍)
  13. ctDNA早期肿瘤×××基因检测
  14. 微信电子商务的B店战略和C店战术
  15. 学术小白:如何区分SCI、EI
  16. python 滤波放大数组,python 双边滤波与高斯滤波
  17. 知名大咖、一线品牌齐聚!机智云助力电动车锂电新时代!
  18. LaTex(PART III)命令环境和简单的数学公式、插图、表格
  19. 1、Linux下搭建研究live555的开发环境
  20. CreateJS 入门小记

热门文章

  1. python面向对象难学_学不下去了!?详解Python面向对象核心概念,简历没跑了
  2. linux清空输入框,Linux uniq 命令
  3. linux全网备份的原理,Linux面试题分享:Rsync(全网备份)和NFS(文件系统)
  4. UI设计还在为聊天界面苦恼?好的案例,打开任通二脉
  5. 设计素材psd分层模板|临摹搞定促销海报版式!
  6. 餐饮后台UI模板有这个就够了!
  7. 《Web前端开发最佳实践》学习笔记
  8. Madagascar编程的Makefile文件配置
  9. 构建官方CoreOS COSA 镜像并构建 CoreOS
  10. C++友元:友元函数、友元类和友元成员函数