在uml用例图中,参与者表示 uml图例讲解答案( 三 )
文章插图
5
用例之间的关系
用例之间的关系主要包括泛化、包含和扩展三种 。
5.1 泛化关系
当多个用例拥有相似的属性或行为时,我们可以将它们的共性抽象为父用例,而其它用例作为泛化关系的子用例 。子用例继承父用例中的属性和行为 。
用例的泛化关系可以理解为同一业务目的的不同实现路径 。
泛化(Generalization)关系在图形上使用带空心三角形箭头的实现表示,箭头由子用例指向父用例 。

文章插图
上面这个例子中,“使用 支付”和“使用 支付”是“支付”的子用例 。在父用例“支付”中并不提供具体的支付方式,只提供支付必须的属性和接口,而在其子用例中实现具体的支付功能 。
5.2 包含关系
在系统建模过程中,有些功能在不同业务情境中需要反复使用 。这些反复使用的功能可以单独剥离出来形成一个单独的用例,而在执行相关功能时,可以把剥离出来的公共功能再包含到主流程中去 。用例的包含关系就可以描述这种情形 。另外,如果一个基本用例的功能过多时,也可以把其拆解成多个小的用例 。
被包含的用例称作提供者用例,包含其它用例的用例称作客户用例 。
在UML中,包含(include)关系使用带<<include>>构造型的虚线箭头表示,箭头由基本用例(包含用例/客户用例)指向被包含的用例(提供者用例) 。

文章插图
下面是一个具体的例子:

文章插图
在这个例子中,读者要预借图书,他需要执行查询图书用例,才能执行预借图书,所以查询图书用例将被包含到预借图书用例中来,同时,读者要执行预借图书时,前提他必须已经登录到系统中,系统已经保存了他的登录状态才能执行预借操作,所以验证身份用例也将被包含到预借图书用例中来 。查询图书即是一个读者要求具有的一个基本功能,又是其它功能的一个必要操作过程 。验证身份不仅在预借图书时要用到,还要在执行如查询借阅记录、缴纳罚款时等用到的一个功能,把验证身份单独提出来形成一个用例比较合适 。
5.3 扩展关系
基本用例提供扩展点,在扩展点中可以添加新的行为,扩展用例提供了一组插入片段,这些片段能插入到基本用例的扩展点上 。
基本用例仅提供扩展点,而不必知道扩展用例的任何细节 。
基本用例即使没有扩展用例也是完整的,这与包含关系不同 。
一个用例可以提供多个扩展点,每个扩展点也可出现多次 。
一般情况下,基本用例的执行不会涉及到扩展用例,只有在特定条件或事件发生时,才会执行扩展用例的功能 。
在UML中,扩展关系使用带构造型<<extend>>的虚线箭头表示 。箭头由扩展用例指向基本用例 。

文章插图
下面这个例子是图书馆借阅系统中,一个用例图片段:

文章插图
在这个例子中,缴纳罚款即是读者的一个基本用例,也是归还图书的一个扩展用例 。
“缴纳罚款”作为“归还图书”的扩展用例,只有在以下条件时,才会被执行:
(1)读者图书有超期或其它原因产生有罚款记录,且未缴清;
(2)读者选择了在归还图书后,同时缴清罚款 。
扩展关系与包含关系有什么不同呢?

文章插图
扩展关系中,基本用例是完整的,执行基本用例不一定执行扩展用例;但包含关系中的基本用例不完整,执行基本用例必须执行包含用例 。
为了避免阅读的劳累,关于用例图具体的案例将在下一讲中给出 。
敬请关注 。
UML往期内容推荐
这就是UML!——系列内容第1讲:UML简介
这就是UML!——系列内容第2讲:UML通用知识
这就是UML!——系列内容第3讲:UML中的视图和图

文章插图
下期内容预告
-------------------
案例背景
系统目标
需求描述
用例建模
【在uml用例图中,参与者表示 uml图例讲解答案】
推荐阅读
- HOTTOYS发布《复仇者联盟4:终局之战》战损版灭霸!
- 回奶宝效果怎么样?
- 老鼠刺根的功能主治
- 心肌损伤的原因和恢复方法
- 擦生姜延时
- 马思纯|马思纯减肥真卖力,全程在吃草,不瘦才怪
- 常征|罚罪:夏宗涛被杀,李伯东即将暴露,宋光明此举是在保常征一命
- 你比你爸还大?看着父亲慢慢老了
- |跟着《简言的夏冬》学ootd,轻松成为办公室最飒的存在
- 华为|“青春版”华为P50 Pocket正在路上:骁龙778G、自研影像XMAGE
