用例图介绍
用例图(Use Case Diagram)是UML(Unified Modeling Language,统一建模语言)中的一种图形化表示工具,用于描述系统功能和用户与系统之间的交互关系。它展示了参与者(通常是用户或其他系统)与系统用例之间的关联,帮助开发者和用户理解系统的功能需求和行为。
用例图的组成
参与者
是系统外部的用户或其他系统,他们与系统交互以完成某些任务或达到某种目的。参与者代表了与系统有交互行为的实体。
用例
是对系统功能的描述,表示系统为参与者提供的一项服务或功能。用例描述了参与者与系统之间为达到某个目标而进行的一系列交互动作。
参与者与用例间的联系
关联关系
每个参与者至少与系统中的一个用例交互,两者的交互即可用一条实线表示关联。
如图1所示,用例学生使用一条实线与用例学习表示交互。
图1 关联关系图
包含关系
当一个用例发生时,另一个用例也会随着发生,那么这两个用例间就存在包含关系。包含关系用一根带箭头的虚线表示,表示的符号为《inclde》。
如图2所示,用例登录包含着验证密码用例,当登录时也随即会验证密码,箭头指向包含的用例。
图2 包含关系图
扩展关系
扩展关系体现在基本用例和扩展用例之间。当执行某个(基本)用例时,且另一个用例可执行也可不执行时,即为扩展用例,两者间即为扩展关系。扩展关系用一根带箭头的虚线表示,表示的符号为《extend》。
如图3所示,用例查看词汇表后,增加词汇用例和删除词汇用例都是即可能发生也可能不发生,因此它们为该基础用例的扩展用例,箭头指向基本用例。
图3 扩展关系表
泛化关系
当两个用例之间存在着泛化关系时,即一个用例代表着通用行为,而另一个用例代表着具体行为,可以用一根带空心三角形的实线连接来表示它们的泛化关系。
如图4所示,登录表示为父用例,它可以有多种登录的方式,而泛化为微信登录、微博登录等的用例即为子用例。箭头指向父用例。
图4 泛化关系图
题目练习
软件描述:我们开发的项目系统为一款机票预定系统,该系统可以进行用户注册、用户登录;进入到预定系统后,我们可以进行机票查看、机票预定;在预定的过程中,还可以进行关系人的绑定,以便帮助他人预定机票;最后,为了方便查找机票记录,也可在订票系统中进行历史机票的查看。请绘制出用例图
思考
针对该问题绘制用例图,我们可以先找出实体,然后找出用例,最后再讲实体与用例间的关系和用例与用例间的关系进行连线。
找实体
由于该题目中只提及了用户对机票预定系统的操作、而并未提到其他实体,因此本题的实体为用户。
找用例
通过阅读题目可以发现,该题目包含多个用例,分别是用户注册、用户登录、机票查看、机票预定、关系人绑定、帮助他人预定、查看历史机票。
找关系
用户注册和用户登录都直接与用户发生交互,并且它们之间存在着扩展关系。要登陆系统的用户有可能没有注册过账号,需要先进行账号注册;也可能已经注册过账号,可以直接登录。
机票查看与机票预定也是直接与用户发生交互,并且它们之间存在着包含关系。要预定机票,就要先进行机票的查看,针对需要的机票进行预定,因而机票预定用例是包含着机票查看的。
关系人绑定直接与用户进行交互。
帮助他人预定也可以直接与用户发生交互,它与机票预定之间是存在着泛化关系的。机票的预定具体的实现既可以给自己预定,也可以是给他人预定。
查看历史机票直接与用户进行交互。
绘图
通过上述的分析,先绘制实体,主要实体放左边,次要实体放在后边(本文没有不进行绘制次要实体)。
再进行与用户直接交互的用例的绘制,并把它们的关联关系连线连上。
最后针对它们间的其他三种关系进行连线,绘图完成。