UML案例分析

news2025/1/24 5:07:40

首先需要花大约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常见的类型图有一个基本的认识否则不知道这个图表达的是什么意思,也就无从解决问题,但是对图有一个基本的概念的认知,要解答这种问题本身技术难度并不高。

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

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

相关文章

Error: Cannot find module ‘E:\Workspace_zwf\mall\build\webpack.dev.conf.js‘

执行:npm run dev E:\Workspace_zwf\zengwenfeng-master>npm run dev> mall-app-web1.0.0 dev E:\Workspace_zwf\zengwenfeng-master > webpack-dev-server --inline --progress --config build/webpack.dev.conf.jsinternal/modules/cjs/loader.js:983thr…

多线程案例-单例模式

单例模式 设计模式的概念 设计模式好比象棋中的"棋谱".红方当头炮,黑方马来跳.针对红方的一些走法,黑方应招的时候有一些固定的套路.按照套路来走局势就不会吃亏. 软件开发中也有很多常见的"问题场景".针对这些问题的场景,大佬们总结出了一些固定的套路.按…

docker容器配置MySQL与远程连接设置(纯步骤)

以下为ubuntu20.04环境,默认已安装docker,没安装的网上随便找个教程就好了 拉去mysql镜像 docker pull mysql这样是默认拉取最新的版本latest 这样是指定版本拉取 docker pull mysql:5.7查看已安装的mysql镜像 docker images通过镜像生成容器 docke…

初识人工智能,一文读懂迁移学习的知识文集(4)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

低多边形建筑3D模型纹理贴图

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

ThinkPHP如何讲链接多个数据库

为什么要使用多个数据库 数据分片: 当数据量非常大时,可能需要将数据分布在不同的数据库中,以提高查询性能。这被称为数据分片,其中不同的数据库负责存储不同范围的数据。 业务分离: 有时,一个大型项目可…

使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题

文章目录 一、 篇头二、 操作步骤2.1 编译AOSP AS工程文件2.2 将AOSP导入Android Studio2.3 切到Project试图2.4 等待index结束2.5 下载缺失的JDK 1.82.6 导入完成 三、 导入AS的好处3.1 本文案例演示源码编译错误AS对比同文件其余地方的调用AS错误提示依赖AS做错误修正 一、 篇…

Docker网络原理及Cgroup硬件资源占用控制

docker的网络模式 获取容器的进程号 docker inspect -f {{.State.Pid}} 容器id/容器名 docker初始状态下有三种默认的网络模式 ,bridg(桥接),host(主机),none(无网络设置&#xff…

QT中时间时区处理总结

最近项目中要做跨国设备时间校正功能,用到了时区时间,在此做一下记录。 目录 1.常见时区名 2.测试代码 3.运行效果 1.常见时区名 "Pacific/Midway": "中途岛 (UTC-11:00)", …

2023中国(海南)国际高尔夫旅游文化博览会 暨国际商界峰层·全球华人高尔夫精英巡回赛 全国颍商自贸港行盛大启幕

2023中国(海南)国际高尔夫旅游文化博览会(以下简称“海高博”)暨全国颍商走进海南自贸港于12月7-9日在海口观澜湖盛大开幕。该活动由中国国际贸易促进委员会海南省委员会、海南省旅游和文化广电体育厅主办,中国国际商会…

用Java实现一对一聊天

目录 服务端 客户端 服务端 package 一对一用户; import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; imp…

数据结构中处理散列冲突的四种方法

1 开放定址法 1.1 定义 开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址 1.2 要求 只要散列表足够大 空的散列地址总能找到,并将记录存入 1.3 线性探测法 使用该公式用于解决冲突的开放定址法称为线性探测法 对于线性探测法&#xff0c…

rpc原理与应用

IPC和RPC? TCP是有三个特点,面向连接、可靠、基于字节流。粘包问题 RPC 而RPC(Remote Procedure Call),又叫做远程过程调用。它本身并不是一个具体的协议,而是一种调用方式。 gRPC 是 Google 最近公布的…

GPT4停止订阅付费了怎么办? 怎么升级ChatGPT plus?提供解决方案

11月中旬日OpenAI 暂时关闭所有的升级入口之后,很多小伙伴就真的在排队等待哦。其实有方法可以绕开排队,直接付费订阅升级GPT的。赶紧用起来立马“插队”成功!亲测~~~ 一、登录ChatGPT账号 1、没有账号可以直接注册一个,流程超级…

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换 Laplace Transform : X ( s ) L [ x ( t ) ] ∫ 0 ∞ x ( t ) e − s t d t X\left( s \right) \mathcal{L} \left[ x\lef…

php 接入 百度编辑器

按照github上的操作下载百度编辑器的包后,根据文档上的步骤操作(可能会遇到报错): 1、git clone 仓库 2、npm install 安装依赖(如果没有安装 grunt , 请先在全局安装 grunt) 我的是报了下面的错&#…

Graphpad Prism10.1.0 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件,它可以将科学图形、综合曲线拟合(非线性回归)、可理解的统计数据、数据组织结合在一起,除了最基本的数据统计分析外,还能自动生成统…

智慧工地安全管理方案,智慧工地云平台源码,java项目源码

智慧工地安全管理方案,智慧工地云平台源码 智慧工地是一种以信息技术为手段,全面提升建筑施工过程的管理水平、提高工程质量和安全、降低工程成本和风险、提高施工效率和管理水平的智能化技术和系统。通过物联网、互联网、大数据、云计算等技术的应用&a…

Vue.js实现可编辑表格并高亮修改的单元格

实现一个可编辑的表格,让用户可以修改表格中的数据,并且能够清楚地看到哪些单元格被修改过。这样的功能可以提高用户体验,也方便后端处理数据的变化。 本文将介绍如何使用Vue.js和Element UI的el-table组件来实现一个可编辑表格,…

课堂练习3.1:进程的描述与状态

3-1 进程是操作系统中一个非常重要的概念。程序的运行是通过进程来完成的。在层次结构的操作系统中,进程不仅是系统分配资源的基本单位,而且是 CPU 调度的基本单位。进程管理是操作系统最重要的功能之一。 通过本实训将会学习到:Linux 0.11 …