PlantUML初步
什么是PLANTUML
PlantUML是一个快速创建UML图形的组件,官网上之所以称它是一个组件. PlantUML通过简单和直观的语言来定义图形,它可以生成PNG、SVG和二进制 图片。下面是一个简单的示例:
@startuml
Bob -> Alice: Hello
Alice -> Bob : thank
@enduml
vscode 安装
- 安装插件扩展
PlantUML
brew install --cask temurin
brew install graphviz
使用
支持的格式有:
*.wsd, *.pu, *.puml, *.plantuml, *.iuml
常用的操作包括:预览和导出
PlantUML优势
- PlantUML是开源的,有一个相对比较成熟的网站,通过简单的UML语言来实现想要的效果,有点极客范
- PlantUML有比较详细的各类语言的guide文档
- PlantUML做了很多的适配,比如常用的编译器eclipse,IDEA intelliJ都有对应的插件,同时还和Maven和JQuery都做了集成,还提供了war包形式,可以在本地的JavaEE容器(比如Tomcat)中运行起来
- PlantUML语言简单直接易学,就好像Markdown语法一样,简单高效
UML语言介绍
UML 的目标是定义一些通用的建模语言并对这些建模语言做出简单的说明,这样可以让建模者理解与使用。UML 也是为普通人和有兴趣的人而开发的系统,它可以是一个软件或者使用非软件,它必须是明确的。我们不将 UML 作为一个开发方法,而是随着流程做一个成功的系统。
现在我们可以明确的了解 UML 的目标就是 UML 被定义为一个简单的建模机制,帮助我们按照实际情况或者按照我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。
UML 注释:
UML 中最重要的建模元素是符号。
适当有效地使用符号对于一个完整的,有意义的模型来说是非常重要的。如果一个模型的目的无法正确的描绘,那么该模型是无用的。
因此,在开始学习 UML 的时候就要强调表示法的重要性,不同的符号可用于表示物件和关系。
可扩展性是 UML 的另一个重要的特点,这使得UML更加强大和灵活。
UML 核心:
UML 的核心是图表,大致可以将这些图归类为结构图和行为图。 结构图是由像静态图,如类图,对象图等静态图;
行为图是由像序列图,协作图等动态图;
一个系统的静态和动态特性是通过使用这些图的可视化。
UML 类图:
类图是使用面向对象的社会最流行的 UML 图。它描述了在一个系统中的对象和他们的关系,能够让我们在正确编写代码以前对系统有一个全面的认识。
一个单独的类图描述系统的一个具体方面,收集类图表示整个系统。基本上,类图表示系统的静态视图。
类图是唯一可以直接映射到面向对象的语言UML图。因此,它被广泛应用于开发者社区。
UML 对象图:
对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。
UML 组件图:
组件图是一种特殊的UML图来描述系统的静态实现视图。组件图包括物理组件,如库,档案,文件夹等。
此图是用来从实施的角度。使用一个以上的元件图来表示整个系统。正向和逆向工程技术的使用,使可执行文件组件图。
UML 部署图:
组件图是用来描述一个系统的静态部署视图。这些图主要用于系统工程师。
部署图是由节点和它们之间的关系。一个高效的部署图是应用软件开发的一个组成部分。
UML 用例图:
用例图是从用户角度描述系统功能,并指出各功能的操作者,用来捕捉系统的动态性质。
一个高层次的设计用例图是用来捕捉系统的要求,因此它代表系统的功能和流向。虽然用例图的正向和反向工程是不是一个很好的选择,但他们仍然在一个稍微不同的方法来模拟它。
UML 交互图:
交互图,用于捕获系统的动态性质。
交互图包括序列图和协作图,其中:序列图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系。
UML 状态图:
状态图是一个用于模拟系统的动态性质的五个图。这些图用来模拟一个对象的整个生命周期。
一个对象的状态被定义为对象所在的条件下,特定的时间和对象移动对其他状态,在某些事件发生时。状态图还用于正向和反向工程。
状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。
UML 活动图:
活动图是 UML 的动态模型的一种图形,一般用来描述相关用例图,活动图是一种特殊的状态图。 准确的活动图定义:活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。