UML介绍
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。
我们在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等一些逻辑思维。
PlantUML介绍
PlantUML是一个开源项目,允许用户使用纯文本语言创建UML图表。PlantUML的语言是特定于域的语言的示例。它使用Graphviz软件来布置其图表。
支持快速绘制UML图
- 时序图
- 用例图
- 类图
- 活动图 (旧版语法在此处)
- 组件图
- 状态图
- 对象图
- 部署图
- 定时图
同时还支持以下非UML图
- 线框图形界面
- 架构图
- 规范和描述语言 (SDL)
- Ditaa diagram
- 甘特图
- 思维导图
- Work Breakdown Structure diagram
- 以 AsciiMath 或 JLaTeXMath 符号的数学公式
- Entity Relationship diagram
PlantUML示例
类图
@startuml UserInfo
class UserInfo {
eid : String
name : String
branchCode : String
branchName : String
password : String
status : String
gmtCreate : timestamp
creater : String
gmtModify : timestamp
modifier : String
void methods()
}
@enduml
思维导图
@startmindmap map
+_ 系统
++_ 右标题1
+++_ 右标题1子1
+++_ 右标题1子2
++_ 右标题2
--_ 左标题1
--_ 左标题2
@endmindmap
拓扑图
@startuml ArchitectureDiagram
' 图片中文字居中
skinparam defaultTextAlignment center
' 黑白 输出格式,否则需要在后面跟上 #White
' skinparam monochrome true
' 颜色翻转
' skinparam monochrome reverse
' 手写风格
skinparam handwritten true
!define LOCALURL G:\WorkSpaces\MyWorkspaces\plantuml-icon-font-sprites
!include LOCALURL/common.puml
!include LOCALURL/devicons/mysql.puml
!include LOCALURL/devicons/redis.puml
!include LOCALURL/devicons/mongodb.puml
!include LOCALURL/font-awesome-5/server.puml
!include LOCALURL/font-awesome-5/database.puml
!include LOCALURL/font-awesome-5/mobile_alt.puml
!include LOCALURL/font-awesome-5/laptop.puml
!include LOCALURL/font-awesome-5/map_marker_alt.puml
!include LOCALURL/font-awesome-5/door_closed.puml
!include LOCALURL/font-awesome/cloud.puml
!include LOCALURL/font-awesome/fire.puml
' id,name,type cloud,node..
package "Terminal" {
FA5_MOBILE_ALT(mobileVisit,mobile) #White
FA5_LAPTOP(webVisit,web) #White
}
FA_CLOUD(transfer,transfer,cloud) #White
FA_FIRE(firewall,firewall) #White
FA5_MAP_MARKER_ALT(mapserver,Third Map API,cloud) #White
package "Server" {
package "Map Server" as myServer {
FA5_SERVER(myService,Map Service,node) #White
FA5_DOOR_CLOSED(loginService,Login Service,node) #White
}
DEV_MYSQL(mysql,MySQL,node) #White
DEV_MONGODB(mongodb,MongoDB,node) #White
DEV_REDIS(redis,Redis,node) #White
}
Terminal -- transfer
transfer -- mapserver
transfer -- firewall
firewall -- Server
myServer -- mysql
myServer -- mongodb
myServer -- redis
@enduml
PlantUML的资料
PlantUml
VSCode 中使用 PlantUML 插件生成 UML
Goland中的PlantUML手动指定类图位置关系
Skinparam 命令