`
mnieguomin
  • 浏览: 25655 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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学习记录.

 

转自: http://www.cnblogs.com/fsjohnhuang/articles/2366085.html

分享到:
评论

相关推荐

    解释UML用例图中包含,扩展、泛化的区别.doc

    解释UML用例图中包含,扩展、泛化的区别.doc 解释UML用例图中包含,扩展、泛化的区别.doc

    UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系

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

    UML用例图的包含,扩展,泛化的详细阐述.doc

    UML用例图的包含,扩展,泛化的详细阐述.doc

    UML用例图中关系详解

    UML中用例图:包含、扩展、泛化三种关系详解。在设计的时候可以参考一下。

    UML用例图总结

    用例图主要用来描述 用户、需求、系统功能单元之间的...用例图中涉及的关系有:关联、泛化、包含、扩展;如下表所示:表示参与者与用例之间的通信,任何一方都可发送或接受消息。【箭头指向】:指向消息接收方就是通常

    UML.zip_uml顺序图

    UML包括事物、关系、图、扩展机制。 (1)事物 结构:类、接口、构件、节点等等。 行为:交互(消息)、状态等等。...用例图、交互图(顺序图、协作图)、类图、活动图、状态图等等。 (4)扩展机制

    图书管理系统uml图

    借书者模块的功能应该包括借书、还书、预定图书、查询个人信息、登录、查询借阅信息等六个功能。 “查询个人信息”是让用户能够修改密码和个人信息。其中,“还书”有一项扩展用例为“超期交纳罚金”。 图书管理员...

    《UML建模实例教程》【PPT】

    5.3.4WebShop电子商城用例图(不含关系) 5.3.5用例描述 5.4用例间的关系 5.4.1泛化关系 5.4.2使用关系 5.4.3包含关系 5.4.4扩展关系 5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模...

    UML那些事儿

     本书通过引用UML规格书里的图例和定义详细介绍了UML的特色和发展历史,六类UML图,元模型的说明,并且以StarUML为示范,讲解UML,工具如何落实UML概念,还介绍了活动图、控制节点、交互图、生命线、用例图等内容。...

    uml 基础、案例与应用(第三版)

    第7章 用例图 68 第8章 状态图 81 第9章 顺序图 90 第10章 协作图 106 第11章 活动图 117 第12章 构件图 133 第13章 部署图 144 第14章 理解包和UML语言基础 152 第15章 在开发过程中运用UML 169 ...

    UML和模式应用(架构师必备).part06.rar

    6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 ...

    UML和模式应用(架构师必备).part07.rar

    6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 ...

    UML和模式应用(架构师必备).part02.rar

    6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 ...

    UML基础、案例与应用(第三版)].施穆勒.扫描版_2分.pdf

    1.3.3 用例图 7 1.3.4 状态图 7 1.3.5 顺序图 8 1.3.6 活动图 9 1.3.7 协作图 10 1.3.8 构件图 11 1.3.9 部署图 11 1.4 其他特征 12 1.4.1 注释 12 1.4.2 关键字和构造型 12 1.5 UML 2.0中的新图 13 1.5.1 组成结构...

    UML实验报告.pdf

    (2) 为用例工具栏添加用例间的"包含"和"扩展"连接符 (3) 添加参与者 (4) 添加用例 (5) 按步骤(3)和(4)反复操作,向用例图中添加其他的 Actor 和其他的 Use Case, (6) 用例的实现 (7) 绘制用例间的...

    \Oracle程序设计.ppt

    UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解

    UML和模式应用(架构师必备).part01.rar

    6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 ...

    UML和模式应用(架构师必备).part03.rar

    6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 ...

Global site tag (gtag.js) - Google Analytics