用例图之间的几种关系
1. 执行者与执行者之间的唯一关系(继承)
A.解释
执行者与执行者之间只有一种关系即继承(也叫泛化)。其意义与面向对象过程中的继承关系类似,但它主要强调子类执行者对父类执行者与用例之间的交互行为的继承。
B.表示形式
(从子类指向父类)
C.核心
两个或两个以上执行者之间有共性,共性单独设为一个执行者。
D.例子
在教务管理系统中,老师、学生、用户之间的关系
理解:老师和学生都是用户的子类,所以继承了用户身份验证和注册操作
E.有什么用?
1.减少代码的冗余量
2.易于修改
2.执行者与用例之间的关系(关联)
A.解释
通常来讲,执行者与用例之间的关系都是用无向边表示的(可理解为双向传递信息)
B.表现形式
C.核心
对号入座
D.例子
管理员与用户身份验证的关系
但也有特殊情况,如下所述
1.当多个执行者与用例相连时,为了强调某个执行者是主要执行者,就在执行者到用例之间加上一条边。
2.被动执行者仅从用例获取信息,而不提供信息给用例,那么此时用例到执行者之间就可以连一条有向边。
E.有什么用
1.使程序整洁了,避免混乱
2.使软件开发符合要求,难出现缺斤少两的现象。
3.用例与用例之间的关系
3.1 包含(include)
A.解释
A.1一个用例所需要完成的功能是多个互不联系的用例的功能之和,那么它们之间就具备着包含关系。
A,2多个用例之间具有共性,就需要把共性提取出来作为一个新的用例,此时新用例与原来的多个用例之间就具备了包含关系。
B.表现形式
(指向包含的用例)
C.核心
对于不同用例而言,提取公共子函数,在登录教务管理系统中,老师和学生都包含着身份信息验证这个用例。
对于某一个用例而言,可以采用拆分法,不断拆分成小的用例。如管理图书信息这个用例
D.例子
图书管理系统中,管理图书信息这个用例就包含增加图书信息,删除图书信息,修改图书信息,查询图书信息四个子用例
E.有什么用?
1.方便软件开发人员开发出软件需的功能
2.能使客户更好的表达自己的观点(错则改正)。
3.2 扩展(extend)
A,解释
通俗点来说就是倒霉到家了,碰到了千万分之一概率的异常情况,如火车晚点3小时。
B.表现形式
(指向被扩展的用例)
C.核心
异常情况
D.例子
在用户身份验证这一用例中,只要输入账户和密码就可以登录这个网站了。但有一种特殊情况是用户忘记了密码,此时就需找回密码,而找回密码很显然可以作为一个单独的用例。那么它就相当于在用户身份验证这个用例下的一种异常情况,所以用户身份验证与找回密码是扩展关系
E.有什么用
1.提高程序的安全性
2.减少程序的维护成本(因为不怕异常)
3.3 继承
A.解释
同执行者与执行者之间的关系类似,只需把执行者变成用例就可以得到其解释。
B.表现形式
(指向父类)
C.核心
子类继承了父类的所有非私有属性和方法,但与父类不同的是它在自己的基础上增加了一些新的东西.
D.例子
蒙牛公司下的产品——特仑苏是继承蒙牛的草场和资金,但他新的地方在于广告效应深远和牛奶的质量好
E.有什么用?
同执行者与执行者之间的关系(泛化)。