目录​​​​​​​

用例图

用例图涉及的关系

关联关系

泛化关系

包含关系

扩展关系

包含关系和扩展关系的区别


用例图

用例图展现了一组用例、参与者以及它们之间的关系。

用例图主要包含以下内容:

1、用例;

2、参与者;

3、用例之间的扩展关系(<<extends>>);

4、用例之间的包含关系(<<include>>);

5、用例之间的泛化关系;

用例图用于对系统的静态用例视图进行建模。这个视图主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。

当对系统的静态用例视图建模时,可以用下列两种方式来使用用例图。

(1)、对系统的语境建模。对一个系统的语境进行建模,包括围绕整个系统画一条线,并声明有哪些参与者位于系统之外并与系统进行交互。在这里,用例图说明了参与者以及它们所扮演的角色含义。

(2)、对系统的需求建模。对一个系统的需求进行建模,包括说明这个系统要做什么,即从系统外部的一个视点出发,而不是考虑系统怎么做。用例图说明了系统想要的行为。通过这种方式,用例图使我们能够把整个系统看作一个黑盒子,采用矩形框表示系统边界;可以观察到系统外部有什么,系统怎样与哪些外部事物相互作用,但却看不到系统内部如何工作的。

我的理解是,用例一定是一个动词,即某个动作,参与者通过系统能做什么,达到什么目的。

用例图涉及的关系

用例图中关系有:关联、泛化、包含、扩展。

关联关系

关联关系表示参与者与用例之间的关系,参与者与用例之间的通信,两者之间可以互相接收消息。

其中,关联关系使用一条没有箭头的实线表示。

泛化关系

泛化关系是一种继承关系,描述的是一般用例与特殊用例之间的关系,子用例继承基用例的所有结构、行为和关系。子用例可以新增新的行为、结构,或者重载父类的行为。

其中,泛化关系使用表示,空心箭头指向父用例。

包含关系

当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以包含关系中的用例必须和子用例一起使用才够完整,子用例也必然被执行。

+

其中,包含关系使用表示,由虚线、<<include>>以及箭头组成,箭头指向被包含的用例。

扩展关系

扩展关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。扩展的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。

其中,扩展关系用 表示,由虚线、<<extend>>以及箭头组成,箭头指向基础用例。

包含关系和扩展关系的区别

  1. 扩展关系中基本用例的基本流执行时,扩展用例不一定执行,只有在基本用例满足某种特定条件时才会执行;
  2. 包含关系中基本用例基本流执行时,包含用例一定执行。
  3. 两者都是从原来用例中抽取出来公共行为封装起来作为一个新的用例,供基本用例重用,提高模型的重用性。

一篇文章彻底搞清楚UML的用例图以及其中的关系相关推荐

  1. 一篇文章彻底搞懂Android事件分发机制

    本文讲的是一篇文章彻底搞懂Android事件分发机制,在android开发中会经常遇到滑动冲突(比如ScrollView或是SliddingMenu与ListView的嵌套)的问题,需要我们深入的了解 ...

  2. [UML]UML系列——用例图中的各种关系(include、extend)

    [UML]UML系列--用例图中的各种关系(include.extend) 原文:[UML]UML系列--用例图中的各种关系(include.extend) 用例图中的各种关系 一.参与者与用例间的关 ...

  3. UML科普文,一篇文章掌握14种UML图

    前言 上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈. 什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言, ...

  4. 图书馆的uml概念类图怎么画_UML科普文,一篇文章掌握14种UML图

    前言 上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈. 什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言, ...

  5. 搭建简易个人博客(一篇文章就搞定!)

      搭建我的个人博客这个想法很早就有了,之前仅仅了解到在CSDN和博客园上可以创建我自己的主页,但感觉很没有趣味性,也就没有实施.偶然在B站上看到搭建动态和静态博客的教程,维护和建设自己亲手搭建好的网 ...

  6. 【工业机器人】工业机器人最全面基础知识科普,一篇文章彻底搞透

    目前最火的工业机器人的技术其实离我们并不遥远,相信看完这些PPT,您就会对工业机器人技术有一个系统而全面的了解! ☞来源: 金属加工 工业机器人的内部结构 工业小咖  一.机器人驱动装置 概念:要使机 ...

  7. Xposed精品连载 | 一篇文章彻底搞定安卓刷机与Root

    前言 adb与fastboot 开启开发者选项 开启USB调试 Bootloader解锁 如何进入Bootloader模式 刷机 Root 安卓是基于Linux内核的一个移动操作系统.在Linux这种 ...

  8. git使用教程-一篇文章全搞定哦

    Git使用教程 Git是什么 文章转载自 代码飞:https://code.bywind.cn/2018/07/14/170/ Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项 ...

  9. 一篇文章全搞懂!B2B

    作为一名刚入行不久的电商新人,时常被各种专业名词搞的晕头转向,公司开会或者行业交流时候没听懂也只能假装呵呵一笑(话说这种呵呵一笑是什么态度!摔).痛心疾首,小编决定总结近期所有我听过的没听过的互联网专 ...

最新文章

  1. hadoop生态搭建(3节点)-06.hbase配置
  2. Android sqlite 数据库保存Date 类型
  3. python sanic部署_Sanic框架配置操作分析
  4. 怎么学python-如何轻松学习Python数据分析
  5. zoj-3802-Easy 2048 Again
  6. 前端学习(527):等分布局第二种方案
  7. jQuery高度及位置操作
  8. linux动态链接库的创建
  9. 工具的使用——谷歌浏览器(chrome) (二)
  10. WireShark 查看UDP码流的丢包率
  11. 同文输入法 android,同文输入法app下载-同文输入法手机版-同文输入法最新版_易玩网...
  12. jstack排查cpu使用率过高
  13. [聊天机器人]:开源ChatterBot工作原理
  14. 系统即将关机请保存关机是由nt_Win7旗舰版系统下开机提示自动关机是由NT AUTHORITY SYSTEM初始如何解决...
  15. Django配置连接SqlServer(版本Django3.2.5,python3.9)
  16. 超级3合1U盘维护系统
  17. java url hostname_如何从URL字符串中提取主机名和端口?(How to extract hostname and port from URL string?)...
  18. Oracle utl_http post响应报文乱码
  19. 奇文共欣赏——《史记·陈冠希本纪》
  20. Oracle 11g 64位 下载

热门文章

  1. C#开发AGV地图编辑软件 (一)
  2. cup处理器的编号详情
  3. Kyligence:深耕大数据 拓展全球“朋友圈”
  4. 支付宝支付——当面付
  5. php 两个时间戳相隔小时数,php 计算两个时间戳相隔的时间的函数(小时)_PHP教程...
  6. Java 200道题
  7. android通讯录操作批量查询删除更新头像vcf文件写入读取便捷方法
  8. Hadoop综合案例 - 聊天软件数据
  9. c#和java部署pytorch同事识别两个图片_人脸识别漏洞频出?这里有个开源静默活体检测算法,超低运算量、工业级可用...
  10. Fiddler_IE浏览器打开网页提示安全证书过期或证书错误的解决方法