在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(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比较合适。
- 大小: 101.1 KB
- 大小: 48 KB
分享到:
相关推荐
用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。基本概念用例图(UseCaseDiagram):用例图显示谁是相关的用户,用户希望系统...
深度学习中的分布外 (OoD) ...最近,清华大学崔鹏等研究者发布了《分布外泛化(Out-Of-Distribution Generalization)》综述论文,针对该领域的系统、全面地探讨了OOD泛化问题,从定义、方法、评价到启示和未来发展方向。
UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解
1. 实现是软件工程的最后阶段,它描述了程序...10. 两个参与者(actor)之间可以有包含(include)关系、扩展(extend)关系或泛化(generalization)关系,而包含关系和扩展关系是依赖(dependency)关系的版型。( F )
基于图的半监督学习算法的推广误差,陈洪,李落清,半监督学习算法近几年来研究十分活跃,许多方法被引入.这些方法在仿真实验和实际数据处理中显示出良好的性能.但是其算法的理论基础
分布外泛化(OOD)对人类来说是一种很自然的能力,但对机器来说是一个挑战。这是因为大多数学习算法强烈地依赖于源/目标数据的i.i.d.假设,而在实践中,由于域转移,这经常违背IID。领域泛化(DG)的目标是仅使用源数据...
在我们的实证研究中,我们使用两种类型的预测任务来评估25种复杂性度量(从 )与一个深度学习网络系列在乳房超声图像上的泛化行为之间的相关性:(i)分类,以及(ii)联合分类和细分。 在受控的实验设置中,我们...
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖
域泛化(DG),即分布外泛化,近年来引起了越来越多的关注。领域泛化处理一个具有挑战性的设置,其中给出了一个或几个不同但相关的领域,目标是学习一个可以泛化到看不见的测试领域的模型。
一部分 基础篇 第1章 绪论 3 1.1 统一建模语言UML 3 1.1.1 UML的背景 3 1.1.2 UML的发展 3 1.1.3 UML的内容 5 1.1.4 UML的主要特点 5 1.1.5 UML的功能 6 1.1.6 UML的组成 7 1.2 Rational统一过程(Rational Unified ...
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 原创
其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)...
UML类图几种关系的总结: 常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
(1)泛化(Generalization):狗与动物(空箭头)(2)关联(Association):公司与员工有特定的某种关系(实线)(3)依赖(Dependency):人依赖螺丝刀(虚线箭头)(4)聚合(Aggregation):电脑和CPU,主板(菱形空间头)详细展开:一....
weak-to-strong-generalization.pdf
加性噪声信道下学习通信的泛化界和算法_Generalization Bounds and Algorithms for Learning to Communicate over Additive Noise Channels.pdf
generalization theory to partially address an open problem regarding the generalization of deep learning. Unlike previous bound-based theory, our main theory is quantitatively as tight as possible ...