zoukankan      html  css  js  c++  java
  • UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系

    说来惭愧,这些天在写需求文档,因为是第一次写,所以遇到了很多很多的问题,比如语句太口语化、措词不正确等等,到时候我专门写一篇有关这方面的文章,全权当做自己的笔记吧!

    今天有一个登入相关的功能,和同一组的同事了讨论了很久才把这个用例图确定下来。诶,就一个简单的用例。。。泪奔中。。。。

    所以,上午查了些资料,看到一篇有关UML的用例图比较好的文章,特此转过来。原来我的转载!。

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

    1.导读

    在看上面转载的文章之前,我在博客园上也看到一些文章,你们如果有兴趣 可以去看看。

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

    【2】:UML 用例图:准则

    2.基本概念

    用例图(Use Case Diagram):用例图显示谁是相关的用户,用户希望系统提供什么服务(用例),以及用例之间的关系图。用例图主要的作用是获取需求、指导测试。

    用例图的4个基本组件:参与者(Actor)、用例(Use Case)、关系(Relationship)和系统。

    泛化(generalization):泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。

    扩展(extend): extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。

    extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从子用例指向基用例。

    包含(include): include为包含关系,当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用 例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。include关系在用例图 中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向子用例。

    3.实例需求场景

    联通客户响应OSS。系统有故障单、业务开通、资源核查、割接、业务重保、网络品质性能等功能模块。现在我们抽出部分需求做为例子讲解。

    需求1:客户响应用户和国际客服可以进行割接通知查询,在页面上有骨干割接查询、省间割接查询、省级割接查询的Tab。 
    分析:可以很容易看出割接查询和不同的割接子查询Tab之间是继承的关系,所以此处用泛化。用户和客户响应、国际客服也是继承的Actor关系。

    需求2:客户响应用户和国际客服可以查看某条割接通知信息,可以在页面上导出割接信息Excel格式,可以查询和该条割接相关联的故障单信息。

    分析:因为导出割接和查看相关联的故障单信息都是可选的,就是说我查看割接的时候,也可以不进行这些操作,所以这里用extend关系。也就是导出割接和查看故障单信息扩展了查看割接信息。

    需求3:客户响应用户可以以网管系统为来源创建割接通知,在创建割接通知时可以保存为草稿,也可以直接发布割接通知。

    分析:由于创建割接通知时,发布割接通知可以同时进行,也可以先存为草稿,所以发布割接是可选的,用extend就比较合适。也就是发布割接扩展了创建割接通知。

    需求4:用户在进行业务开通、发布割接通知、发布重保通知及相关跨省的业务时需要进行数据分发。

    分析:由于业务开通、重保、割接及其它跨省的业务都需要用到数据分发用例,我们可以将数据分发用例单独抽出来,供各业务使用,这里用include就比较合适。实际的系统中数据分发也是单独抽出来用jms和webservice实现的接口服务。

    其它需求:可以看到删除割接通知和查看割接明细也可以做为割接通知查询用例的扩展,因查询列表时,一般可以选择继续查看明细或者删除操作。但在实际化图中,这两个extend可以不画,这里只是为了让大家理解概念。

    用例图:大家可以参照着图,好好理解。

    加深理解

    我们再用另外一个场景的用例说明一下include和extend,因为就这两个玩意比较容易搞混。

    销户:因为销户必需先进行账户结算,所以这里用include

    停机提醒:有两个可选项,短信提醒和邮件提醒,所以用extend.

    4.工具介绍

    Enterprise Architect 7.5所画,在此推荐一下EA,非常不错。可以替代Visio和Rose了。Visio功能不够强大,Rose太重。

    软件下载

    出处:http://www.cnblogs.com/damonlan 

  • 相关阅读:
    maven打包
    Description Resource Path Location Type Project configuration is not up-to-d
    GoldenGate
    maven打包 把要的依赖也打进去 配置
    mysql如何优化where子句
    根据状态计算操作状态
    kafka direct模式
    Kafka Connect
    Kafka Streams
    如何看源码
  • 原文地址:https://www.cnblogs.com/jazzka702/p/2697221.html
Copyright © 2011-2022 走看看