《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图

news2025/5/10 13:09:19

目录

1. UML概述

2. UML构造块

(1) 事物(Things)

(2) 关系(Relationships)

真题示例: 

3. UML图分类

(1) 结构图(静态)

(2) 行为图(动态)

4. 核心UML图详解

5. UML 4+1视图模型

真题示例:


1. UML概述

  • 定义:UML(Unified Modeling Language)是一种可视化建模语言,用于支持从需求分析到软件设计的全过程。
  • 结构组成
    • 构造块:事物(类、接口等)、关系(依赖、关联等)、图(类图、用例图等)。
    • 公共机制:实现特定目标的通用方法(如扩展机制)。
    • 规则:构造块的组合规则(如类与类之间的关系)。

2. UML构造块

(1) 事物(Things)

  • 结构事物(静态部分):类、接口、用例、构件等。
  • 行为事物(动态部分):交互、活动、状态机等。
  • 分组事物(组织部分):包(Package)。
  • 注释事物(解释部分):注释、约束等。

(2) 关系(Relationships)

关系类型描述
依赖一个事物的变化影响另一个事物
关联类之间的结构关系(分为组合/聚合)
泛化一般与特殊关系(继承)
实现类与接口的契约关系

  • 组合 vs 聚合
    • 组合(强关系):部分不能脱离整体存在(如 汽车 和 发动机)。
    • 聚合(弱关系):部分可独立存在(如 汽车 和 轮胎)。

真题示例: 

采用面向对象方法进行软件开发时,将汽车作为一个系统。以下( )之间不属于组成(Composition)关系。

A.汽车和座位 B.汽车和车窗 C.汽车和发动机 D.汽车和音乐系统

理解组成关系(Composition)是强聚合关系,表示部分不能脱离整体存在(生命周期绑定)。本题存在争议,不需要纠结标准答案。

如图所示的UML类图中,Shop和Magazine之间为( )关系,Magazine和Page之间为( )关系。UML类图通常不用于对( )进行建模。

 

A.关联 B.依赖 C.组合 D.继承

A.关联 B.依赖 C.组合 D.继承

A.系统的词汇 B.简单的协作 C.逻辑数据库模式 D.对象快照

  1. Shop和Magazine关联
  2. Magazine和Page组合
  3. UML类图不用于对象快照
    • 类图描述静态结构(类、接口、关系),而对象快照属于对象图(特定时刻的实例状态)。


3. UML图分类

UML图分为结构图(静态)行为图(动态)两大类:

(1) 结构图(静态)

图类型用途
类图展示类、接口及其关系(如继承、实现)
对象图类图的实例化(某一时刻的对象状态)
构件图显示系统构件及其依赖关系(如DLL、EXE)
部署图软硬件映射(节点部署)
制品图物理文件结构(如源代码、数据库)
包图模块化组织(分组管理类/组件)

(2) 行为图(动态)

图类型用途
用例图系统与外部参与者的交互(功能需求)
顺序图按时间顺序的对象交互(强调时序)
通信图对象间的协作关系(强调组织结构)
状态图对象状态变化(如订单状态流转)
活动图业务流程或并行活动(类似流程图)
定时图强调时间约束的交互

4. 核心UML图详解

UML图类型分类用途描述关键元素/特点
类图静态图系统静态设计视图,展示类、接口、协作及它们之间的关系类、接口、关联、组合/聚合、泛化、依赖
对象图静态图类图的实例快照,展示某一时刻对象的状态及关系对象实例、链(对象间的连接)
用例图行为图描述系统与外部参与者的交互及功能需求参与者、用例、包含(<<include>>)、扩展(<<extend>>)、泛化关系
序列图交互图按时间顺序展示对象间的消息交互生命线、同步消息(实心三角箭头)、异步消息(空心箭头)、返回消息(虚线箭头)
通讯图交互图强调对象组织结构,展示交互中的对象连接关系对象、链、消息(带序号)
状态图行为图描述单个对象的状态变化及触发条件状态、迁移(事件+监护条件+动作)、初始/终止状态
活动图行为图类似流程图,展示系统活动的并行或顺序流程活动节点、分岔/汇合(粗水平线)、监护条件、分支

构件图静态图系统物理构件结构及依赖关系构件(<<component>>)、接口(<<interface>>)、依赖关系(虚线箭头)
部署图静态图展示软件如何部署到硬件节点及网络拓扑节点(服务器/设备)、构件部署、通信连接(实线)

5. UML 4+1视图模型

视图描述受众
逻辑视图类、子系统设计系统分析师
进程视图并发与同步结构(线程/进程)系统架构师
实现视图代码和构件组织开发人员
部署视图软硬件映射(节点部署)运维工程师
用例视图最基本的需求分析模型(用户功能)产品经理/客户

真题示例:

用例(use case)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个会员管理系统中,会员注册时可以采用电话和邮件两种方式。用例“会员注册”和“电话注册”、“邮件注册”之间是( )关系。

A. 包含(include) B.扩展(extend) C.泛化(generalize) D.依赖(depends on)

  • 泛化关系表示一般与特殊的关系。"会员注册"是通用用例,"电话注册"和"邮件注册"是其具体实现方式,符合泛化关系(类似父类与子类)。

以下关于UML状态图的叙述中,不正确的是( )

A、活动可以在状态内执行,也可以在迁移时执行

B、若事件触发一个没有特定监护条件的迁移,则对象离开当前状态

C、迁移可以包含事件触发器,监护条件和状态

D、事件触发迁移

  • 没有监护条件不能直接迁移

在UML提供的系统视图中,( )是逻辑视图的一次执行实例,描述了并发与同步结构;( )是最基本的需求分析模型。

A. 进程视图 B.实现视图 C.部署视图 D.用例视图

A. 进程视图 B.实现视图 C.部署视图 D.用例视图

  1. 进程视图(描述并发与同步)
  2. 用例视图(需求分析模型)

如下所示的UML图是( ),图中(Ⅰ)表示( ),(Ⅱ)表示( )。

A. 序列图 B. 状态图 C. 通信图 D. 活动图

A. 合并分叉 B. 分支 C. 合并汇合 D. 流

A. 分支条件 B. 监护表达式 C. 动作名 D. 流名称

  1. 图示的UML图是(活动图)。 活动图用于描述系统的活动流程,展示从一个活动到另一个活动的控制流,类似于流程图。图中有活动节点(如Receive Order、Fill Order等)、分岔/汇合(粗水平线)以及分支(菱形判断)等元素,符合活动图的特征。

  2. 图中(Ⅰ)表示(合并分叉)。 图中的粗水平线(Ⅰ处)是活动图中用于表示并发开始的符号,即合并分叉,表示从一个活动可以同时开始多个并行的活动。

  3. 图中(Ⅱ)表示(监护表达式)。 在活动图的分支处(菱形判断),[not complete](Ⅱ处)这样的方括号括起来的表达式是监护表达式,用于判断条件是否成立,以决定流程走向,所以第五个空选B。

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

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

相关文章

[文献阅读] EnCodec - High Fidelity Neural Audio Compression

[文献信息]&#xff1a;[2210.13438] High Fidelity Neural Audio Compression facebook团队提出的一个用于高质量音频高效压缩的模型&#xff0c;称为EnCodec。Encodec是VALL-E的重要前置工作&#xff0c;正是Encodec的压缩量化使得VALL-E能够出现&#xff0c;把语音领域带向大…

【操作系统原理01】操作系统引论

文章目录 大纲一、中断与异常0.大纲1. 中断的作用2. 中断类型2.1 内中断2.2 外中断2.3 判断内外中断 3. 中断机制原理 二、系统调用0. 大纲1.什么是系统调用2.系统调用分类 三、操作性系统内核(了解)0.大纲1.内核2.各种操作系统结构特性 四、操作系统引论0.大纲1.磁盘存储 图片…

最新得物小程序sign签名加密,请求参数解密,响应数据解密逆向分析

点击精选&#xff0c;出现https://app.dewu.com/api/v1/h5/index/fire/index 这个请求 直接搜索sign的话不容易定位 直接搜newAdvForH5就一个&#xff0c;进去再搜sign&#xff0c;打上断点 可以看到t.params就是没有sign的请求参数&#xff0c; 经过Object(a.default)该函数…

Day2—3:前端项目uniapp壁纸实战

接下来我们做一个专题精选 <view class"theme"><common-title><template #name>专题精选</template><template #custom><navigator url"" class"more">More</navigator></template></common…

Python基于知识图谱的医疗问答系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

股指期货跨期套利是如何赚取价差利润的?

股指期货跨期套利&#xff0c;简单来说&#xff0c;就是在同一交易所内&#xff0c;针对同一股指期货品种的不同交割月份合约进行的套利交易。投资者会同时买入某一月份的股指期货合约&#xff0c;并卖出另一月份的股指期货合约&#xff0c;待未来某个时间点&#xff0c;再将这…

w297毕业生实习与就业管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

Java集合框架中的List、Map、Set详解

在Java开发中&#xff0c;集合框架是处理数据时不可或缺的工具之一。今天&#xff0c;我们来深入了解一下Java集合框架中的List、Map和Set&#xff0c;并探讨它们的常见方法操作。 目录 一、List集合 1.1 List集合介绍 1.2 List集合的常见方法 添加元素 获取元素 修改元素…

OpenStack Yoga版安装笔记(23)Swift安装

一、官方文档 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、环境准备 之前的实验&#xff0c;已经有controller, compute1, block1节点&#xff0c;并已经完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安装。 此处新增…

MRO 工业品电商系统:智能精准匹配,快速满足采购需求

在竞争激烈的工业领域&#xff0c;企业对 MRO 工业品的采购需求越来越多。但传统 MRO 采购存在信息不透明、客户选型困难&#xff0c;流程复杂处理周期长、库存信息不明确、成本高和客户价格管理混乱等诸多问题。随着电商发展&#xff0c;MRO 工业品电商系统出现&#xff0c;给…

2025年Q1数据安全政策、规范、标准以及报告汇总共92份(附下载)

一、政策演进趋势分析 &#xff08;一&#xff09;国家级政策新动向 数据要素市场建设 数据流通安全治理方案&#xff08;重点解析数据确权与交易规则&#xff09; 公共数据授权运营规范&#xff08;创新性提出分级授权机制&#xff09; 新兴技术安全规范 人工智能安全标准…

基于Python Django 的全国房价大数据可视化系统(附源码,部署)

博主介绍&#xff1a;✌程序员徐师兄&#xff0c;7年大厂开发经验。全网粉丝12w&#xff0c;CSDN博客专家&#xff0c;同时活跃在掘金、华为云、阿里云、InfoQ等平台&#xff0c;专注Java技术和毕业项目实战分享✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&a…

项目班——0408——qt的多线程开发

目录 一、并发、并行的概念 1. 并发 例子 2. 并行 二、qt的多线程开发 三、Qt多线程开发方法 1、可以使用QTthread 创建线程 来执行线程函数 2、可以借助moveToThread将对象转移到另一个线程中&#xff0c;然后执行 一、并发、并行的概念 1. 并发 多个任务在同一时间…

每天学一个 Linux 命令(25):more

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/25/index.html 每天学一个 Linux 命令(25):more 命令简介 more 是一个经典的分页显示文本文件内容的命令行工具,适用于逐页浏览长文本文件。它简单易用,适合快速查看内容,但功能比 less 更为基础(不支持向后翻…

如何0基础学stm32?

如何0基础学stm32&#xff1f; 作为一个混迹嵌入式领域十余年的老兵&#xff0c;每次看到"0基础学STM32"这样的提问&#xff0c;我都忍不住想笑&#xff0c;又有些无奈。这就像问"如何0基础学开飞机"一样—虽然理论上可行&#xff0c;但过程恐怕没那么愉快…

无需训练的具身导航探索!TRAVEL:零样本视觉语言导航中的检索与对齐

作者&#xff1a; Navid Rajabi, Jana Kosecka 单位&#xff1a;乔治梅森大学计算机科学系 论文标题&#xff1a;TRAVEL: Training-Free Retrieval and Alignment for Vision-and-Language Navigation 论文链接&#xff1a;https://arxiv.org/pdf/2502.07306 主要贡献 提出…

C#测试linq中的左连接的基本用法

使用linq联表或者连接两个对象集合查询时一般使用的是join关键字&#xff0c;返回结果中包含两个表或两个对象集合中连接字段相等的数据记录&#xff0c;如果要实现sql语句中的左连接效果&#xff0c;并没有现成的left join关键字&#xff0c;此时可以使用DefaultIfEmpty 实现左…

2025-04-19 Python 强类型编程

文章目录 1 方法标注1.1 参数与返回值1.2 变参类型1.3 函数类型 2 数据类型2.1 内置类型2.2 复杂数据结构2.3 类别选择2.4 泛型 3 标注方式3.1 注释标注3.2 文件标注 4 特殊情形4.1 前置引用4.2 函数标注扩展4.3 协变与逆变4.4 dataclass 5 高级内容5.1 接口5.2 泛型的协变/逆变…

spring-batch批处理框架(2)

文章目录 八、作业控制8.1 作业启动8.1.1 SpringBoot 启动8.1.2 Spring 单元测试启动8.1.3 RESTful API 启动 8.2 作业停止方案1&#xff1a;Step 步骤监听器方式方案2&#xff1a;StepExecution停止标记 8.3 作业重启8.3.1 禁止重启8.3.2 限制重启次数8.3.3 无限重启 九、Item…

动态规划算法的欢乐密码(一):斐波那契数模型

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 目录 一、动态规划 二、例题讲解 2.1. 第 N 个泰波那契数 2.2. 三步问题 2.3. 使用最小花费爬楼梯 2.4. 解码方法 一、动态规划 动态规划是一种将复杂问题分解为更小的子问题&#xff0c;并利用子问题的解来…