此贴转自:peterwei (主题:UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系--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比较合适。
分享到:
相关推荐
在"UseCase Diagram.rar"中,我们可以看到不同用例的表示方式,每个用例通常由一个椭圆形表示,描绘了系统的一个功能或操作。用例图中还包括参与者(Actor),他们通常是系统外的实体,如用户、硬件设备等,由一根...
《2024年手把手带你学UML建模用例图(Use Case Diagram)详解》是一篇面向初学者的全面指南,以易懂的语言介绍了用例图的基础知识。文章从UML的基本概念讲起,逐步引导读者学习用例图的基本元素(如参与者、用例、关系...
首先,我们来探讨用例图(Use Case Diagram)。用例图是描述系统功能的一种模型,主要展示了系统中主要角色(Actors)与他们所能执行的操作(Use Cases)之间的关系。在图书管理系统中,角色可能包括管理员、读者和...
construct the Automatic Teller Machine with the help of ‘Use-case diagram’, where you show the following things: Customer uses ATM machine:- for balance inquiry Cash Deposit/withdrawal/...
用例图(Use Case Diagram)是软件开发的另一个重要模型,它用于描述系统中的用例和actor之间的交互关系。用例图可以帮助软件开发者更好地理解系统中的用例流程,identify系统中的主要用例和它们之间的交互关系。在...
它包括多种图表,其中用例图(Use Case Diagram)是描绘系统功能和用户交互的重要手段。在本篇中,我们将深入探讨如何使用UML用例图来设计一个订餐系统。 首先,让我们理解用例图的基本元素。用例图由以下几个关键...
4. 使用案例图(Use Case Diagram):可视化工具,用于展示参与者与使用案例之间的关系。 三、使用案例建模步骤 1. 识别参与者:首先确定与系统交互的所有实体,了解他们的角色和需求。 2. 描述使用案例:为每个...
4. **用例图(Use Case Diagram)**:是UCM的核心可视化工具,用于图形化表示用例、参与者以及它们之间的关系。用例图能帮助团队快速理解系统的功能概览。 5. **用例描述(Use Case Specification)**:每个用例都...
UML use case diagram, class diagram, package diagram, object diagram, composite structure diagram, interaction diagram, sequence diagram, communication diagram, interaction overview diagram, activity...
- **Diagram**: 选择要绘制的UML图类型,如类图(Class Diagram)、用例图(Use Case Diagram)、活动图(Activity Diagram)或序列图(Sequence Diagram)等。 ### 3. Jude绘图介绍 #### 3.1 删除与恢复 - **...
4. **用例图(Use Case Diagram)**:用例图展示了系统外部参与者(如用户)与系统内部功能(用例)的交互,有助于理解系统的需求和范围。 5. **状态图(State Diagram)**:状态图描绘了对象在其生命周期内可能经历的...
UML的用例图(Use Case Diagram)是其中一种重要的模型类型,用于描述系统功能需求,展示系统与用户交互的行为模式。本文将深入探讨UML 2用例图的设计准则,包括用例、参与者(Actors)、关系以及系统边界盒的绘制...
- **用户案例图(Use Case Diagram)**:介绍如何创建演员(Actors)、使用案例(Use Cases)和它们之间的连接线,包括`Extend`和`Include`关系的使用。 - **类图教学(Class Diagram)**:学习如何定义类、接口及其关系...
"Uml Case Class 流程图"指的是使用UML中的用例图(Use Case Diagram)和类图(Class Diagram)来描述系统的需求、行为以及类结构。在这个压缩包中,包含的源文件可能是SVG、PNG或Visio等格式,允许用户查看并进行...
在本场景中,"atm diagram"可能指的是类图(class diagram)、用例图(use case diagram)以及数据库表图(database tables diagram)的组合,这些都是系统设计和分析的重要组成部分。 1. **类图(Class Diagram)*...
4、熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Object diagram(对象图,Rose中没有)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)...
除了Use Case Diagram,JUDE还支持绘制其他类型的UML图,例如Class Diagram、Activity Diagram和Sequence Diagram。每种图都有其特定的元素和规则,用户可以通过学习和实践掌握这些图的绘制技巧。 总结来说,JUDE是...
##### 步骤2:打开Main Use Case Diagram 1. **打开Use Case视图** - 在左侧导航栏中点击“Use Case View”文件夹旁边的+号展开视图列表。 - 双击命名为“Main”的图标以打开Use Case图。 ##### 步骤3:添加...