用例图的基本概念及其使用方式(包含案例)

一、引言

        用例(Use Case),是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。此概念“用例”的提出者为Ivar Jacobson。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。编写用例时要避免使用技术术语,而应该用最终用户或者领域专家的语言。用例一般是由软件开发者和最终用户共同创作的。

        用例图(Use Case Diagram),描述用例的图形。用例图包含一组用例。每一用例用椭圆表示,放置在矩形框中;矩形框表示整个系统。矩形框外画如图所示的小人,表示参与者。参与者不一定是人,可以是其他软件、硬件等等。某一参与者与某一用例用线连起来,表示该参与者和该用例有交互。

        之所以写这一份博客是因为网上有许多人都在博客中总结,但是,总结得并不是十分到位,同时也没有达成统一的标准(例如,参与者与用例之间的关系,一些博客用直线加箭头描述,而另一些箭头用直线描述,其实这是两种规范,前者是Alistair Cockburn风格、在书籍Writing Effective Use Cases中被使用,而后者是原始的风格。所以本篇博客浅浅记录一下基本的概念,以及正确的使用案例,方便自己日后的开发工作更高效、正确地开展。

二、用例图的基本概念及其正确使用方式

图标描述说明
软件系统

用于框选用例,也有些为了方便没画的,因为用例实在太多。比较规范的画法是需要加上。

参与者参与者名称一般写在小人下面。
参与者与用例的关系有些没有箭头,有些有箭头(指向用例),但都是正确的。
用例用例名称可写在椭圆内或椭圆下面。
用例扩展关系虚直线+箭头+<<extend>>
用例包含关系虚直线+箭头+<<include>>
用例泛化关系直线+小等腰三角形

三、用例图案例

        1、普通用例图:酒店管理系统。这里简单地说明一下,参与者一般不只有一个。一个用例可以理解为一个功能需求。这上面的图存在两个参与者,分别是Customer(顾客)和Hotel Counter Staff(酒店柜台员工);存在三个功能,分别是Reserve Room(预订房间)、Check In Customer(办理入住)和Check Out Customer(结账)。

        2、扩展关系。扩展用例可以在原有用例中添加新的行为。用例技术能够简洁地把新的行为描述从基用例中完全独立出来,因而,基用例不会受到新行为细讲的影响。例如,下面给出了一个简单的扩展用例,

        这里对上面的这个用例图进行一下说明。关系关系,一定是某某和某某之间的二者关系。而这里值得注意的是,Handle Waiting List是Reserve Room的扩展(同时注意看箭头,谁箭头指出去,谁就是扩展)。其中,执行的时候会在Reserve Room里面的某个步骤(更细粒度地看)调用Handle Waiting List,然后当Handle Waiting List执行完毕时,整体也就执行完毕了。大概的执行步骤为:

        3、包含关系。包含关系是最好理解的。两个用例A和B,要么是A包含B,或者是B包含A,二者的区别在于谁指向谁。比如下面这个例子,

        这个例子是Reserve Room和Check In Customer这两个用例同时包含Check Room Details。这里请注意一下箭头的方向哈。然后包含关系的执行步骤大概是这样子的,

        大概绕了一个圈。(上面这个图有个小error,就是Details没带s,书本印刷错误)

        4、泛化关系。用例泛化是对用例模型结构化的另一种技术。它与类的泛化含义相同,意味着用例之间存在“is-a-kind-of”的关系(子用例is-a-kind-of父用例)。例如,

四、总结

        在大学读书的时候我们平时画的都是简单、普通的用例图,时常没有理解拓展关系和包含关系之间的联系和区别。现在再重新温习了用例图的知识,有一种温故知新的感觉。扩展关系看上去像一个程序分支,而包含关系看上去像一个函数调用另一个函数。我感觉如果能够将用例图画好,很多软件需求的业务逻辑都可以捋得很顺。希望博客能够帮助到你,不懂的地方咱们评论区见。

        备注:该博客参考了书籍《基于用例的面向方面软件开发》,不懂的同学也可以自行下载、阅读。

五、参考资料

        1、维基百科

        2、百度百科

        3、Ivar Jacobson、Pan-Wei Ng,基于用例的面向方面软件开发(徐锋译)

        4、用例图中include和extend的含义

        5、用例图中的各种关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/83101.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio实现读取本地相册文件并展示

目录 原文链接效果 代码activity_main.xmlMainActivity 原文链接 效果 代码 activity_main.xml 需要有一个按钮和image来展示图片 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk…

亚信科技AntDB数据库连年入选《中国DBMS市场指南》代表厂商

近日&#xff0c;全球权威ICT研究与顾问咨询公司Gartner发布了2023年《Market Guide for DBMS, China》&#xff08;即“中国DBMS市场指南”&#xff09;&#xff0c;该指南从市场份额、技术创新、研发投入等维度对DBMS供应商进行了调研。亚信科技是领先的数智化全栈能力提供商…

Nginx的介绍

本资料转载于传智教育-解锁你的IT职业薪未来&#xff0c;仅用于学习和讨论&#xff0c;如有侵权请联系 视频地址&#xff1a;04-Nginx的优点_哔哩哔哩_bilibili 资源文档&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1RlFl92FdxRUqc858JSxPSQ 提取码&#xff1a;12…

极智嘉x吉利汽车 x京东物流,引领汽车行业智慧物流新变革!

近日&#xff0c;中国领先的汽车制造商吉利汽车携手中国领先的技术驱动的供应链解决方案及物流服务商京东物流、全球仓储机器人引领者极智嘉(Geek)&#xff0c;在西安吉利汽车制造基地RDC仓库率先落地SkyPick上存下拣解决方案&#xff0c;实现了全物流链精益化、智能化、一体化…

热电联产在综合能源系统中的选址定容研究(matlab代码)

目录 1 主要内容 目标函数 程序模型 2 部分代码 3 程序结果 1 主要内容 该程序参考《热电联产在区域综合能源系统中的定容选址研究》&#xff0c;主要针对电热综合能源系统进行优化&#xff0c;确定热电联产机组的位置和容量&#xff0c;程序以33节点电网和17节点热网为例…

70 # 协商缓存的配置:通过修改时间

对比&#xff08;协商&#xff09;缓存 比较一下再去决定是用缓存还是重新获取数据&#xff0c;这样会减少网络请求&#xff0c;提高性能。 对比缓存的工作原理 客户端第一次请求服务器的时候&#xff0c;服务器会把数据进行缓存&#xff0c;同时会生成一个缓存标识符&#…

传统车间VS数字化车间,以MES为核心打造智能工厂!

传统车间的生产制造场景往往存在着信息沟通不顺畅&#xff0c;传达不到位的情况&#xff0c;导致生产效率受影响。 其次车间数据的“缓存期”偏短&#xff0c;无法进行长时间的复盘总结&#xff0c;从而难以发现企业管理问题&#xff0c;无法持续改善。 随着大数据、工业互联…

【大虾送书第六期】搞懂大模型的智能基因,RLHF系统设计关键问答

目录 ✨1、RLHF是什么&#xff1f; ✨2、RLHF适用于哪些任务&#xff1f; ✨3、RLHF和其他构建奖励模型的方法相比有何优劣&#xff1f; ✨4、什么样的人类反馈才是好的反馈 ✨5、RLHF算法有哪些类别&#xff0c;各有什么优缺点&#xff1f; ✨6、RLHF采用人类反馈会带来哪些局…

【UniApp开发小程序】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】

文章目录 界面效果界面实现工具js页面日期格式化 后端收藏ControllerServicemapper 评论ControllerServiceMapper 商品Controller 阅读Service 界面效果 【说明】 界面中商品的图片来源于闲鱼&#xff0c;若侵权请联系删除 【商品详情】 【评论】 界面实现 工具js 该工…

【虫洞攻击检测】使用多层神经网络的移动自组织网络中的虫洞攻击检测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Web网页浏览器远程访问jupyter notebook服务器【内网穿透】

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook&#xff0c;它是一个交互式的数据科学和计算环境&#xff0c;支持多种编程语言&#xff0c;如…

zotero在不同系统的安装(win/linux)

1 window系统安装 zotero 官网&#xff1a; https://www.zotero.org/ 官方文档 &#xff1a;https://www.zotero.org/support/ (官方)推荐常用的插件: https://www.zotero.org/support/plugins 入门视频推荐&#xff1a; Zotero 文献管理与知识整理最佳实践 点击 exe文件自…

安全学习DAY17_信息打点-语言框架组件识别

信息打点-WEB打点-语言框架&开发组件 文章目录 信息打点-WEB打点-语言框架&开发组件本节涉及链接&工具本节知识&思维导图基础概念介绍框架&#xff1a;组件&#xff1a;Web架构 对应Web测试手法后端&#xff1a;前端组件&#xff1a;java居多&#xff0c;框架&…

物联网在制造业中的应用

制造业目前正在经历第四次工业革命&#xff0c;物联网、人工智能和机器人等技术进步正在推动行业的发展。研究表明&#xff0c;到2024年&#xff0c;全球制造商将在物联网解决方案上投资700亿美元&#xff0c;许多制造商正在实施物联网设备&#xff0c;以利用预测性维护和复杂的…

LeetCode450. 删除二叉搜索树中的节点

450. 删除二叉搜索树中的节点 文章目录 [450. 删除二叉搜索树中的节点](https://leetcode.cn/problems/delete-node-in-a-bst/)一、题目二、题解方法一&#xff1a;递归&#xff08;一种麻烦的方法&#xff09;方法二&#xff1a;优化后的递归 一、题目 给定一个二叉搜索树的根…

系统架构设计专业技能 · 信息安全技术

系列文章目录 系统架构设计专业技能 网络技术&#xff08;三&#xff09; 系统架构设计专业技能 系统安全分析与设计&#xff08;四&#xff09;【系统架构设计师】 系统架构设计高级技能 软件架构设计&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 …

C++入门知识点——解决C语言不足

&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️ &#x1f4a5;个人主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王&#x1f525;&#x1f525;&#x1f525; &#x1f4a5;代码仓库&#xff1a;&#x1f525;&#x1f525;魔…

PgSQL中的DATE_PART使用

用法&#xff1a; DATE_PART(field, source) 这个DATE_PART()函数返回类型为double precision的值 century decade year month day hour minute second microseconds milliseconds dow doy epoch isodow isoyear timezone timezone_hour timezone_minute

扩散模型实战(四):从零构建扩散模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 本文以MNIST数据集为例&#xff0c;从…

【论文阅读】CONAN:一种实用的、高精度、高效的APT实时检测系统(TDSC-2020)

CONAN&#xff1a;A Practical Real-Time APT Detection System With High Accuracy and Efficiency TDSC-2020 浙江大学 Xiong C, Zhu T, Dong W, et al. CONAN: A practical real-time APT detection system with high accuracy and efficiency[J]. IEEE Transactions on Dep…