转载:http://www.cnblogs.com/fan0136/archive/2008/12/14/1354730.html
共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。
1、包含(include)
包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的 关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。
包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。
例如:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。
2、扩展(extend)
扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。
对于一个扩展用例,可以在基用例上有几个扩展点。
例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:
4、泛化(generalization)
泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。
例如,业务中可能存在许多需要部门领导审批的事情,但是领导审批的流程是很相似的,这时可以做成泛化关系表示:
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0057/4192/34f79dba-6cf3-3a52-8880-0e51aa5bd3cf-thumb.gif)
- 大小: 10 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0057/4194/1e18fd0e-dc41-3b94-b814-2405217d47e0-thumb.gif)
- 大小: 9.3 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0057/4196/0ae52312-9c3b-3439-b9c4-44e153c00347-thumb.gif)
- 大小: 9.1 KB
分享到:
相关推荐
用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。基本概念用例图(UseCaseDiagram):用例图显示谁是相关的用户,用户希望系统...
在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间的区别和联系对正确理解 UML 用例图至关重要。 包含关系(Include) 包含关系是一种基本关系,它允许将一个用例拆分为多个小的用例,以便重用和简化...
在 UML 用例图中,有两种重要的关系:include 和 extend。这两种关系都是用来描述用例之间的关系的,但是它们之间有着本质的区别。 include 关系是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共...
在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间的区别和应用场景是开发者需要掌握的重要知识。本文将对 UML 用例图的包含、扩展和泛化进行详细阐述,并探讨它们之间的区别和应用场景。 包含关系...
这是我搜集的UML资料。包括如何画用例图,用例图中extend和include的区别,如何画活动图。很详细的文档和课件!
用例图(Use Case Diagram)是统一建模语言(UML)中的一种图表,用于展现一个系统与它的主要交互者(参与者)之间的动态关系,以及系统提供的功能(用例)。用例图是描述系统功能需求和使用场景的有效工具,有助于...
UML 用例图是对系统的功能模型化,包括六个元素:执行者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。 在 UML 用例图中,每个...
用例图(Use Case Diagram)是描述人们如何使用一个系统的图表,它包含六个元素:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)和泛化关系...
UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解
用例图是统一建模语言(UML)中的一种图表,用于描述系统的功能和行为。用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。用例图最常用来描述系统以及子系统。 二、用例图的...
用例间的关系包括关联关系、包含关系、扩展关系和泛化关系等。关联关系表示参与者用例之间进行通信。包含关系表示客户用例可以简单地包含提供者用例具有的行为。扩展关系表示扩展用例被定义为基础用例的增量扩展。...
6. 泛化关系(Generalization):是用例图中用例之间的关系,描述一个用例是另一个用例的泛化。 用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。 参与者是系统外部的一...
本文将详细介绍用例之间的四种关系:泛化关系、包含关系、扩展关系和关联关系。 泛化关系(Generalization) 泛化关系是一种继承关系,表示一般与特殊的关系。在用例泛化中,子用例继承了父用例的行为和属性,也...
* 图书馆管理系统中的用例图:包括借阅者请求服务的用例图、图书馆管理员处理借书、还书等的用例图、系统管理员进行系统维护的用例图。 3. 类图(Class Diagram) * 图书馆管理系统中的类图:包括 Item、Title、...
用例图包括参与者、用例和关系。在这个系统中,参与者包括员工、餐厅员工、菜单管理员和送餐员。用例包括查看菜单、在线订餐、注册工资支付、修改订餐信息、删除订餐信息、备餐、生成付费请求、请求送餐、管理菜单、...
本文将介绍浅谈Ruby on Rails中的include和extend。include主要用来将一个模块插入到一个类或者其它模块。extend用来在一个对象中引入一个模块,这个类从而也具备了这个模块的方法。
13. 泛化(Generalization):在UML中所谓的“泛化”可以用继承来代替。 14. 信息流(Information Flow):在活动图中,表示操作之间的信息交换。 15. 消息传递(Message Passing):在面向对象程序设计中,对象与...
PS图片出血扩展插件-Image Extend-1.0.0中文汉化版