一、类图
类图是展示类、接口、包以及它们之间关系的一种图表。在PlantUML中使用类图的语法非常简单,只需要使用class、interface、abstract class等关键字定义类或接口,使用关系词语定义它们之间的关系即可。
@startuml class MyClass { + property: type + method(parameter: type): return_type } interface MyInterface { + method(parameter: type): return_type } MyClass --|> MyInterface MyClass --> MyClass @enduml
以上代码展示了Class与Interface的定义以及它们之间的继承与关联关系。其中,+表示public属性和操作,-表示private属性和操作,#表示protected属性和操作,~表示default属性和操作。
二、时序图
时序图展示的是对象之间的交互关系,可以展示对象之间的消息发送顺序和时间流逝。在PlantUML中,使用participant定义参与者,使用->、-->、<-和<--等箭头表示消息的发送方和接收方,使用note定义消息的内容。
@startuml participant ObjectA participant ObjectB ObjectA->ObjectB: message note right: message details @enduml
以上代码展示了ObjectA向ObjectB发送消息,并在右侧展示了消息的内容和细节。
三、用例图
用例图是展示系统功能和用户之间的关系的一种图表。在PlantUML中,使用usecase定义用例,使用actor定义参与者,使用关系词语定义它们之间的关系即可。
@startuml actor User usecase Login usecase View Profile User --> Login User --> View Profile @enduml
以上代码展示了一个简单的用户登录用例。用户参与整个流程,执行两个用例——登录和查看个人资料。
四、活动图
活动图是展示业务流程的一种图表,可以展示不同步骤之间的顺序、条件和并行关系。在PlantUML中,使用activity定义步骤,使用-->、-|>和<-|--等箭头定义步骤之间的关系,使用fork和join表示并行和同步。
@startuml start if (condition) then (true) :true path; -->[label1] step1 -|>[label2] step2 else (false) :false path; -->[label3] step3 endif fork --> step4 --> step5 join --> end end @enduml
以上代码展示了一个带分支、条件和并行的活动图。分支根据条件选择true或false的执行路径,步骤之间使用箭头表示顺序关系,fork表示并行开始,join表示并行结束,start和end表示活动图的开始与结束。
五、部署图
部署图是展示系统部署结构的一种图表,可以展示系统组件和节点之间的关系。在PlantUML中,使用node和component定义节点和组件,使用关系词语定义它们之间的关系。
@startuml node WebServer node AppServer node Database component Frontend component Backend component DBAccess component DBConnector WebServer -- AppServer AppServer -- Database Frontend --> AppServer Backend --> AppServer Backend --> DBAccess DBAccess --> DBConnector DBConnector --> Database @enduml
以上代码展示了一个简单的系统部署图。WebServer、AppServer和Database为节点,Frontend、Backend、DBAccess和DBConnector为组件,它们之间的关系通过各种不同箭头表示,体现了系统的层次结构和互联关系。
六、总结
本文详细阐述了PlantUML的基本语法和各种图表的语法表示,包括类图、时序图、用例图、活动图和部署图。使用PlantUML可以快速、规范和易读地展示系统结构、业务流程、交互关系和部署结构,是一种非常强大和实用的建模工具。