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

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

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

相关文章

matlab 最小二乘拟合空间直线(方法三)

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示四、相关链接博客长期更新,GPT与爬虫自重,你也未必能爬到最新版本。 一、算法原理 1、算法过程 空间直线的点向式方程为:

poe与chatgpt那个功能更强大

在当前的人工智能领域,Poe Al Chat以其卓越的聊天能力和实用的功能,受到了大家的广泛关注和喜爱。本文好为您个绍Poe Al Chat的功能,以及我们国内用户如何进行充值订阅。Poe Al Chat是一个基于OpenAl的GPT模型开发的人工智能聊天工具。它能够…

基于Springboot的校园失物招领系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园失物招领系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

Docker镜像和容器的简单操作

1.镜像管理 搜索镜像: 这种方法只能用于官方镜像库 搜索基于 centos 操作系统的镜像 # docker search centos 按星级搜索镜像: 查找 star 数至少为 100 的镜像,默认不加 s 选项找出所有相关 ubuntu 镜像&#xf…

为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)

首先,需要知道的是为 setTimeout 或 setInterval 提供一个字符串作为第一个参数,这本身并不是一个错误。它是完全合法的JavaScript代码。这里的问题更多的是性能和效率的问题。很少有人解释的是,如果你把字符串作为setTimeout或setInterval的…

46.0/基本的 HTML 标签(详细版)

目录 46.1 标题 46.2 段落 Paragraph, 46.3 换行 46.4 HTML 注释 46.5 空格 46.6 水平线 46.7 控制网页中文字的标记 46.8 居中标记 46.9 预格式化文本 46.10 网页背景 46.1 标题 标记解释 标题使用 <h1> 至 <h6> 标签进行定义。 <h1> 定…

uniapp如何制作一个收缩通讯录(布局篇)

html&#xff1a; <view class"search"><view class"search_padding"><u-search change"search" placeholder"请输入成员名称" v-model"keyword"></u-search></view></view> <view…

C语言有哪些预处理操作?

C语言的预处理是在编译之前对源代码进行处理的阶段&#xff0c;它主要由预处理器完成。预处理器是一个独立的程序&#xff0c;它负责对源代码进行一些文本替换和处理&#xff0c;生成经过预处理的代码。以下是C语言预处理的一些重要特性&#xff1a; 1&#xff0c;头文件包含 #…

Ansible中执行流控制

1.ansible中的迭代循环 创建目录和文件 vim createfile.yaml - name: create file playbook hosts: all tasks: - name: create file file: path: "/mnt/{{item[name]}}" state: …

Unity 自定义窗口

放在Editor文件夹下&#xff1b; #if UNITY_EDITORusing System; using UnityEditor; using UnityEngine;namespace EditorCustumTool {/// <summary>/// 自定义窗口/// </summary>public class CustomWindow : EditorWindow{public enum FlagType{Flag1 101,Fl…

前端知识笔记(三十六)———HTTP 缓存机制

一、强制缓存 只要浏览器判断缓存没有过期&#xff0c;则直接使用浏览器的本地缓存而无需再请求服务器。 强制缓存是利用下面这两个 HTTP 响应头部&#xff08;Response Header&#xff09;字段实现的&#xff0c;它们都用来表示资源在客户端缓存的有效期&#xff1a; Cache-…

java中对象和Map互相转换的几种方式

在Java中&#xff0c;将对象和Map相互转换是常见的操作&#xff0c;可以通过不同的方式实现这种转换。以下是几种常见的方法以及示例说明&#xff1a; 1. 使用Hutool工具类 Hutool是一个优秀的Java工具包&#xff0c;提供了丰富的工具方法&#xff0c;其中就包括对象和Map之间…

【基于ESP32无线蓝牙上传电脑Excel透传数据】

【基于ESP32无线蓝牙上传电脑透传数据】 1. 引言2. 环境搭建2.1 硬件准备:2.2 软件准备:2.3. 配置Excel端口接收功能3. 测试代码4. 连接电脑和 ESP324.1 烧录程序4.2 启动蓝牙服务4.3 测试数据透传5. 总结1. 引言 随着物联网技术的发展,越来越多的设备开始支持无线通信,其…

fl studio2024官方体验版如何破解?

fl studio2024全称Fruity Loops Studio2024&#xff0c;这款软件也被人们亲切的称之为水果&#xff0c;它是一款功能强大的音乐创作编辑软件&#xff0c;拥有全功能的录音室&#xff0c;大混音盘以及先进的音乐制作工具&#xff0c;用户通过使用该软件&#xff0c;就可以轻松制…

轻量封装WebGPU渲染系统示例<43>- 材质组装流水线(MaterialPipeline)之灯光和阴影(源码)

目标: 数据化&#xff0c;模块化&#xff0c;自动化 备注: 从这个节点开始整体设计往系统规范的方向靠拢。之前的都算作是若干准备。所以会和之前的版本实现有些差异。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sa…

redis过期提醒

redis过期提醒 有一次看redis的配置文件发现一个notify-keyspace-events配置&#xff0c;注释里边长篇大论的&#xff0c;那我得看看这是干啥的&#xff0c;看完注释内容&#xff0c;发现不得了了&#xff0c;redis竟然还有过期提醒的功能 接下来得大家解释一下&#xff1a; 首…

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2020)

文章目录 -Abstract1. Introductiondiss former methodour method 2. Related Work3. Compound Model Scaling3.1. 问题公式化3.2. Scaling Dimensions3.3. Compound Scaling 4. EfficientNet Architecture5. Experiments6. Discussion7. Conclusion 原文链接 源代码 - 本文中…

LeNet

概念 代码 model import torch.nn as nn import torch.nn.functional as Fclass LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__() # super()继承父类的构造函数self.conv1 nn.Conv2d(3, 16, 5)self.pool1 nn.MaxPool2d(2, 2)self.conv2 nn.Conv2d(16…

Bash脚本处理ogg、flac格式到mp3格式的批量转换

现在下载的许多音乐文件是flac和ogg格式的&#xff0c;QQ音乐上下载的就是这样的&#xff0c;这些文件尺寸比较大&#xff0c;在某些场合使用不便&#xff0c;比如在车机上播放还是mp3格式合适&#xff0c;音质这些在车机上播放足够了&#xff0c;要求不高。比如本人就喜欢下载…

软件接口安全设计规范

《软件项目接口安全设计规范》 1.token授权机制 2.https传输加密 3.接口调用防滥用 4.日志审计里监控 5.开发测试环境隔离&#xff0c;脱敏处理 6.数据库运维监控审计