【UML用户指南】-19-对基本行为建模-用例图

news2024/10/6 2:22:01

目录

1、组成结构

2、表示法

3、一般用法

3.1、对主题的语境建模

3.2、对主题的需求建模

4、常用建模技术

4.1、对系统的语境建模

4.1.1、设计过程

4.2、对系统的需求建模

4.2.1、设计过程:

5、正向工程


        UML 中的用例图是对系统的动态方面建模的 5 种图之一(对系统的动态方面建模的其他 4种图是活动图、状态图、顺序图和通信图) 。用例图是对系统、子系统或类的行为进行建模的核心。每张图都显示一组用例、参与者以及它们之间的关系

        用例图对可视化、详述和文档化一个元素的行为是很重要的,它们通过呈现元素在语境中如何被使用的外部视图,使系统、子系统和类易于探讨和理解。另外,用例图对通过正向工程来测试可执行的系统和通过逆向工程来理解可执行的系统也是很重要的。

        
        

1、组成结构

主题、用况、参与者;

依赖、泛化以及关联关系;

与所有其他图一样,用况图可以包含注解和约束;

用况图还可以含有包,用来将模型中的元素组合成更大的组块。

偶尔,尤其是要把一个特殊的执行系统可视化时,还可以把用况的实例放到图中。

2、表示法

把主题表示为一个矩形(用例边界),其中包含一组表示用况的椭圆,主题的名字标在矩形内。

用人形图表示参与者,放在矩形外面,名字放在其图符的下方。

从参与者图符到与之通信的用况椭圆之间用线条连接。

用况之间的关系(如延伸和包含)画在矩形之内。

3、一般用法

3.1、对主题的语境建模

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

3.2、对主题的需求建模

对一个主题的需求进行建模,包括说明这个主题应该做什么(从主题外部的视点来看),而不考虑主题应该怎样做。在这里,用况图说明了主题所希望的行为。在这种方式下,用况图使我们把整个主题看作一个黑盒子;可以观察到主题外部有什么,主题对那些外部事物的反应,但却看不到主题内部是如何工作的。

4、常用建模技术

4.1、对系统的语境建模

        所强调的是围绕在系统周围的参与者。决定什么作为参与者是重要的,因为这样做说明了与系统进行交互的一类事物。决定什么不作为参与者也同样重要,甚至更为重要,因为它限定了系统的环境,使之只包含那些在系统的生命周期中所必需的参与者 

4.1.1、设计过程

  1. 决定哪些行为是系统的一部分以及哪些行为是由外部实体所执行的,以此识别系统边界。这也同时定义了主题。
  2. 考虑以下几组事物来识别系统周围的参与者:需要从系统中得到帮助以完成其任务的组;执行系统的功能时所需要的组;与外部硬件或其他软件系统进行交互的组;为了管理和维护而执行某些辅助功能的组。
  3. 将彼此类似的参与者组织成一般——特殊层次结构。
  4. 在需要加深理解的地方,为每个参与者提供一个衍型。
  5. 将这些参与者放入用况图中,并说明从每个参与者到系统的用况之间的通信路径。
     

上图显示了一个信用卡验证系统的语境,它强调围绕在系统周围的参与者。其中有顾客(Customer),分为两类:个人顾客(Individual customer)和团体顾客(Corporate customer)。这些参与者是人与系统交互时所扮演的角色。在这个语境中,还有表示其他机构的参与者,如零售机构(Retail institution)(顾客通过该机构刷卡,购买商品或服务)、主办财务机构(Sponsoring financial institution)(负责信用卡账户的结算服务)。在现实世界中,后两个参与者本身就可能是一个软件密集型系统。

4.2、对系统的需求建模

        需求是系统的设计特征、特性或行为。陈述系统的需求,相当于陈述系统外部的事物与系统之间建立的一份合约,该合约声明了希望系统做什么事。

        可以用各种形式表达需求,从非结构化的文字到形式语言的表达式,以及介于二者之间的其他任意形式皆可。大多数(如果不是全部的话)系统的功能需求都可以表示成用况,UML 的用况图对管理这些需求是不可缺少的。

4.2.1、设计过程:

  1. 通过识别系统周围的参与者来建立系统的语境。
  2. 对于每个参与者,考虑它期望的或需要系统提供的行为。
  3. 把这些公共的行为命名为用况。
  4. 分解公共行为,放入新的用况中以供其他的用况使用;分解异常行为,放入新的用况中以延伸较为主要的控制流。
  5. 在用况图中对这些用况、参与者以及它们的关系进行建模。
  6. 用陈述非功能需求的注解或约束来修饰这些用况,可能还要把其中的一些附加到整个系统。

上图是对上一个用况图的扩充。尽管没有画出参与者与用况之间的关系,但加入了额外的用况,这些用况对于一般的顾客不可见,但仍是系统的基本行为。这张图是有价值的,因为它为最终用户、领域专家以及开发者提供了一个共同的起点,以便可视化、详述、构造和文档化他们关于系统的功能需求的决策。例如,检测信用卡欺诈(Detect card fraud)对于零售机构(Retail institution)和主办财务机构(Sponsoring financial institution)都是很重要的行为。类似地,报告账户的状态(Report on account status)是系统语境中不同机构所需要的另一个行为。

一旦确定了用况的结构,就必须描述每个用况的行为。

通常要为每个主线情况绘制一个或多个顺序图,然后要为每种变体情况绘制顺序图。

最后,为了说明对各种错误和异常情况的处理,至少还要绘制一个顺序图;对错误的处理是用况的一部分,要和正常行为一起考虑。

5、正向工程

 (forward engineering)是通过映射到一个实现语言而把模型转换为代码的过程。

用况图可通过正向工程,形成对它所应用的元素的测试。

用况图中的每个用况说明了一个事件流(或这些流的变体),这些流说明了元素被期望如何行动——这正是值得测试的。

一个结构良好的用况甚至说明了前置条件和后置条件,来定义一个测试的初态和它的成功判定标准。对于用况图中的每个用况,都可以创建一个测试用例,每当发布这个元素的新版本时都可以运行它,从而在其他元素使用它之前就保证它能像要求的那样工作。
 

  1. 识别与系统交互的对象。尝试找出每个外部对象可能扮演的各种角色。
  2. 设立参与者,以表示每一种不同的交互角色。
  3. 对于图中的每个用况,识别它的事件流和异常事件流。
  4. 根据选择的测试深度,为每个流产生一个测试脚本,把流的前置条件作为测试的初态,把流的后置条件作为测试的成功判定标准。
  5. 必要时生成一个测试支架来表示每个与用况交互的参与者。把信息传给元素或者是通过元素来执行的参与者都可以被现实世界的等价物模拟或替换。
  6. 每次发布用况图描绘的元素时,都用工具来运行相应的测试。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4月份最新出品:上海交大动手学大模型教程,快速入门LLM大模型(附课件)

前有 李沐 大神的动手学深度学习 现有 上海交大 的动手学大模型教程,对大模型感兴趣的直接冲! 就在4月份上交大发布了动手学大模型教程,这份教程来自上海交大 《人工智能安全技术》 课程讲义拓展,教师是是张倬胜教授。 朋友们…

[Linux] 历史根源

UNIX系统: 1969年,由贝尔实验室的K.Thompson和D.M.Ritchie为PDP-7机器编写的一个分时操作系统, 最初使用汇编语言编写, 后来1972年C语言出世以后,二人由使用C写了UNIX3, 此后UNIX大为流行开来 UNIX流派树&a…

编程精粹—— Microsoft 编写优质无错 C 程序秘诀 01:假想的编译器

这是一本老书,作者 Steve Maguire 在微软工作期间写了这本书,英文版于 1993 年发布。2013 年推出了 20 周年纪念第二版。我们看到的标题是中译版名字,英文版的名字是《Writing Clean Code ─── Microsoft’s Techniques for Developing》&a…

电脑提示d3dcompiler_47.dll丢失的解决方法,实测靠谱的5种方法

在计算机使用过程中,缺失d3dcompiler_47.dll这一系统文件是一个常见问题,尤其是对于游戏和图形密集型应用程序用户来说尤为重要。这个文件是DirectX软件工具包的一部分,主要用于处理图形渲染的应用程序接口的核心元素。当你在运行游戏或某些软…

[面试题]消息队列

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列 什么是…

什么是进程

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在了解进程之前,我们需要知道多任务的概念。多任务,顾名思义,就是指操作系统能够执行多个任务。例如,…

微服务必备容器化技术

文章目录 docker介绍与安装及上手应用什么是容器化技术?为什么需要学习docker?如何理解dockerdocker下载与安装docker的基础组成docker体验 dockerfile介绍并创建go-zero环境容器docker的基础组成从容器构建属于go环境的容器基于dockerfile构建go容器镜像…

嵌入式linux系统中SPI子系统验证03

今天主要给大家分享一下,如何使用SPI总线进行验证的方法。 第一:SPI验证流程 1. echo 1 > /dev / spidev3.0 2.逻辑分析仪抓波形 3.十六进指转化为十进制 4.ASCII字符代码表匹配 第二:SPI验证结果 第三:设备…

蚓链数字化生态平台,开启企业未来新篇章!

在如今数字化浪潮势不可挡的时代,企业发展可谓是机遇与挑战并存!而蚓链数字化生态平台系统的出现,绝非是给企业一套平平无奇的营销方案或工具那么简单。 它赋予企业的,是在产业生态链中获取海量数据价值的关键且强大的能力&#x…

18个机器学习核心算法模型总结

最强总结!18个机器学习核心算法模型!! 大家好~ 在学习机器学习之后,你认为最重要的算法模型有哪些? 今儿的内容涉及到~ 线性回归逻辑回归决策树支持向量机朴素贝叶斯K近邻算法聚类算法神经网络集成方法降维算法主成…

Weevil-Optimizer象鼻虫优化算法的matlab仿真实现

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 Weevil-Optimizer象鼻虫优化算法的matlab仿真实现,仿真输出算法的优化收敛曲线,对比不同的适应度函数。 2.测试软件版本以及运行结果展示…

【Redis】基于Redission实现分布式锁(代码实现)

目录 基于Redission实现分布式锁解决商品秒杀超卖的场景: 1.引入依赖: 2.加上redis的配置: 3.添加配置类: 4.编写代码实现: 5.模拟服务器分布式集群的情况: 1.右键点击Copy Configuration 2.点击Modi…

虚拟现实环境下的远程教育和智能评估系统(十)

VR部署测试,采集眼动数据; 经VR内置Camera采集眼睛注视位置后,输出.txt形式的眼动结果: 经处理后,将射线方向和位置投影到视频屏幕二维坐标的位置: 在视频中可视化如下:

Redis的缓存击穿与解决

缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的Key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。 Redis实战篇 | Kyles Blog (cyborg2077.github.io) 目录 解决方案 互斥锁 实现 逻辑过期 实现 解决方案…

C++ 类与对象的使用要点(超详细解析,小白必看系列)

1.面向过程和面向对象初步认识 C语言是面向过程的语言,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题 例如:洗衣服 C是基于对象的,关注的是对象,将一件事拆分成不同的对象,靠对…

Hadoop3:MapReduce中的Partition原理及自定义Partition

一、默认Partition分区配置 以WC案例来进行验证。 1、设置setNumReduceTasks 修改的代码 这行代码,确定了reduceTask的数量,也确定了分区逻辑 在mapper文件中,打上断点 计算分区的代码 这里会对每一个kv进行计算,然后&#…

STM32F4 STD标准库串口接收中断+空闲中断例程

STM32F4 STD标准库串口接收中断空闲中断例程 🔖工程基于STM32F446 ✨用惯了STM32CubeMX傻瓜式配置,突然改用标准库写代码,初始化外设内容,总是丢三落四的。 📗串口初始化配置 void uart_init(uint32_t bound) {//GPIO…

基于51单片机FM数字收音机设计

基于51单片机FM数字收音机 (程序+原理图+PCB+设计报告) 功能介绍 具体功能: 该系统利主要由STC89C51单片机、液晶显示器、按键、调频收音模块TEA5767、功放LM386组成。 1.收音芯片采用TEA5767模块&…

最新PHP仿猪八戒任务威客网整站源码/在线接任务网站源码

资源介绍 老规矩,截图为亲测,前后台显示正常,细节功能未测,有兴趣的自己下载。 PHP仿猪八戒整站源码下载,phpmysql环境。威客开源建站系统,其主要交易对象是以用户为主的技能、经验、时间和智慧型商品。经…

阿里云域名解析

阿里云域名控制台:https://dc.console.aliyun.com/next/index#/domain-list/all