软件工程导论这门课里有许多图,今天和大家介绍的是uml系统用例图

 

目录

用例图的组成

参与者Actor

用例UseCase

边界

关系

关联

泛化

包含

扩展

补充考点

前置条件

后置条件


用例图的组成

        系统用例图,用于面向对象方法学的需求分析阶段.

        用例图是指由参与者Actor用例UseCase边界以及它们之间的关系构成的用于描述系统功能的视图,用例图是外部用户(参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图,呈现了一些参与者,一些用例,以及它们之间的关系,主要对系统,子系统或类的功能行为进行建模。

参与者Actor

        参与者:用以表示和系统交互的参与者角色,不一定是人,也可以是物品或者系统。并且参与者不是人或事物本身,而是表示人或事物当时所扮演的角色。使用一个小人表示。例如:教师,学生。

 

用例UseCase

        用例就是外部可见的系统功能,对系统提供的服务进行描述。使用一个椭圆表示。例如:登录,注册,购买,支付。

        注意,用例是一个类,他代表一类功能,而不是使用该功能的某个具体实例。如果把用例图和uml类图放在一起的话,用例对应的是一个类。

 

边界

        边界:指系统和系统之间的界限,把系统边界以外的同系统相关联的其他部分称为系统环境,使用一个矩形表示。例如:取款机系统,内部有取款缴费查询转账等功能。

        举例:自动售货机系统就是一个边界,用一个大框框表示。

关系

        用例图中存在四种关系:关联,泛化,包含,扩展

关联

        关联:参与者与用例之间的关系。用一条直线表示,一般就用于从用户连线,接到功能。例如从用户指向缴费。

        需要注意的是,关联有的时候是使用带箭头的直线表示,从参与者指向用例。这种情况其实是uml类图和uml用例图的混用。在uml类图中,关联关系使用的是带箭头的直线。但由于uml各种图“是一家”,所以也就见惯不怪了。大家遇到时认识就好。

        举例:顾客和售货之间,就是关联关系。

 

 

泛化

        泛化:参与者与参与者,或用例与用例之间的关系。也就是面向对象思想中的继承关系,一个直线加空心三角形。从子用户或子功能指向父用户或父功能。例如vip用户泛化用户,就是从vip用户指向用户。

        举例:学生和教师都泛化“人”。

 

包含

        包含:用例之间的关系,使用虚线箭头加<<include>>表示,包含关系用来把一个较为复杂的功能分解成小的步骤。如果B是A的某项子功能,并且建模者确切地知道在A所对应的动作序列中何时将调用B,则称为A包含B。比如‘录入成绩’包含‘保存成绩’,‘修改成绩’包含‘保存成绩’。

        通常,QWER等多个用例都包含B用例时,会把B用例抽取出来,避免重复。

        “包含”曾经叫做“使用”。

        举例:自动售货机系统中,供货功能需要打开机器,关闭机器。因此可以说“供货”包含“打开机器”和“关闭机器”。

扩展

        扩展:用例之间的关系,使用虚线箭头加<<extends>>表示,扩展表示一个功能的附加操作,是可选可不选的那种。如果C的动作序列是通过A的动作序列中的某些执行点上插入附加动作序列而构成的,则称为C扩展A。比如说玩游戏,有主线剧情和支线剧情,主线剧情就是包含关系,做完A任务会让你做B任务,而扩展关系类似于支线剧情,隐藏任务,也是需要完成A任务才能开启C支线任务,但是C任务想做就做,不想做就不做,是一种附加。扩展关系总基本用例的基本流执行时,扩展用例不一定执行,即扩展用例只有在基本用例满足某种条件的时候才会执行。比如‘找回密码’扩展‘登录’,只有在登陆失败忘记密码的时候才会‘找回密码’。

        例如,自动售货机系统中,用玻璃杯卖饮品,就属于正常售货的扩展。

 

 

补充考点

        在用例图的考点中,可能会求一个用例的前置条件和后置条件。

        前置条件和后置条件:假设A是B的前置条件,C是B的后置条件,意思即为:A是B的必要不充分条件,B是C的充分不必要条件。想要做B,必须完成A。做完B后,一定有C。

前置条件

        例如:“用玻璃杯卖(饮品)”一定是基于“售货”的。若有“用玻璃杯卖”这一动作,则一定有“售货”这一动作。因此,“售货”是“用玻璃杯卖”的前置条件。

 

后置条件

        例如:若要“供货”,一定要先打开机器,添加货物,之后关闭机器。因此“打开机器”必须要“关闭机器”。这是一套流程。“关闭机器”就是“打开机器”的后置条件。

 

        ps:大家使用软件画用例图的时候,有很多软件可以选择,比如亿图图示,staruml什么的。对我个人来说,亿图图示收费懒得破解,staruml是英文我看不懂。如果有和我一样英语不好还穷的小伙伴,可以使用“jude”这个软件,免费,占内存小,百度一搜就出来了。下载下来是bat格式的,自己新建个快捷方式,换个图标就ok啦~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐