解密软件工程的秘密武器:UML图

news2024/10/7 2:27:23

文章目录

  • 一 综述
  • 二 用例图
    • 2.1 细化用例说明
    • 2.2 包含、扩展、泛化关系
    • 2.3 题目列举
  • 三 类图和对象图
  • 四 顺序图
  • 五 状态图
    • 5.1 栗子
  • 六 活动图
  • 七 练习
    • 7.1 用例图综合题
    • 7.2 状态图综合题

一 综述

在这里插入图片描述

二 用例图

  • 用例图描述一组用例、参与者及它们之间的关系。
    • 用户角度描述系统功能;
    • 参与者是外部触发因素;(包括用户、组织、外部系统,时间)
    • 用例是功能单元。
  • 关系包括:包含关系、扩展关系、泛化关系
  • 用例建模的流程:
    ★识别参与者(必须)
    ★合并需求获得用例 (必须)
    ★细化用例描述(必须)
    ★调整用例模型(可选)
    在这里插入图片描述

2.1 细化用例说明

在这里插入图片描述

在这里插入图片描述

2.2 包含、扩展、泛化关系

  • 包含关系:其中提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。
    在这里插入图片描述
  • 扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
    在这里插入图片描述
  • 泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
    在这里插入图片描述
  • 🍁🍁栗子:
    在这里插入图片描述

2.3 题目列举

  1. 在某银行业务的用例模型中:“取款”和“存款”两个用例中都需要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款”用例与“查询余额”用例之间的关系属于()。·
    A.扩展关系
    B.包含关系
    C.依赖关系
    D.继承关系
    • “取款”和“存款”用例与“查询余额”用例之间的关系属于依赖关系(C. 依赖关系)。依赖关系表示“取款”和“存款”用例依赖于“查询余额”用例来获取余额信息
  2. 采用UML分析用户需求时,用例UC1可以出现在用例UC2出现的任何位置,那么UC1和UC2 之间的关系是()。
    A. include
    B. extend
    C. generalize
    D. call

三 类图和对象图

  • 本质相同,一个表达类的关系一个表达对象的关系
  • 类图(classdiagram):类图描述一
  • 组类、接口、协作和它们之间的关系。
  • 对象图(objectdiagram):对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。
    • 类名,方法名,属性名
    • 多重度
    • 关系
      在这里插入图片描述
多重度解释
1:表示一个集合中的一个对象对应另一个集合中一个对象。
0.*表示一个集合中的一个对象对应另一个集合中的0个或多个对象。(可以不对应)
1.*表示一个集合中的一个对象对应另一个集合中的一个或多个对象。(至少对应一个)
*表示一个集合中的一个对象对应另一个集合中的多个的对象。

在这里插入图片描述
在这里插入图片描述

  • UML用关系把事物结合在一起,(依赖关系)描述一个事物发生变化会影响另一个事物的语
    义;(泛化关系)描述特殊元素的对象可替换一般元素的对象。

四 顺序图

  • 顺序图(sequence diagram,序列图)。顺序图是一种交互图(interactiondiagram),它强调对象之间消息发送的顺序,同时显示对象之间的交互。
    在这里插入图片描述

五 状态图

  • 状态图(statediagram)是对类描述的补充。用于展现此类对象所具有的可能状态,以及某些事件发生时其状态转移情况。
    在这里插入图片描述

5.1 栗子

在订单处理的过程中,会员可以点击“取消订单”取消该订单。如果支付失败,该订单将被标记为挂起状态,可后续重新支付,如果挂起超时30分钟未支付,系统将自动取消该订单。订单支付成功后,系统判断订单类型:(1)对于常规订单,标记为备货状态,订单信息发送到货运部,完成打包后交付快递发货;(2)对于定制订单,会自动进入定制状态,定制完成后交付快递发货。会员在系统中点击“收货”按钮变为收货状态,结束整个订单的处理流程。
在这里插入图片描述

六 活动图

  • 活动图(activitydiagram)是一种特殊的状态图。
  • 活动图描述一个操作中要进行的各项活动的执行流程。 同时,也常被用来描述一个用例的处理流程或者某种交互流程。
  • 活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。它强调对象间的控制流程。
    在这里插入图片描述
  • 泳道活动图
    在这里插入图片描述

七 练习

  1. 希赛公司欲开发一个在线交易系统。为了能够精确表达用户与系统的复杂交互过程,应该采用UML的(B)进行交互过程建模。
    A.类图
    B顺序图
    C.部署图
    D.对象图
    • A、C、D都为静态图,只有B为动态图,且符合题意【能够精确表达用户与系统的复杂交互过程】
  2. A)适用于描述复杂算法的执行流程。
    A.活动图
    B.状态图
    C.类图
    D.用例图
    • 类图为静态图,排除;用例图:描述用户和系统的交互;
    • 状态图:强调状态的转换

7.1 用例图综合题

在这里插入图片描述

在这里插入图片描述

  1. 【问题1】:用例模型的参与者:仓库管理员、仓库经理、系统管理员、时间、温度、温度调节系统。
  2. 【问题2】用例名称、简要说明、事件流、非功能需求、前置条件、后置条件、扩展点、优先级。
    在这里插入图片描述
  3. 【问题3】
    1. 用例之间的关系包括:包含关系、扩展关系、泛化关系。“出入库操作”与“登录”属于包含关系;“查看统计报表”与“生成统计报表”属于扩展关系;“用户注册”与“邮件注册”和“电话注册”属于典型的泛化关系。

7.2 状态图综合题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Qt自定义窗口部件/控件(实现一个十六进制微调框SpinBox)

目录 1、自定义Qt窗口部件/控件2、十六进制微调框(SpinBox)2.1、实现思路2.2、源码 3、使用方法3.1、代码添加自定义窗口部件/控件3.2、Qt设计师添加自定义窗口部件/控件3.3、运行效果 4、缺点 1、自定义Qt窗口部件/控件 在某些情况下,我们发现Qt窗口控件需要更多的自定义定制…

剑指 Offer 16. 数值的整数次方 / LeetCode 50. Pow(x, n)(快速幂)

题目: 链接:剑指 Offer 16. 数值的整数次方;LeetCode 50. Pow(x, n) 难度:中等 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问…

Java 中如何对图片进行压缩处理

问题背景 图片过大时,会造成页面卡顿甚至于报错,而且现在页面,接口,很多地儿都有报文传输的最大限制要求,另外不知道各位有没有遇到过页面渲染比较大的 base64 图片时,会非常的卡顿。所以,我们…

深入Python网络编程:从基础到实践

Python,作为一种被广泛使用的高级编程语言,拥有许多优势,其中之一就是它的网络编程能力。Python的强大网络库如socket, requests, urllib, asyncio,等等,让它在网络编程中表现优秀。本文将深入探讨Python在网络编程中的应用&#…

npm发布自己的包步骤详解

我发布的是基于vue的指令插件 初始化项目 比如我,创建了code-transfor-text_vue项目 根目录初始化git git init .建立开源协议 给项目根目录手动创建LICENSE文件文件,没有后缀名 MIT LicenseCopyright (c) 2023 quanyiPermission is hereby granted,…

Java 反序列化之 XStream 反序列化

0x01 XStream 基础 XStream 简介 XStream 是一个简单的基于 Java 库,Java 对象序列化到 XML,反之亦然(即:可以轻易的将 Java 对象和 XML 文档相互转换)。 使用 XStream 实现序列化与反序列化 下面看下如何使用 XStream 进行序列化和反序列…

Scala面向对象【上】

Scala 面向对象 Scala的面向对象思想和Java是一致的,只不过在语法上增加了更多的功能。 1、Scala 包 和 Java 一致。 1.1、包对象 在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 objec…

Kafka详解

文章目录 1、kafka简单介绍2、kafka使用场景3、kafka基本概念4、kafka集群1、数据冗余2、分区的写入1、使用 Partition Key 写入特定 Partition2、由 kafka 决定3、自定义规则 3、读取分区数据 5、提交策略6、kafka如何保证高并发 1、kafka简单介绍 kafka是一款分布式、支持分…

Java阶段四Day08

Java阶段四Day08 文章目录 Java阶段四Day08关于pom.xml中的版本关于Session关于Token关于JWT在项目中使用JWTCustomUserDetailsUserDetailServiceImplUserServiceImpl 关于pom.xml中的版本 查看<groupId> 是同一家的只需配一个版本号<version><artifactId>中…

C# 线程基础

目录 一、概述 二、线程的创建 三、线程的休眠 四、线程的等待 五、线程的终止 六、线程的状态 七、线程的优先级 一、概述 线程&#xff08;Thread&#xff09;是进程中的基本执行单元&#xff0c;是操作系统分配CPU时间的基本单位&#xff0c;一个进程可以包含若干个…

【FPGA入门】第七篇、FPGA驱动VGA实现动态图像移动

目录 第一部分、实现效果 第二部分、动态VGA显示的原理 1、将动态显示的区域提前进行赋值 2、图像块的移动是每张图片叠加后的效果 3、如何实现图像块位置的改变 第三部分、系统结构和驱动波形 1、系统的Top-down结构 2、图像块移动的驱动波形 第四部分、代码 1、同步…

大语模型前世今生

引言&#xff1a;席卷世界的大语言模型浪潮 2022年11月30日&#xff0c;OpenAI公司发布了ChatGPT。这迅速成为了社会各界关注的焦点&#xff0c;ChatGPT能够如此快速&#xff0c;准确的完成文本生成&#xff0c;信息抽取&#xff0c;机器翻译&#xff0c;甚至代码生成等复杂任务…

数字化转型|银行业数据中心数字化转型之模型篇 01

导语&#xff1a; 银行业数据中心数字化转型是一项系统性工程&#xff0c;既涉及管理层面转型——包括数字化转型战略、基础架构和技术架构转型、技术创新和知识体系转型&#xff0c;又涉及执行层面转型——包括人员管理&#xff08;P&#xff09;、流程管理&#xff08;P&…

突破官方限制!最强TV观影神器我都给你找来了!

随着移动互联网的兴起&#xff0c;我想很多人家里的电视机都积起了灰&#xff0c;大家追剧的设备都从电视机变成了手机、平板、电脑 但这两年&#xff0c;我发现这个事情又慢慢有在转变了&#xff1a;随着大家&#xff08;尤其是年轻人&#xff09;对观看体验的追求&#xff0…

接口的学习

接口 接口可以理解为一种规则&#xff0c;是对行为的抽象 如何定义一个接口 使用关键词interface定义 public interface 接口名{} 接口不能实例化 接口和类之间是实现关系&#xff0c;通过关键词implements关键字表示 public class 类名 implements 接口名{} 接口的子类…

三个数据恢复方法解决移动硬盘数据丢失问题!

移动硬盘容量大、写入和读取速度快&#xff0c;受到很多人的欢迎。但是&#xff0c;无论数据存储在何处&#xff0c;都有数据丢失的风险。今天&#xff0c;小编来介绍一下移动硬盘数据恢复的方法&#xff0c;以免大家不慎删除移动硬盘数据而陷入无助的境地! 方法1.使用命令恢复…

全网最详细,性能测试-测试方法总结(压力/负载)超详细

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 并发/负载/压力理…

leetcode123. 买卖股票的最佳时机 III(java)

买卖股票的最佳时机 leetcode123. 买卖股票的最佳时机 III题目描述动态规划代码演示 动态规划专题 leetcode123. 买卖股票的最佳时机 III 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-sto…

API手册使用方式说明

API手册使用方式说明 其实我们在API阶段,更多是要去学习别人已有内容,比如方法的使用 但是这么多的方法对于新手来说其实是不太友好的,刚开始根本记不住呀 所以API手册就是我们的一个好帮手,我们可以在API手册查到目标内容的介绍 类似于小学刚学字的时候,不会的字就可以去查字…

连接器信号完整性仿真教程 四

本文详细讲解了CST做连接器信号完整性仿真时,如何从材料库中载入材料,如何新增材料、如何编辑材料属性、如何将材料添加到库中,以及如何设置仿真模型材料、并以实例逐步做了详细演示。 一 从材料库中载入材料 从材料库中载入材料有两种方法。 方法一 点击菜单"Modelin…