首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

UML用例图中包含(include)、扩张(extend)和泛化(generalization)三种关系详解

2013-11-08 
UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解UML用例图中包含(include)、扩

UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解

UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。



1、包含(include)

????

2、扩展(extend)

扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

?对于一个扩展用例,可以在基用例上有几个扩展点。???
例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:

UML用例图中包含(include)、扩张(extend)和泛化(generalization)三种关系详解?

3、泛化(generalization)

?泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。

例如,业务中可能存在许多需要部门领导审批的事情,但是领导审批的流程是很相似的,这时可以做成泛化关系表示:

上面是我参考的一篇文章,觉得将三种关系的区别讲得很清晰,在此基础上结合自己的系统,对项目(在线购物系统)的用例做了整体的描绘。

??? *****************************************************************

??? (1)系统整体用例图

UML用例图中包含(include)、扩张(extend)和泛化(generalization)三种关系详解

UML用例图中包含(include)、扩张(extend)和泛化(generalization)三种关系详解

UML用例图中包含(include)、扩张(extend)和泛化(generalization)三种关系详解

UML用例图中包含(include)、扩张(extend)和泛化(generalization)三种关系详解

?

按照先整体用例,后子系统用例来进行描绘的,欢迎大家提出好的建议!

?

转:UML中扩展和泛化的区别详述如下:

?????既然用例是系统提供服务的UML表述,那么服务这个过程在所有用例场景中是必然发生的,但发生按照发生条件可分为如下两种情况:
???????? ⒈无条件发生:肯定发生的;
???????? ⒉有条件发生:未必发生,发生与否取决于系统状态;

?????因此,针对用例的三种关系结合系统状态考虑,泛化与包含用例属于无条件发生的用例,而扩展属于有条件发生的用例。进一步,用例的存在是为Actor提供服务,但用例提供服务的方式可分为间接和直接两种,依据于此,泛化中的子用例提供的是直接服务,而包含中的被包含用例提供的是间接服务。同样,扩展用例提供的也是直接服务,但扩展用例的发生是有条件的

????????转自:http://www.cnblogs.com/fan0136/archive/2008/12/14/1354730.html