PlantUML基础使用教程

环境搭建

IDEA插件下载

打开IEDA系列IDE,从FIle-->Settings-->Plugins-->Marketplace 进入到插件下载界面,搜索PlantUML,安装PlantUML Integration和PlantUML Parser两个插件,并重启IDE

安装和配置Graphviz

进入官网Download | Graphviz下载操作系统对应的安装包,安装后打开settings页面,找到PlantUML配置页面,并在Graphviz dot executable中输入dot可执行文件的绝对路径。

下图为Mac系统使用homebrew安装graphviz所对应的文件路径:

至此,环境搭建完毕,下面演示如何利用PlantUML插件来生成uml文件。

第一个puml文件

在项目中找到想要生成uml文件的class,鼠标右键,找到:

输入文件名后点击确认即可生成一个puml文件。

第二个puml文件

仅生成一个class文件的uml图肯定是不能满足需求的,那如何生成多个class的uml图呢?这里PlantUML并不能帮我们自动挑选出哪些类,而是需要我们自己先根据代码的关系和调用链等在脑子里面确认好需要哪些class,然后按住ctrl键依次选中这些class文件,最后鼠标右键同样点击PlantUML Parser即可。

当然生成uml图可能并不完美,需要微调,此时就需要我们稍微了解一下相关的语法了。

语法简介

  • 关系:
继承关系 实现关系 依赖关系 关联关系 聚合关系 组合关系
方法参数引用 属性关联 多属性关联 单属性关联
三角实线 三角虚线 箭头虚线 箭头实线 空棱形实线箭头 实棱形实线箭头
`< -- ` `< ...` <... <--
  • 类型:
类 接口 抽象类 内部类
class interface abstract +..

示例:

复制代码
@startuml
class ImageLoader{
    loadImage(ImageInfo)
}

class ImageInfo{
}

ImageInfo <.. ImageLoader :依赖关系

class Window {
-WindowManager mWindowManager  : 成员变量
}

class WindowManager

WindowManager <-- Window:关联关系

class Company
class Department
Company o-- Department:聚合关系

class Bird
class Wing
Bird *-- Wing:组合关系

abstract class Factory
class PhoneFactory
class CarFactory
Factory <|-- PhoneFactory:泛化关系
Factory <|-- CarFactory:也就是继承关系

interface IColorDraw{
   ~ draw()  : 抽象方法
}
class RedColorDraw{
    + draw()     :具体方法
}
class BlueColorDraw{
    draw()
}
IColorDraw <|.. RedColorDraw:实现关系
IColorDraw <|.. BlueColorDraw:实现某个接口
@enduml

参考资料

相关推荐
自传.8 天前
B 站更新|软考架构师案例篇・软件工程篇第 2-4 集上线|UML 用例图|类图|顺序图真题精讲
架构·系统架构·软考高级·uml·案例分析·用例图·软考系统架构师
码匠许师傅14 天前
【设计模式精讲】29.行为型模式总结与对比(Behavioral Patterns Summary)
c++·设计模式·uml
码匠许师傅15 天前
【设计模式精讲】27.模板方法模式(Template Method)
c++·设计模式·uml·模板方法模式
码匠许师傅16 天前
【设计模式精讲】26.策略模式(Strategy)
c++·设计模式·策略模式·uml
码匠许师傅16 天前
【设计模式精讲】25.状态模式(State)
c++·ui·设计模式·状态模式·uml
rolt16 天前
用UML表示的行业标准02汽车-AUTOSAR
软件工程·ddd·uml·领域驱动设计·ontology·本体
东莞市永盛电气17 天前
CNC数控机床北美供电适配新实践:208V转380V变压器落地应用案例
uml
码匠许师傅17 天前
【设计模式精讲】24.观察者模式(Observer)
c++·观察者模式·设计模式·uml
码匠许师傅18 天前
【设计模式精讲】22.中介者模式(Mediator)
c++·设计模式·软件工程·uml·中介者模式
码匠许师傅18 天前
【设计模式精讲】23.备忘录模式(Memento)
c++·设计模式·软件工程·uml·备忘录模式