UML与软件建模:第一次作业(用例图绘制)
PlantUML用例图语法学习小结
一、什么是用例图
用例图是UML用于描述软件功能的图形。用例图包括用例、参与者及其关系,用例图也可以包括约束和注释。
二、用例图的要素
包括以下三个方面:(1)参与者,即与用例存在交互关系的系统外部实体;(2)用例,用来描述一个相对独立的软件功能;(3)关系,包含参与者与用例的关系,参与者相互之间的关系,以及用例相互之间的关系。
参与者:
参与者的特性概括起来,参与者有下面几个特性。
(1)参与者位于系统的外部,不属于系统的内容。
(2)参与者与系统发生交互关系,交互关系主要有使用系统、启动系统、获取系统信息或给系统提供信息。
(3)参与者和系统之间存在交互信息的接口,系统提供接口让参与者使用系统,或者系统通过参与者的接口与参与者进行交互。
用例:
用例的含义是在一个应用场景下面,系统为用户提供一个完整的服务,这个服务的完成需要用户与系统直接发生一次完整的人机交互过程。
用例图的特点:(1)用例描述用户对系统的期望,被用于软件需求建模,一个用例对应 于软件能够为参与者提供的一项服务。(2)用例反映参与者与系统A次完整的交互过程。这个交互过程总是要耗费一段时间 ,并执行.定的流程。流程的执行是参与者与系统的一段互动过程,在这个过程中有输入到系统的信息以及系统反馈给参与者的信息。(3)用例的执行过程是系统为参与者的一次服务过程,这个服务就体现为系统提供给参与者的功能。一个用例执行的完成需要有确定的评价结果,这个结果表现为系统提供给参与者的一项完整的功能。(4)用例图是软件设计和测试的依据。
关系:
参与者与用例的关系1、启动用例2、获取用例提供的服务3、为用例提供服务4、给系统提供信息
参与者之间的关系:1、泛化关系2、通信关系
用例相互之间的关系:1、泛化关系2、包含关系3、扩展关系
二、语法
基本:用例用圆括号括起来;角色用两个冒号包裹起来;用箭头-->
连接角色和用例。用例描述:如果想定义跨越多行的用例描述,可以用双引号将其裹起来。还可以使用这些分隔符:--..==__
。 并且可以在分隔符中间放置标题。继承:如果一个角色或者用例继承于另一个,用<|--
符号表示。注释:用note left of
, note right of
, note top of
, note bottom of
等关键字给一个对象添加注释。且注释还可以通过note
关键字来定义,然后用..
连接其他对象。构造类型:用 <<
和 >>
来定义角色或者用例的构造类型。箭头:-
越多,箭头越长。 通过在箭头定义的后面加一个冒号及文字的方式来添加标签。箭头的默认连接是竖直方向的,用--
表示,可以用一个横杠或点来表示水平连接,也可以通过翻转箭头来改变方向。还可以通过给箭头添加left
, right
, up
或down
等关键字来改变方向(这些方向关键字也可以只是用首字母或者前两个字母的缩写来代替)。分割图示:用newpage
关键字将图示分解为多个页面,因默认自上而下构建图示,所以可以用left to right direction
命令改变图示方向。显示:用skinparam
改变字体和颜色。
图书管理系统的用例图元素
借书
用例编号:03 -03用例名:借书
参与者:图书管理员事件流程:
1.图书管理员进人图书借阅界面,选择借书功能,用例开始。2.图书管理员输人借阅者的借书证号。
3.系统验证借书证,如果不合格则给出提示,并结束借书。4.图书管理员扫描要借图书的条形码。
5.系统显示所借图书的图书信息:书名,作者,出版社等。6.系统记录借书信息。
7.如果还有要借的图书转第4步。8.借书完成
还书
用例编号:03-04用例名:还书
参与者:图书管理员事件流程:
1.图书管理员进人图书借阅界面,选择能,用例开始。
2.图书管理员扫描要还图书的条形码。3.系统显示所还图书的图书信息:书名
出版社,借阅日期等。4.系统记录还书信息。
5.如果还有要还的图书,转第2步,6.还书完成。
@startuml
left to right direction
actor cuixihan
rectangle 借阅证管理系统 {
cuixihan -- (办证)
cuixihan -- (补证)
(办证) ..> (打印证件) : <<include>>
(补证) ..> (打印证件) : <<include>>
cuixihan -- (注销)
cuixihan -- (查询证件)
}
@enduml
![](https://img2018.cnblogs.com/blog/1636036/201903/1636036-20190323170449524-1086962615.png)
left to right direction
actor 图书管理员
rectangle 图书管理系统 {
图书管理员 -- (添加图书)
图书管理员 -- (图书编目)
图书管理员 -- (修改图书信息)
图书管理员 -- (图书报废)
图书管理员 -- (查询图书信息)
}
![](https://img2018.cnblogs.com/blog/1636036/201903/1636036-20190323170739662-19233922.png)
@startuml
left to right direction
skinparam packageStyle rectangle
actor 图书管理员
actor 借阅人员
rectangle 图书借阅管理系统 {
图书管理员 -- (书目查询)
图书管理员 -- (图书借阅信息查询)
图书管理员 -- (借书)
图书管理员 -- (还书)
(过期催还) .> (打印催还单) : <<include>>
图书管理员 -- (过期催还)
图书管理员 -- (丢失处理)
(书目查询) -- 借阅人员
(图书借阅信息查询) -- 借阅人员
} @enduml