(1) 关联关系

关联关系是指执行者与用例之间的关系,又称为通信关系,如果某个执行者可以对某个用例进行操作,它们之间就具有关联关系,如下图所示,“经理”有一个功能为“查看库存报表”,因此可以在执行者“经理”和用例“查看库存报表”之间建立一个关联关系,关联关系用实线表示。

(2) 泛化关系

执行者之间的关系只有一种,即泛化关系,用一个带有空心三角形的实线表示,如下图所示,在该图中,仓库管理员、系统管理员、经理都是员工的一种,因此员工拥有的功能这三者都拥有,如登录、修改个人信息等,为了减少用例的个数并且使系统更加符合面向对象设计规范,可以对执行者进行泛化,将各类执行者都具有相同的功能移至父执行者,而将每类执行者特有的功能保留在子执行者中。

常见的用例之间的关系有两种,分别是包含关系和扩展关系,下面介绍这两种关系的含义以及在用例图中如何表示。

(3) 包含关系

如果多个用例都具有一部分相同的行为,可以将这部分相同的行为作为一个单独的用例抽取出来,与原来的用例形成一个包含关系。如仓库管理员在进行入库、出库等操作之前需要先登录,登录是入库、出库流程的基本组成部分,因此用例“入库”和“出库”包含用例“登录”。为了更加清晰地描述多个用例的相同行为,在用例图中提供了用例与用例之间的包含关系。

在UML中,包含关系用依赖线(虚线)加一个<<include>>表示,由原始用例指向包含用例,如下图所示:

(4) 扩展关系

扩展关系又称为延伸关系,如果一个用例在执行时可能会使用到另一个用例,或者使用一个新的用例对原有用例的行为进行扩展时可以使用扩展关系,如仓库管理员在入库时发现某种商品在系统中暂不存在,则可以增加新的商品信息;如果入库商品均已存在,则无需增加商品信息,此时用例“增加商品信息”可以作为用例“入库”的扩展用例。在需要扩展的用例(原始用例)中需指定一个扩展点(即需扩展的位置),在下一节编写用例文档中将学习如何设置扩展点。

在UML中,包含关系用依赖线(虚线)加一个<<extend>>表示,由扩展用例指向原始用例,如下图所示:

关于包含关系和扩展关系箭头的指向,可以记住两句口诀:包含进来,箭头向外;扩展出去,箭头向里。

除了上述的包含关系和扩展关系外,用例之间还存在一种与执行者泛化类似的泛化关系,但不太常见,在这里不予以详细介绍。

UML用例建模解析(二)---------用例执行者之间关系的更多相关文章

  1. UML用例建模解析(一)----------用例概述

    UML(统一建模语言): 1. 绘制用例图 用例图是UML中比较简单的一种图形,它包含两个主要组成元素,分别是执行者(Actor)和用例(Use Case).执行者又称为参与者或角色,用例又称为用况或 ...

  2. 再学UML-UML用例建模解析(二)

    (1) 关联关系 关联关系是指执行者与用例之间的关系,又称为通信关系,如果某个执行者可以对某个用例进行操作,它们之间就具有关联关系,如下图所示,“经理”有一个功能为“查看库存报表”,因此可以在执行者“ ...

  3. 再学UML-UML用例建模解析(一)

    UML(统一建模语言)是当前软件开发中使用最为广泛的建模技术之一,通过使用UML可以构造软件系统的需求模型(用例模型).静态模型.动态模型和架构模型.UML通过图形和文字符号来描述一个系统,它是绘制软 ...

  4. 再学UML-UML用例建模解析(三)

    2. 编写用例文档 绘制用例图只是完成了用例建模最基本也是最简单的一步,用例建模的核心在于编写用例文档,用例文档又称为用例规约或用例描述.顾名思义,用例文档是用于描述用例的文档,每一个用例对应于一个用 ...

  5. UML 用例建模

    用例建模      用例建模的主要功能是表达系统的功能性需求或行为.主要包含用例图和用例描述,其中用例图由参与者.用例.系统边界和箭头组成,用例描述以文本文档的形式详细的描述了用例图中的每个用例.   ...

  6. Uml学习-用例建模简介

    用例建模简介  用例建模是UML建模的一部分,它也是UML里最基础的部分.用例建模的最主要功能就是用来表达系统的功能性需求或行为.用例图重点描述用户需求. 它描述需求.用户和主要组件之间的关系. 它不 ...

  7. UML建模语言入门 -- 用例视图详解 用例视图建模实战

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...

  8. 【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...

  9. 使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处

    使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处   作者:Arthur V. English 出处:IBM   本文内容包括: 背景 业务用例模型与系统用例模型有什么相似之处? 业 ...

随机推荐

  1. C语言结构体数组内带字符数组初始化和赋值

    1.首先定义结构体数组: typedef struct BleAndTspRmtCmd{ char terminal[3]; char note[3]; char rmtCmd[10]; char c ...

  2. [转载]H5项目常见问题汇总及解决方案

    本文转载自:http://www.open-open.com/lib/view/open1449325854077.html Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 / ...

  3. MySQL中一致性非锁定读

    一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据,如果读取的行 ...

  4. Python 网络编程——socket

    一 客户端/服务器架构 客户端(Client)服务器(Server)架构,即C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) 理想/目标状态—— 最常用的软件服务器是 ...

  5. c#下载文件,最简单代码

    /// <summary> /// 下载文件 /// </summary> /// <param name="url">下载地址</par ...

  6. SpringBoot入门1—简介及helloworld

    Spring Boot简介 Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运行一个Spring引用.你也可以打包你的应用为jar并通过使用java - ...

  7. re模块(Python中的正则表达式)

    re模块 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...

  8. 剑指offer 面试21题

    面试21题: 题目:调整数组的顺序使奇数位于偶数前面 题一:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 解题思路:使用两个指针 ...

  9. Get Region Information from IP Address with Taobao API

    通过淘宝的API "http://ip.taobao.com/service/getIpInfo.php?ip=*.*.*.*" 来获得你要查询的IP地址的国家,地区,城市,ISP ...

  10. 怎样在不对控件类型进行硬编码的情况下在 C#vs 中动态添加控件

    文章ID: 815780 最近更新: 2004-1-12 这篇文章中的信息适用于: Microsoft Visual C# .NET 2003 标准版 Microsoft Visual C# .NET ...