文章目录

  • 一、用例图概念
  • 二、用例图三元素
    • (一)参与者(Actor)
    • (二)用例(Use Case)
    • (三)关系(Relation)
      • 1、关联关系(Association)
      • 2、包含关系(Include Relation)
      • 3、扩展关系(Extend Relation)
      • 4、泛化关系(Generalization)
  • 三、创建用例图
    • (一)电话机的用例图
    • (二)带录音功能电话机的用例图
    • (三)电梯运行用例图
    • (四)用户登录用例图

一、用例图概念

  • 用例图 (Use Case Diagram)主要用于描述系统的行为及各种功能之间的关系,是描述参与者(Actor)与用例(Use Case)以及用例与用例之间关系 (Relation)的图。
  • 用例图 = 参与者 + 用例 + 关系
  • 用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。描述参与者与用例之间的关系,帮助开发人员可视化了解系统功能。

二、用例图三元素

(一)参与者(Actor)

  • 参与者可以是人或其他外界系统。参与者是用例的启动者,参与者处于用例的外部并且能够初始化一个用例并参与用例的执行过程,但它并不是系统的一部分。每个参与者可以参与一个或多个用例。

(二)用例(Use Case)

  • 用例是一组动作序列(业务工作流程)的描述,系统执行该动作序列为系统的参与者产生一个可观察的结果。 用例反映用户的需求。用例是系统的使用过程,是对系统的用户功能需求的描述,用例表达了系统的功能和所提供的服务。

(三)关系(Relation)

1、关联关系(Association)

  • 参与者与用例之间进行关联。表示参与者可以启动(使用)该用例。
  • Unidirectional Association - 单向关联

2、包含关系(Include Relation)

  • 把几个用例的公共步骤分离成一个单独被包含用例;包含用例称为客户用例,被包含用例称为提供者用例。用例A包含用例B,将A称为基用例,B称为被包含用例。包含关系表示基用例会用到被包含用例。被包含用例的事件流在基用例的某个点处插入到基用例的事件流中。
  • 客户用例与提供者用例之间的包含关系
  • 一个客户用例包含两个提供者用例
  • 两个客户用例包含一个提供者用例

3、扩展关系(Extend Relation)

  • 扩展使得每个用例可以通过扩展用例向基用例中添加额外的行为来扩展基用例的功能。用例A扩展了用例B,那么A称为扩展用例或子用例,B表示为基用例。扩展用例A的事件流在一定的条件下按照相应的扩展点插入到基用例中,这就需要在基用例中定义一至多个已命名的扩展点。
  • 下图为图书管理系统用例图的部分内容。其中“还书”是基础用例,“交纳罚金”是扩展用例。如果读者所借图书没有逾期,则直接执行“还书”用例即可;如果所借图书逾期后才归还,则读者还需要按规定交纳一定的罚金才能完成还书的行为。但是正常的“还书”用例不具备这样的功能,如果更改“还书”用例的设计势必会增加系统的复杂性,这时可以在“还书”用例中增加扩展点,在逾期归还的情况下,将执行扩展用例“交纳罚金”,这种处理方式使得系统更容易被理解。

4、泛化关系(Generalization)

  • 继承,泛化关系是两个用例或两个参与者之间的关系。泛化关系其实可以通俗理解为面向对象关系中的继承。将拥有一种类似的结构和行为的多个用例中的共性抽象为父用例,子用例继承父用例中的全部结构和行为。
  • 在用例的泛化关系中,子用例表示父用例的特殊形式。子用例从父用例处继承行为和属性,还可以添加、覆盖或改变继承的行为。下图所示的父用例为“罚款”,该父用例的3个子用例分别为“损坏图书罚款”、“图书超期罚款”和“遗失图书罚款”。

三、创建用例图

(一)电话机的用例图

  • 普通电话机的主要功能诗“打电话”和“接电话”,打电话和接电话的人统称为“用户”,
  • 创建普通电话机的用例图,操作过程如下图所示。
  • 普通电话机的用例图

(二)带录音功能电话机的用例图

  • 如果电话机具有“电话录音”功能,那么用例图如下图所示

(三)电梯运行用例图

  • 四种参与者:乘客、技术员、保安、前台工作人员
  • 九种用例:乘坐电梯、按钮被按下灯亮、按钮灯灭、求助、维修电梯、关闭电梯、激活电梯、打开地下室、控制电梯

(四)用户登录用例图

  • 三种用户用例跟用户用例之间是泛化关系
  • 三种用户用例与【输入用户名密码】用例和【验证用户身份】用例之间是关联关系
  • 【输入用户名和密码】用例和【非空校验】用例是包含关系

Rational Rose学习笔记02:创建用例图相关推荐

  1. Rational Rose学习笔记01:安装与注册

    文章目录 一.Rational Rose 2003概述 二.安装Rational Rose 2003 (一)下载Rational Rose 2003 (二)安装Rational Rose 2003 三 ...

  2. mysql 学习笔记 02创建表

    表结构的创建 比如: create table userinfo (id int unsigned comment 'id号'name varchar(60) comment '用户名'passwor ...

  3. RN学习笔记02:利用WebStorm创建RN项目

    RN学习笔记02:利用WebStorm创建RN项目 在RN学习笔记01里,安装了node.js与react-native-cli,而且配置了环境变量. 在命令行环境,利用react-native in ...

  4. JavaWeb黑马旅游网-学习笔记02【注册功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  5. JavaWeb-综合案例(用户信息)-学习笔记02【登录功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  6. Tomcat学习笔记02【Tomcat部署项目】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

  7. XML学习笔记02【xml_解析】

    Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 03 xml_解析 xml_解 ...

  8. JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  9. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

最新文章

  1. SAMBA服务和FTP服务讲解(week3_day1)--技术流ken
  2. 如何在自己的博客中搜索
  3. 混频通信的matlab仿真,基于MATLAB的扩频通信系统仿真研究—上海交通大学
  4. 三十六、【减小apk包的体积】
  5. 《王者荣耀》又现登录异常 官方奉上皮肤碎片+战斗经验作补偿
  6. jquery删除替换元素remove、detach、empty、replaceWith、replaceAll
  7. BZOJ-2257 瓶子和燃料 分解因数+数论方面乱搞(裴蜀定理)
  8. 图像上采样和图像下采样
  9. Mac终端命令失效( command not found)/
  10. java使用代理请求https
  11. nmds与mds的区别_常见分析方法 | PCA、PCoA和NMDS有什么区别?
  12. 16秋计算机JAVA第一节课作业(钟永钜)
  13. 【Adobe Premiere Pro 2020】pr2020文字与图形的关键帧制作说明、各类字体添加和字幕创建说【包含动态字幕】、特效添加说明【混合视频剪辑】
  14. 开源基础软件大时代,与国产深度学习框架一起乘风破浪
  15. 2022年4月携程暑期实习 搜索推荐算法岗面试题
  16. 天涯“大鹏金翅明王”语录
  17. 工作三年的java程序员修行之路
  18. 《白帽子讲Web安全》8-文件上传漏洞
  19. 服务器管理员账号sa,一次利用MSSQL的SA账户提权获取服务器权限
  20. python opencv imshow可以显示,但是imwrite却黑乎乎

热门文章

  1. 披星戴月地辛苦割胶或成历史,海南胶园迎来这一“神器”!
  2. 一个数据库管理员的自我救赎之路
  3. 【华为云•云享专家•原创分享计划上线】原创文章征集,寻找与众不同的你
  4. 华为云鲲鹏云服务器RC6正式公测,多元算力加速企业创新升级
  5. pandas中的数据如何转化为张量?
  6. pycharm使用心得
  7. numpy.linspace()的使用方法
  8. android 高质量游戏,你玩过几款?2013年度十大安卓热门游戏大盘点
  9. 三级哪个不用学c语言,考全国计算机等级考试三级如何学C语言
  10. Deppin系统软件打开备注