UML——用例图

1、用例图

由软件分析到最终实现的第一步,描述人们希望如何使用一个系统。描述外部特征,从用户角度来描述对产品的需求。用于需求分析阶段。这个时候把系统看成一个黑盒子。

用例图包括三个方面:用例、参与者、关系

2、用例图的基本元素——参与者

参与者:不是特指人,指系统以外的,使用系统与系统交互中扮演的角色,参与用例的执行过程。

参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。

分类:分为3类

① 参与者是真实参与的人,即用户。比如:要租车的人

② 参与者是其他的系统。比如:购买东西付钱时,与外部程序建立联系,验证信用卡以便付款。

③ 可以运行的进程:比如还书的时间到时,系统会提醒用户还书

机房收费系统中确定的参与者:一般用户(其实在机房中学生就是一般用户)、操作员、管理员

3、用例图的基本元素——用例

用例:对一个系统或一个应用的一种单一的使用方式所作的描述,是关于单个活动者在与系统对话中所执行的处理行为的陈述序列。是系统的用户需求的描述。

4、用例图的基本元素——关系

(1)、参与者与参与者之间的关系

泛化关系——描述多个参与者之间的公共行为。存在几个参与者既扮演自身的角色还扮演更加一般化的角色。

用空心三角形箭头表示泛化关系。泛化的箭头指一般角色

例子:饭店接受的预定的客户,可以有网上预定和电话预定

(2)、参与者与用例之间的关系

关联关系:

用箭头表示,箭头指向用例。

例子:饭店的用户可以点餐,取餐

(3)、用例与用例之间的关系

① 泛化关系——一个用例可以被特别列举为一个或多个子用例。子用例从父用例继承行为和属性,可以添加行为或覆盖、改变已继承的行为。

例子:比如查询可以泛化为查询价钱和查询菜品

② 包含关系——一个用例包含了一个用例的行为。

通常在两种情况下发生:

a、如果2个以上用例有重复的功能,则可以将重复的功能分解到另一个用例中。其他用例可以和这个用例建立包含关系

例子:比如客户付钱和查看菜品是否上齐都包括查看账单

b、一个用例的功能太多时,可以用包含关系创建多个子用例

例子:点餐,包括:查看菜品,选择点的菜品

③ 扩展关系——一个用例也可以被定义为基础用例的增量扩展。

例子:点餐之后,可以将点好的餐及价钱形成账单,以便用户查看。

5、画用例图的要点:

① 注意箭头的指向,包含关系指向被包含的用例,泛化关系指向父用例,扩展关系指向被扩展的用例

② 区分泛化和包含关系

6、我的机房用例图

这个是经过修改好多次的用例图

第一个版本:我认为一般用户、操作员、管理员是泛化关系,画了一版

第二个版本:感觉把一般用户看做网吧上网的客户,操作员看做是前台收钱的人,管理员看做老板。发现三者之间没有泛化关系,其实只是软件用户的不用位置罢了。而第一版觉得是泛化,是觉得管理员和操作员之间的功能有一样的,后来想,操作员和管理员上机可以申请一般用户的啊。而且感觉这样的话,其实一般用户可以直接使用自己的账号去登录,然后直接上机 。不需要卡号啊。所以我就把卡这个工具舍去了。而且现实网吧也是不用卡的

上面的很多例子是我自己举例的如果有不合适的,欢迎大家指出 

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/87802277