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)三层体系结构…

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…

【基于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…

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.数据库运维监控审计

卷王开启验证码后无法登陆问题解决

问题描述 使用 docker 部署&#xff0c;后台设置开启验证&#xff0c;重启服务器之后&#xff0c;docker重启&#xff0c;再次访问系统&#xff0c;验证码获取失败&#xff0c;导致无法进行验证&#xff0c;也就无法登陆系统。 如果不了解卷王的&#xff0c;可以去官网看下。…

飞天使-linux操作的一些技巧与知识点3

http工作原理 http1.0 协议 使用的是短连接&#xff0c;建立一次tcp连接&#xff0c;发起一次http的请求&#xff0c;结束&#xff0c;tcp断开 http1.1 协议使用的是长连接&#xff0c;建立一次tcp的连接&#xff0c;发起多次http的请求&#xff0c;结束&#xff0c;tcp断开ngi…

ky10 server x86 设置网卡开机自启

输入命令查看网卡名称 ip a 输入命令编辑网卡信息 vi /etc/sysconfig/network-scripts/*33改成yes 按ESC键&#xff0c;输入:wq&#xff0c;保存

Aloha 机械臂的学习记录2——AWE:AWE + ACT

继续下一个阶段&#xff1a; Train policy python act/imitate_episodes.py \ --task_name [TASK] \ --ckpt_dir data/outputs/act_ckpt/[TASK]_waypoint \ --policy_class ACT --kl_weight 10 --chunk_size 50 --hidden_dim 512 --batch_size 8 --dim_feedforward 3200 \ --n…

Python网络爬虫环境的安装指南

网络爬虫是一种自动化的网页数据抓取技术&#xff0c;广泛用于数据挖掘、信息搜集和互联网研究等领域。Python作为一种强大的编程语言&#xff0c;拥有丰富的库支持网络爬虫的开发。本文将为你详细介绍如何在你的计算机上安装Python网络爬虫环境。 一、安装python开发环境 进…

bc-linux-欧拉重制root密码

最近需要重新安装虚拟机的系统 安装之后发现对方提供的root密码不对&#xff0c;无法进入系统。 上网搜了下发现可以进入单用户模式进行密码修改从而重置root用户密码。 在这个界面下按e键 找到图中部分&#xff0c;把标红的部分删除掉&#xff0c;然后写上rw init/bin/…