使用PlantUML和VS Code轻松实现UML

目录

介绍

基本的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扩展之前,请确保您具有以下先决条件:

对于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的细节。以下书籍可以帮助您启动和运行:

 

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

原文地址:https://blog.csdn.net/mzl87/article/details/88384011

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


UML有助于在软件开发生命周期的所有阶段理解和可视化系统。以下是使用UML图可以获得的一些好处:它是一种标准化的建模语言。它是系统的不同利益相关者之间的交互方式。支持广泛的应用。独立于特定的编程语言和开发过程。开发用于指定,可视化,构建和记录系统的工件。用于表示系统的结
UML各种图总结-精华 https://www.cnblogs.com/jiangds/p/6596595.html之前自己以为画图很简单不需要用心学现在发现自己一直没有学会一些基础的知识能力也因为这种自以为是的观点提升的非常慢需要客户自己的这种缺点多学习一些有用的内容,没有什么东西是很简单简单到
MicrosoftOfficeVisio“UML模型图”模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统。)提供全面的支持。1.用例图在开发项目的早期阶段,使用用例图 (用例:在用例图中,当主角使用系统来完成某一进程时所
用例图1.用例图是UML用于描述软件功能的图形。用例图包括用例、参与者及其关系,用例图也可以包括注释和约束。2.用例图的要素包括三个方面:a.参与者,与用例存在交互关系的系统外部实体。b.用例,用来描述一个相对独立的软件功能。c.关系,包含参与者与用例的关系,参与者相互之间的关系
一、用例图:用例图(usecasediagram)是UML用于描述软件功能的图形。用例图包括用例、参与者及其关系,用例图也可以包括注释和约束。程序员要画时序图啥的用其他的比较麻烦,用plantuml比较方便。语法:活动标签以冒号开始,以分号结束         关键字以start和stop表示开始和结
1.A类B类C类这三个类是什么关系?B类依赖A类和C类因为最主要的原因是B类功能需要A类和C类协助才能完成。有一个粗暴的方法,如果A类B类C类不同包,B类需要先导入A类和C类的包才能运行,但是A类C类则不需要B类2.注意,要避免双向依赖。一般来说,不应该存在双向依赖。类
在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。基本概念类图(ClassDiagram):
1,用例用例用圆括号括起来,或者用关键字xxx来定义用例or还可以用关键字as定义一个别名@startuml(Firstusecase)(Anotherusecase)as(UC2) usecaseUC3usecase(Last\nusecase)asUC4@enduml2,角色角色用两个冒号包裹起来。也可以用actor关键字来定义角色。还可以用关键
UML是什么UML定义:统一建模语言(UnifiedModelingLanguage,缩写UML)非专利的第三代建模和规约语言UML特点:UML是一种开放方法用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂
uml第一次作业plantuml之例图主要包括:用例actor用例描述连接扩展用例(NAME)usecase 关键字as 用于指定别名效果图如下:  几者间的关系:关联关系表示参与者和用例之间的通信。在UML中虹关联关系用直线或箭头表示。关联中communicates版型是参与者和用例之间唯
用例图用例图是用来描述系统功能的技术,表示一个系统中用例与参与者及其关系的图,主要用于需求分析阶段。 用例图的基本组成元素:参与者、用例、元素之间的关系。 用例图使用范围:需求分析1.捕获需求。描述功能需求、行为需求(系统要完成什么任务)2.分析需求。明确类和对象,建立
目录介绍基本的UML类型结构UML图行为UML图可用的建模工具PlantUML的救援VisualStudioCode集成编写少数模型类图活动图导出文档结论介绍UML代表统一建模语言。它是一种通用建模语言,用于标准化可视化软件系统体系结构的方法。它是由格雷迪Booch、伊瓦尔·雅各布森
一个典型类的定义:1/**2*一个典型类的定义3*@author房廷飞4*5*/6publicclassTextObject{7//属性8intid;9Stringname;10intage;11//方法12Computercom;13voidstudy(){14System.out.print
     UML类图新手入门级介绍举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法 首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或
1.泛化(generalize)实线空心三角箭头。2.实现(realize)虚线空心三角箭头。3.聚合(aggregation)实线空心菱形箭头。4.组合(composition)实线实心菱形箭头。5.关联(association)实线(直线),普通箭头("<",">")可选。如果强调方向,则加一个普通箭头。否则只需要一条实线。
文章大纲一、什么是UML二、UML基础介绍三、UML实例介绍四、参考文档 一、什么是UML  UML(UnifiedModelingLanguage,统一建模语言)是一种在软件设计时提供给分析师、设计师和工程师之间的通用语言。它在软件需求分析及软件整个生命周期中起着重要作用:UML建模有助于
    类类的UML表示是一个长方形,垂直地分为三个区,如图1所示。顶部区域显示类的名字。中间的区域列出类的属性。底部的区域列出类的操作。当在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是可选择的(当图描述仅仅用于显示分类器间关系的高层细节时,下
1.策略模式 2.观察者模式3.装饰者模式4.工厂模式5.单例模式
什么是UML图,在这里我就不赘述了,园子里有很多介绍UML图的文章。UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是
第一部分:PlantUML用例图语法学习小结用例用例用圆括号括起来,也可以用关键字usecase来定义用例。还可以用关键字as定义一个别名,这个别名可以在以后定义关系的时候使用。@startuml(Firstusecase)(Anotherusecase)as(UC2)usecaseUC3usecase(Last\nusecase)asUC4@endu