在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(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比较合适。
- 大小: 48 KB
- 大小: 101.1 KB
分享到:
相关推荐
理解 UML 用例图中的包含、扩展、泛化关系 UML 用例图是Unified Modeling Language(统一建模语言)中的一种图形表示方法,用于描述系统的功能和行为。在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间...
UML 用例图的包含、扩展、泛化的详细阐述 UML 用例图是一种重要的建模工具,用于描述系统的功能和行为。在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间的区别和应用场景是开发者需要掌握的重要知识。...
《UML用例图实例讲解》 UML(统一建模语言)是软件开发中用于系统建模的重要工具,其中用例图是描述系统功能需求的关键图表。本章将深入探讨用例图的概念、建模技术和一个实际的图书馆管理系统用例图的案例。 5.1 ...
### UML用例图详解 #### 一、UML用例图概述 UML(统一建模语言)用例图是一种用于系统需求分析的重要工具,它着重于展示系统与外部参与者之间的交互,以及系统需要提供的服务。用例图是UML中的一种静态视图,用于...
**UML用例图实例讲解** UML(统一建模语言)是软件开发过程中的一种标准化建模工具,它提供了一套图形化的方式来描述系统的行为、结构和关系。在UML中,用例图(Use Case Diagram)是描述系统外部参与者(Actor)与...
UML(统一建模语言)是软件开发中用于可视化、构造和文档化的标准工具,其中用例图是一种重要的图表类型,它描绘了系统与外部用户,即活动者之间的交互。用例图提供了一个高层次的视角,展示了系统的核心功能及其与...
《UML用例图实例讲解》 UML(统一建模语言)是软件开发中用于可视化、构建和文档化系统模型的重要工具。其中,用例图(Use Case Diagram)是UML的一种静态视图,主要用于描绘系统的主要角色、用例以及它们之间的...
### UML用例图详解及应用场景 #### 一、引言 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化语言,用于描述软件系统的架构、行为和实现细节。其中,**用例图**是UML中最直观...
UML 用例图是对系统的功能模型化,包括六个元素:执行者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。 在 UML 用例图中,每个...
学习UML用例图,不仅能够帮助我们梳理需求,还能促进团队间的沟通,使得非技术人员也能理解复杂的系统设计。通过创建和分析用例图,我们可以发现潜在的问题,优化系统设计,确保最终产品的功能符合用户需求。 在...
7. 包含(Include)和扩展(Extend):包含关系表示一个用例包含了另一个用例的行为;扩展关系则表示一个用例可以在特定条件下扩展另一个用例的行为。 二、学习资源 1. 《UML 入门》:这本书可能提供了UML的基础...
### UML用例图详解与初学者指南 #### 一、引言 统一建模语言(Unified Modeling Language,简称UML)是一种广泛应用于软件工程领域的标准化建模语言,旨在帮助软件开发人员更好地理解和构建复杂的软件系统。其中,...
### 机票预定系统用例图知识点详解 #### 一、用例图概述 用例图是一种重要的需求分析工具,主要用于描述系统的外部可见行为以及不同角色与系统交互的方式。它能够清晰地展示系统的功能需求,帮助开发者理解用户的...
在本次UML实验中,主要目的是熟悉和掌握Rose建模工具的运用,并通过构建网上书店的用例图,深入理解如何进行案例需求分析以及UML用例图的建模技术。网上书店系统涉及了多个功能模块,包括用户模块和订单管理员模块,...
**UML用例和用例图详解** UML(统一建模语言)是一种标准化的建模工具,用于软件开发过程中描述系统的行为和结构。在UML中,用例(Use Case)和用例图是重要的建模元素,它们主要用于描述系统功能需求以及参与者与...
选课系统用例图PPT学习教案是一份关于用例图的学习教案,主要介绍了用例图的定义、元素、类型、用例图的绘制方法、参与者的种类、用例的识别、用例与事件流、用例间的关系等知识点。下面是对这些知识点的详细解释: ...
3. **关系(Relationship)**:关系包括泛化(Generalization)、包含(Include)和扩展(Extend)。泛化关系意味着一个用例是另一个更具体用例的超集;包含关系表示一个用例可以包含其他用例的行为;扩展关系则表示...
### 超市管理系统UML类图和用例图知识点详解 #### 1. 用例和用例图 ##### 1.1 什么是用例和用例图 用例是一种描述系统行为的方式,它主要从用户的视角出发,定义了系统应该具备的功能。一个用例通常包括了一系列...