UML用例图中泛化、扩展、包括

在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。

基本概念

用例图(Use Case Diagram):用例图显示谁是相关的用户,用户希望系统提供什么服务(用例),以及用例之间的关系图。用例图主要的作用是获取需求、指导测试。

用例图的4个基本组件:参与者(Actor)、用例(Use Case)、关系(Relationship)和系统。

泛化(generalization):泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。

扩展(extend): extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从子用例指向基用例。

包含(include): include为包含关系,当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。include关系在用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向子用例。

实例需求场景

联通客户响应OSS。系统有故障单、业务开通、资源核查、割接、业务重保、网络品质性能等功能模块。现在我们抽出部分需求做为例子讲解。

需求1:客户响应用户和国际客服可以进行割接通知查询,在页面上有骨干割接查询、省间割接查询、省级割接查询的Tab。

分析:可以很容易看出割接查询和不同的割接子查询Tab之间是继承的关系,所以此处用泛化。用户和客户响应、国际客服也是继承的Actor关系。

需求2:客户响应用户和国际客服可以查看某条割接通知信息,可以在页面上导出割接信息Excel格式,可以查询和该条割接相关联的故障单信息。

分析:因为导出割接和查看相关联的故障单信息都是可选的,就是说我查看割接的时候,也可以不进行这些操作,所以这里用extend关系。也就是导出割接和查看故障单信息扩展了查看割接信息。

需求3:客户响应用户可以以网管系统为来源创建割接通知,在创建割接通知时可以保存为草稿,也可以直接发布割接通知。

分析:由于创建割接通知时,发布割接通知可以同时进行,也可以先存为草稿,所以发布割接是可选的,用extend就比较合适。也就是发布割接扩展了创建割接通知。

需求4:用户在进行业务开通、发布割接通知、发布重保通知及相关跨省的业务时需要进行数据分发。

分析:由于业务开通、重保、割接及其它跨省的业务都需要用到数据分发用例,我们可以将数据分发用例单独抽出来,供各业务使用,这里用include就比较合适。实际的系统中数据分发也是单独抽出来用jms和webservice实现的接口服务。

其它需求:可以看到删除割接通知和查看割接明细也可以做为割接通知查询用例的扩展,因查询列表时,一般可以选择继续查看明细或者删除操作。但在实际化图中,这两个extend可以不画,这里只是为了让大家理解概念。

用例图

大家可以参照着图,好好理解。

加深理解

我们再用另外一个场景的用例说明一下include和extend,因为就这两个玩意比较容易搞混。

销户:因为销户必需先进行账户结算,所以这里用include

停机提醒:有两个可选项,短信提醒和邮件提醒,所以用extend.

经过以上的分析,相信大家对三种关系已经有比较好的理解了。大家有什么其它想法或好的见解,欢迎拍砖。

PS:以上用例图用Enterprise Architect 7.5所画,在此推荐一下EA,非常不错。可以替代Visio和Rose了。Visio功能不够强大,Rose太重。唯有EA比较合适。

时间: 2024-08-11 01:13:49

UML用例图中泛化、扩展、包括的相关文章

UML用例图中包含、扩展和泛化的区别

在软考复习下午题的时候,涉及UML图时会有一个知识点就是用例图中包含.扩展和泛化的区别.这里我们就来总结一下. 1.包含<<include>> 包含是指当多个用例中存在相同的事件流时,可以把这些公共事件流抽象成公共用例,这个公共用例称之为抽象用例(跟类的概念有点相像,类是多个对象的抽象定义),而原始用例称为基础用例,基础用例与抽象用例之间就是包含关系.但是值得注意的是,对于包含关系而言,基础用例是抽象用例执行中不可缺少的一部分,基础用例一般不单独存在且基础用例不知道抽象用例的存在而

UML用例图与类图的基本知识的了解

题记:记录学习的UML用例图与类图的基本知识. 一.UML的用例图: UML的用例图的用途:帮助开发团队一一种可视化的方式理解系统的功能需求. UML用例图包含的元素:(1)参与者:表示与你的应用程序或系统进行交互的用户组织或外部系统(ps:用一个小人表示). (2)用例:用例就是外部可视的系统功能,对系统提供的服务进行描述(ps:用椭圆表示). (3)子系统:用来展示系统的一部分功能.这部分功能联系紧密. UML用例图中的关系主要包含5种:(1)关联(2)泛化(3)包含(4)扩展 关联:表示参

用例图中的三种关系包括、扩展、泛化

用例图使用户 与开发者交流的一种重要的方式,是对用户需求的一种描写叙述.开发者从用户的角度总体上理解系统的功能. 用例图主要有三种元素:參与者(Actor).用例.以及用例图中对象间到的关系.当中关系有包括.扩展是用例图中特有的,泛化在其它类图中相同存在. 包括:当能够从两个或两个以上的用例中提取公共行为时,应该使用包括的关系来表示它们.当中这个提取出来的公共用例成为抽象用例.而把原始用例成为基本用例或基础用例.当中"<<include>>"是包括关系的构造型,

用例图中的三种关系包含、扩展、泛化

用例图使用户 与开发人员交流的一种重要的方式,是对用户需求的一种描述.开发人员从用户的角度整体上理解系统的功能. 用例图主要有三种元素:参与者(Actor),用例,以及用例图中对象间到的关系.其中关系有包含.扩展是用例图中特有的,泛化在其他类图中同样存在. 包含:当可以从两个或两个以上的用例中提取公共行为时,应该使用包含的关系来表示它们.其中这个提取出来的公共用例成为抽象用例,而把原始用例成为基本用例或基础用例.其中"<<include>>"是包含关系的构造型,

UML类图中的六大关系:泛化、实现、依赖、关联、聚合、组合关系

UML定义的关系主要有:泛化.实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,分别看一下 1.泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父类 2.实现 概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述 表示方法:空心三角形箭头的

UML用例图:准则 (转)

UML 用例图:准则   发布于:2012-3-21   在 Visual Studio 旗舰版中,可以绘制“用例图”来概括使用您的应用程序或系统的用户以及该应用程序或系统的用途.若要创建 UML 用例图,请在“体系结构”菜单上,单击“新建关系图”. 用例图有助于讨论和传达以下内容: 您的系统或应用程序与人.组织或外部系统进行交互的几种方案. 它帮助参与者实现的目标. 系统的范围. 用例图不显示用例的详细信息:它只概括用例.参与者和系统之间的某些关系.特别是,用例图不显示每个用例为实现目标所执行

初学UML——用例图

开始学习UML建模语言,从用例图入手.建模工具选择visio 用例图描述的是参与者所理解的系统功能,主要元素是用例和参与者,是帮助开发团队以一种可视化的方式理解系统的功能需求.这时处于项目初始,分析用户需求的阶段,不用管怎么实现具体的功能,只要能向客户形象化的表述项目的功能就行. 用例图有四个部分:用例(Use Case), 参与者(Actor),系统边界,关系. 1)参与者(Actor) 参与者是与系统交互的人或物.首先当然包括我们的开发系统用户,除此之外,与我们开发的系统有关联的其他系统也算

用Visio画UML用例图

1.用例图 用例图描述参与者所理解的系统功能.主要元素是用例和参与者. 用例图的4个基本组件:参与者(Actor).用例(Use Case).关系(Relationship)和系统. 下面以银行储蓄系统为例. (1)用例:用户和计算机系统间的一次交互,代表系统的一个完整功能,是一组动作序列.系统执行完这组动作序列后将产生一个对参与者有价值的结果. 银行储蓄系统的用例:存款.取款.输入存款信息.打印存单.输入取款信息.打印余额...... 用例图中用椭圆表示. (2)参与者:与系统交互的人或物.

UML用例图总结(转)

用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. [用途]:帮助开发团队以一种可视化的方式理解系统的功能需求. 用例图所包含的元素如下: 1. 参与者(Actor) 表示与您的应用程序或系统进行交互的用户.组织或外部系统.用一个小人表示. 2. 用例(Use Case) 用例就是外部可见的系统功能,对系统提供的服务进行描述.用椭圆表示. 3. 子系统(Subsystem) 用来展示系统的一部分功能,这部分功能联系紧密. 4. 关系 用例图