UML案例分析

首先需要花大约20分钟来思考解决这个问题,如果对问题不是很熟悉,也可以在完成题目之后,找相关的资料翻阅(例如看UML类图的基本情况,UML状态图的基本情况,然后结合这些信息 做一个自我评价,看这个题目的相关知识是否掌握透彻),然后再看分析与讲解。在看分析与讲解的时候,需要注意分析的思路比这道提的答案更重要一些。

可以在图上标注:

首先,继承关系是很具有代表性的,因为在整个题干描述中,只有一个地方存在继承关系:

艺术家分为乐队和歌手,歌手乐队都属于艺术家,因此艺术家和歌手乐队直接存在继承关系。

艺术家是父类,乐队和歌手是子类。

所以A是艺术家。

那么D和C必然有一个是乐队一个是歌手。那么根据关系来判断,C和D直接是聚合关系,多个歌手聚合为一个乐队,那么根据空心菱形的方向,空心菱形指向的是整体部分,所以C是乐队,D是歌手。无论编写和演奏,都是由艺术家来做的,那么编写演奏的是什么呢?所以B是歌曲,歌曲是放在哪里的呢?根据描述,所以唱片包含了音轨,音轨包含了歌曲。E是音轨,F是唱片。因为唱片是整体部分

问题2:

根据题目中的描述,给出图13-1中的1~6的处的多重度。

首先看C和D的关系:

D是乐队,是由2名或2名以上的歌手组成,那么(2)就是2..*, 反过来,一名歌手对应的乐队是怎么样的呢?是不是一名歌手就对应一个乐队呢?

歌手和乐队的关系: 一名歌手可以不属于任何一个乐队,也可以属于一个或多个乐队。

那么(1)就是0..*

我们判断多重度的时候,站在C的纬度来看一个乐队对应多少歌手,然后确定2处多重度是什么,然后站在D的角度来看一个歌手对应多少个乐队来确认1的位置的多重度。是从2个角度来看待问题和分析问题。

继续看B E F之 间的关系,看B和E之间的关系,也就是歌曲和音轨的关系,一条音轨包含一首歌曲或为空。那么3位置是0..1,一首歌曲可以分布在多条音轨上,那么4位置是1..*(注意如果包含0那么就没有意义了,所以不包含0)

一张唱片可以有多条音轨,也就是1条或多条。一条音轨只能在一张唱片上出现。那么5位置是1..*, 6位置是1

问题3:

图13-1中缺少了一条关联,请住处这条关联两端所对应的类以及每一端的多重度。

分析: 缺了关联,要从整个题干来分析,题干的1 2段落的内容都表现在图里了,继续往下看,发现 一条音轨和上一条音轨或者下一条音轨需要创建联系,关系是0-1,因为音轨如果有上一条或者下一条,那么就对应了上一条或下一条音轨,如果没有的话,就是0的情况。所以答案是0-1的多重度,两端都是音轨。

问题4:

根据图13-2所示的播放器行为UML状态图,给出从关闭状态到播放状态所经过的最短事件序列。(假设电池一开始就是有电的)

根据图,标注起点“关闭”,终点“播放”,可以知道一条路径是按任意键,打开,歌曲选择,播放。

另一条路径是连接电脑,充电或同步歌曲,进入完成状态,断开连接,打开,歌曲选择,播放,可以知道按任意键是最短的路径。

根据做案例题,发现UML类型的题难度不高,可能出现的图有2种,少的时候需要1种,多的时候3种。所以要求大家对UML常见的类型图有一个基本的认识否则不知道这个图表达的是什么意思,也就无从解决问题,但是对图有一个基本的概念的认知,要解答这种问题本身技术难度并不高。

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

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

相关文章

NGINX高性能服务器与关键概念解析

目录 1 NGINX简介2 NGINX的特性3 正向代理4 反向代理5 负载均衡6 动静分离7 高可用8 结语 1 NGINX简介 NGINX(“engine x”)在网络服务器和代理服务器领域备受推崇。作为一款高性能的 HTTP 和反向代理服务器,它以轻量级、高并发处理能力以及…

51单片机的时钟电路与时序以及 复位电路和电源模式

51单片机的时钟电路与时序以及 复位电路和电源模式 本文主要涉及51单片机的时钟电路以及相关时序的知识,也讲解了了51单片机的复位电路以及电源模式。 文章目录 51单片机的时钟电路与时序以及 复位电路和电源模式一、时钟电路与时序1、 时钟电路设计1.1 内部时钟方式…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑垃圾处理与调峰需求的可持续化城市多能源系统规划》

这个标题涵盖了城市多能源系统规划中的两个重要方面:垃圾处理和调峰需求,并强调了规划的可持续性。 考虑垃圾处理: 含义: 垃圾处理指的是城市废弃物的管理和处置。这可能涉及到废物分类、回收利用、焚烧或填埋等方法。重要性&…

IOday7作业

1> 使用无名管道完成父子进程间的通信 #include<myhead.h>int main(int argc, const char *argv[]) {//创建存放两个文件描述符的数组int fd[2];int pid -1;//打开无名管道if(pipe(fd) -1){perror("pipe");return -1;}//创建子进程pid fork();if(pid &g…

Linux信息收集

Linux信息收集 本机基本信息 #管理员 $普通用户 之前表示登录的用户名称&#xff0c;之后表示主机名&#xff0c;再之后表示当前所在目录 / 表示根目录 ~表示当前用户家目录1、内核&#xff0c;操作系统和设备信息 uname -a 打印所有可用的系统信息 uname -r 内核版本 u…

scala安装使用教程_一篇搞定!

1、Scala高级语言 1.1 Scala简介 Scala是一门多范式&#xff08;multi-paradigm&#xff09;的编程语言&#xff0c;设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala运行在Java虚拟机上&#xff0c;并兼容现有的Java程序。 Scala源代码被编译成Java字节码&#…

解读Stable Video Diffusion:详细解读视频生成任务中的数据清理技术

Diffusion Models视频生成-博客汇总 前言:Stable Video Diffusion已经开源一周多了,技术报告《Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets》对数据清洗的部分描述非常详细,虽然没有开源源代码,但是博主正在尝试复现其中的操作。这篇…

DSP处理器及其体系结构特点(您都用过哪些DSP?)

DSP处理器概述 数字信号处理器&#xff08;Digital Signal Processor&#xff0c;DSP&#xff09;是一种专门设计用于执行数字信号处理任务的微处理器类型。与通用微处理器&#xff08;如CPU&#xff09;相比&#xff0c;DSP处理器在处理数字信号时具有更高的性能和效率。 用途…

做抖店代发,新手如何定类目?五大类目优缺点分析!

我是电商珠珠 类目是店铺的方向&#xff0c;只有将店铺的定位确定好&#xff0c;才能超越大部分的同行。 我经常跟我的学生讲&#xff0c;选择类目的时候不能瞎选&#xff0c;要学会去分析市场&#xff0c;由于大部分的学员前期都是新手小白&#xff0c;所以我们这边会负责给…

二维数组附近遍历所有值

二维数组附近遍历所有值 假如以56点为中心&#xff0c;上下左右近距离遍历附近值&#xff0c;看代码&#xff0c;代码把思路写出来了&#xff0c;边界问题暂不处理。 #include<iostream> using namespace std;void FindNearPos(int (*int_arr)[10] , int p_row , int …

解决nuxt使用api代理报错: debug_1$6.Debug.extend is not a function

现象&#xff1a; 这个是使用了nuxt-proxy报的错&#xff0c;但是仅在生产环境才会报错&#xff0c;开发环境没有这个问题。 具体详情可见下面的github issues. nuxt proxy issue 解决办法&#xff1a; 改用代理中间件&#xff1a;nuxt-proxy-request 使用这个中间件的原因…

【工程实践】使用modelscope下载大模型文件

前言 Modelscope&#xff08;魔搭社区&#xff09;是阿里达摩院的一款开源模型平台&#xff0c;里面提供了很多的热门模型供使用体验&#xff0c;其中的模型文件可以通过git clone 快速下载。并且为模型提供了Notebook的快速开发体验&#xff0c;使用阿里云服务&#xff0c;不需…

uView框架的安装与Git管理

参考链接&#xff1a;Http请求 | uView - 多平台快速开发的UI框架 - uni-app UI框架 安装 打开我们项目的cmd进行下载&#xff1a; yarn add uview-ui 首先我们要确定&#xff0c;未下载前的文件目录以及下载后&#xff0c;是多了个文件目录node_modules 下载完成之后我们就…

Android之Binder原理剖析

一&#xff1a;Binder的全面介绍 binder的出现 George Hoffman当时任Be公司的工程师&#xff0c;他启动了一个名为OpenBinder 的项目&#xff0c;在Be公司被ParmSource公司收购后&#xff0c; OpenBinder 由Dinnie Hackborn继续开发&#xff0c;后来成为管理ParmOS6 Cobalt O…

GAN:WGAN-DIV

论文&#xff1a;https://arxiv.org/pdf/1712.01026.pdf 代码&#xff1a; 发表&#xff1a;2018 摘要 在计算机视觉的许多领域中&#xff0c;生成对抗性网络已经取得了巨大的成功&#xff0c;其中WGANs系列被认为是最先进的&#xff0c;主要是由于其理论贡献和竞争的定性表…

免费网页抓取工具大全【附下载和工具使用教程】

在当今信息爆炸的时代&#xff0c;获取准确而丰富的数据对于企业决策和个人研究至关重要。而网页抓取工具作为一种高效获取互联网数据的方式&#xff0c;正逐渐成为大家解决数据需求的得力助手。本文将深入探讨网页抓取工具的种类&#xff0c;并为大家提供简单实用的页面采集教…

FL Studio2024永久免费体验版下载

FL Studio中文绿色21版是一款无需要安装的汉化版本&#xff0c;它是一款非常专业的音频编辑软件&#xff0c;可以让你的音乐突破想象力的限制哦&#xff0c;FL Studio21中文版可以制作出不同音律的节奏&#xff0c;FL Studio内置众多电子合成音色&#xff0c;只Styrus可以让人激…

低多边形游戏风格3D模型纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

5G+AI开花结果,助力智慧安检落地

“请带包的乘客过机安检&#xff01;”&#xff0c;深圳地铁、腾讯共同打造的5GAI智慧安检辅助系统亮相福田枢纽站&#xff0c;进一步解放了人力&#xff0c;提高安检效率&#xff0c;为交通安全保驾护航&#xff0c;让智慧出行成为现实。 传统的安检设备均为人工肉眼辨识&…

【Altera】Quartus II 软件怎么更改bank电压

前言 FPGA的bank电压要和物理设计相同&#xff0c;Quartus II 软件怎么更改bank电压&#xff1f; 步骤 启动 Pin Planner&#xff08;快捷方式&#xff1a;CTRL Shift N&#xff09;右键单击 Pin Planner 的背景&#xff0c;然后选择"显示 I/O bank"。右键…