此贴转自: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比较合适。
分享到:
相关推荐
UML课程设计详细的用例图 类图 开发视图 用况模型 比较详细
《2024年手把手带你学UML建模用例图(Use Case Diagram)详解》是一篇面向初学者的全面指南,以易懂的语言介绍了用例图的基础知识。文章从UML的基本概念讲起,逐步引导读者学习用例图的基本元素(如参与者、用例、关系...
图书管理案例 有详细的用例图,时序图等等
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/...
ATM高级开发用例图设计文档ATM use case diagram advanced development design documents
UseCase中的扩展表示一个UC有可能扩展到另外一个UC的功能。UseCase中的扩展通常暗示一个选择性流程。包行关系表示源元素包行目标元素的行为,UC中的包含关系就是一个UC中包行另外一个UC的行为功能。用包行关系可以...
UML use case diagram, class diagram, package diagram, object diagram, composite structure diagram, interaction diagram, sequence diagram, communication diagram, interaction overview diagram, activity...
任何建模语言都以静态建模机制为基础,标准建模语言UML... 用例图(Use case diagram) 类图(Class diagram) 对象图(Object diagram ) 包图(Package diagram) 构件图(Component diagram) 配置图(Deployment diagram)
1. Please draw two data flow diagrams for creating a new document(including buli
4、熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Object diagram(对象图,Rose中没有)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)...
3.1 UML 2 Use Case Diagram 21 3.1.1 Use Case Model 21 3.1.2 Use Case Definition 22 3.2 UML 2 Activity Diagram 24 3.2.1 Activity Diagrams 24 3.3 UML 2 State Machine Diagram 30 3.3.1 State Machine ...
在Visual Studio 2010塑模(Modeling)增加了對UML的支援,目前可以繪製活動圖(Activity Diagram)、元件圖(Component Diagram)、類別圖(Class Diagram)、順序圖(Sequence Diagram)、使用案例圖(Use Case Diagram)等五...
《UML建模-面向对象设计》系列文章描述了常见的一些UML图,主要包括了用例图(Use Case Diagram)、类图(Class Diagram)、活动图(Activity Diagram)、时序图(Sequence Diagram)、状态图(Statechart Machine ...
在UML中,把用用例图建立起来的系统模型称为用例模型,一个用例模型若干个用例图... 一幅用例图(use case diagram)包含的模型元素有系统、行为者、用例及用例之间的关系,是显示一组用例、角色以及它们之间的关系的图。
the state machine diagram, the activity diagram, and the use case diagram), as well as their interrelationships, in a step-by-step manner. The topics covered include not only the syntax and the ...
此版本在新建工程后并不会自动出现 UseCase Diagram /Class Diagram.但可以点击显示屏上方的Diagram,会出现那两个选项,点击UseCase Diagram和Class Diagram,相应图标选项就会出现在在新建项目的选项下面。点击Use...
A Couple of Thoughts on Use Case Templates. . . . . . . . . . . . . . . . . . 74 Use Case or Algorithm?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Use Case Modeling in...
需求角度: 可以用功能結構或是use case diagram 來表達。 結構角度: 可以用 erd, composite diagram, component diagram 或是 class diagram 來表達。 實作角度: 可以用 client-server, MVC 示意圖來表達。 架構不是...
用例图(use case diagram): 是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。用例图也经常和其他图表配合使用。 状态图(Statechart...