一、 PlantUML用例图 语法学习小结
PlantUML是一个用来绘制UML图的Java类库。支持的UML图包括:时序图、用例图、类图、组件图、活动图。
用例图,展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。
PlantUML语法:
用例用圆括号括起来。
也可以用关键字usecase
来定义用例。 还可以用关键字as
定义一个别名,这个别名可以在以后定义关系的时候使用。
@startuml
(First usecase)
(Another usecase) as (UC2)
usecase UC3
usecase (Last\nusecase) as UC4
@enduml
角色用两个冒号包裹起来。
也可以用actor
关键字来定义角色。 还可以用关键字as
来定义一个别名,这个别名可以在以后定义关系的时候使用。
如果想定义跨越多行的用例描述,可以用双引号将其裹起来。
还可以使用这些分隔符:--
..
==
__
。 并且还可以在分隔符中间放置标题。
用箭头-->
连接角色和用例。
横杠-
越多,箭头越长。 通过在箭头定义的后面加一个冒号及文字的方式来添加标签。
在这个例子中,User并没有定义,而是直接拿来当做一个角色使用。
@startuml
User -> (Start)
User --> (Use the application) : A small label
:Main Admin: ---> (Use the application) : This is\nyet another\nlabel
@enduml
二、用例图元素、及关系分析说明文字
参与者(Actor)
在系统外部与系统直接交互的人或事物。需要注意以下两点:
1)参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一
个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
2)参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
用例(Use Case)
系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。
子系统(Subsystem)
用来展示系统的一部分功能,这部分功能联系紧密。
关系(Relationship)
常见关系类型有关联、泛化、包含和扩展。
a. 关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
b. 泛化(Inheritance)
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
c. 包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
d. 扩展(Extend)
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
三、用PlantUML的绘制用例图脚本程序
@startuml
left to right direction
actor 杏林学院图书管理员
rectangle 借书证管理系统{
:杏林学院图书管理员:--(办证)
:杏林学院图书管理员:--(补证)
:杏林学院图书管理员:--(证件查询)
:杏林学院图书管理员:--(注销)
}
@enduml
@startuml
left to right direction
actor 杏林学院图书管理员
rectangle 图书信息管理系统{
:杏林学院图书管理员:--(添加图书)
:杏林学院图书管理员:--(图书编目)
:杏林学院图书管理员:--(修改图书信息)
:杏林学院图书管理员:--(图书报废)
:杏林学院图书管理员:--(查询图书信息)
}
@enduml
四、用例图