软件设计(十四)-UML建模(上)

2023-11-19

软件设计(十三)-原码、反码、补码、移码icon-default.png?t=N176https://blog.csdn.net/ke1ying/article/details/129115844?spm=1001.2014.3001.5501

UML建模包含:用例图,类图与对象图,顺序图,活动图,状态图,通信图,构件图

  • 用例图

主要包含关系,扩展关系,泛化关系。

 

首先旁边的对象肯定是参与者。

包含关系 include:登记外借信息,必须要用到用户登入,所以是包含。

扩展关系 extend:查询书籍 也可以直接修改书籍,所以不是包含,是扩展关系。(关键在于是否必须,包含关系就是必须,但是修改书籍则不是必须的)

  • 类图与对象图

 

 

关系包含依赖关系,泛化关系,组合关系,聚合关系,实现关系。

组合和聚合又统称为关联关系。

泛化是对类来的,实现是对接口来的

组合 和 聚合都是菱形,组合是实心,聚合是空心。

书籍列表和书籍是聚合关系。

计算机书籍和非计算机书籍和书籍则是 泛化关系。

第一题:

UML图中箭头分别代表什么关系?

继承关系:A = 艺术家,C 乐队和D歌手都继承于艺术家。

那么C和D为什么C是乐队呢?

聚合关系:多个歌手聚成一个乐队。菱形代表整体一方,所以C是乐队。

那么艺术家编写和演奏什么?演奏B歌曲

每个歌曲由音轨构成,音轨又构成唱片。所以E就是音轨,F就是唱片

一、题:艺术家可能是 一名歌手或一支由2名或2名以上的歌手所组成的乐队。一名歌手可以不属于任何乐队,也可以属于一个或者多个乐队。

问:那么他们的多重度是多少

D表示歌手,(2)那里多重度应该是 2 --*歌手   (以对方为主体来看,他要多少给多少,一个乐队至少对应2个以上歌手,所以2--*)

所以C代表乐队,(1)那里写0--*个乐队     (以对方为主体来看,他要多少给多少,一名歌手不属于任何乐队,也就是说一个歌手可以对应0个乐队。)

一条音轨只包含一首歌曲或空,一首歌曲可分布在多条音轨,同一歌曲在唱片中最多只能出现一次。

B代表歌曲,E代表音轨,所以(3)以音轨为主体来看,一条音轨只包含一首或者空,所以0--1

  1. 以歌曲为主体来看,一首歌可分布在多条音轨,所以是1--*
  2. 因为每个唱片由多个音轨构成,所以以唱片为主体,1--*
  3. 因为每个唱片由多个音轨构成,所以以音轨为主体,1(再多的音轨都只能要一张唱片)

以上就是每个位置的多重度。

每一条音轨都有开始位子和持续时间,一张唱片上的音轨次序是非常重要的,因此对于任意一条音轨,播放器需要准确知道,它的上一条音轨和下一条音轨是什么(可能不存在)。

给类track加上 0 --1的多重度,两端都是音轨。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件设计(十四)-UML建模(上) 的相关文章

  • C# Break 和 Continue 语句以及数组详解

    C Break 它被用于 跳出 switch 语句 break 语句也可用于跳出循环 以下示例在 i 等于 4 时跳出循环 示例 for int i 0 i lt 10 i if i 4 break Console WriteLine i
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • UML 的高效替代方案

    我发现 UML 很难快速创建 我想更快地表达我的想法 特别是对于小型开源项目 如果它足够大 我会费心使用 UML 但是这个项目对于这种事情来说太小了 我不想要另一个让我觉得 不 我稍后再做 的工具 有什么建议么 UML 不是一种工具 而是一
  • 我应该使用什么图来表示模块中功能之间的交互?

    我需要使用 UML 或 SysML 符号创建图表 我有由函数组成的模块 有些函数仅在模块 内部 使用 其他函数则由其他模块使用 Example MODULE 1有两个功能 func1 and func2 func2 uses func1 i
  • 用例图包括

    我有一个关于用例图的问题 如图所示 用户可以输入或更新他的姓名和问题 正如您所看到的 用户在第一次输入信息时需要输入姓名和问题 因此包括在内 但是 如果他希望更新他的信息 图表是否表明他必须修改名称和问题 因为它们包含在内 例如 如果他拼错
  • 主动类与被动类

    在 UML 规范上层结构 2 5 仍为 Beta 第 203 页 中 可以通过将 isActive 设置为 true 来指定类为活动类 即 它的每个实例都是一个活动对象 当 isActive 为 false 时 类是被动的 即 它的每个实例
  • uml 与 RDF 和 OWL 的组合关系

    我是 RDF 和 OWL 本体的初学者 我正在尝试将此图转换为 OWL 语法
  • 学习 UML 的最佳来源是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 UML 中指定“一次一个”?

    我正在制作一个类图Classroom and a Course class 我怎样才能表明Classroom只能有一个Course一次在其中吗 我知道我可以使用多重性来指定教室可以只开设一门课程 但这并不能完全指定在不同时间可以有除该一门课
  • 如何在 UML 活动图上显示异步操作

    我即将绘制 记录一些客户端 服务器连接建立代码 以更好地理解它 有几个操作是在单独的线程中异步完成的 连接线程 数据接收线程等 我应该在单独的图表上显示它们吗 我更愿意将其放在单个图表上以掌握整体视图 但不知道如何在活动图上表示它 我不确定
  • 聚合、组合、关联、直接关联

    我正在复习面向对象编程方面的知识 在类之间的关系主题下 我遇到了一些对我来说有点模糊的关系 我知道依赖项 uses a 和继承 is a 但我对聚合 组合 关联和直接关联有点不熟悉 另外 其中哪一个是 has a 关系 有些可以与关联互换使
  • staruml 抽象类?

    有谁知道如何使用 StarUML 创建抽象类 我在文档中找不到任何提及 是否有某种反映抽象类的更一般的概念 从工具箱中选择类并将其添加到画布中 然后转到属性选择 isAbstract 复选框 然后类名显示为斜体
  • UML 聚合可以是双向的吗?

    我正在 Python 中实现一个具有 MVC 模式的应用程序 具有以下类定义 class Controller object def init self model view self model model self view view
  • 在 Papyrus UML 模型中使用 MARTE GQAM 构造型

    我正在尝试使用 MARTE GQAM 构造型来构造模型的某些元素 但在为其某些属性赋值时遇到麻烦 例如 我将两条生命线之间的消息定型为 我想为其 hostDemand 属性分配一个值 该属性应为 NFP Duration 实例 我看不到如何
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 如何在 UML 序列图中显示实例化?

    如何显示 Web 服务器实例化视图并重新获得流的控制权 也许我没有使用正确的图表类型 非常感谢 Ruben 的答案中的图表是正确的 但缺少一般的 UML 答案 当 创建 线 在本例中为虚线 连接到所创建生命线的框 标签 顶部时 它会创建另一
  • 如何使用 js/uml 对 JavaScript 文件进行逆向工程?

    Goal 我的目标是从我的 JavaScript 项目 由多个 js 文件组成 中获取 UML 模型并将其存储为 XMI 我已经走了多远 我在网上搜索了一下 发现js uml是第一个去的地方 我已经设法让 js uml 插件与 Eclips
  • Android:从 Android Java 源代码创建 UML [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以从我的 Java Android 源代码自动创建 Uml 的程序 我测试过ArgoU
  • UML状态图中守卫和事件的区别

    我以为我可以区分event and guard 但我遇到了一个与守卫类似的事件 counter gt 4 pin is high switch on event 我将变量计数器从小于 4 的某个值更改为大于 4 的值作为事件 这是否意味着事
  • 如何在 UML 中正式记录 C# 属性?

    在 UML 类图中记录类的 C 属性的正确方法是什么 我还没有决定这是否是我的答案 但我想我会把它扔在那里以便讨论 这看起来可以接受吗 它是属性类型的实例 其中元数据值放入下面的标记值中 我刚刚弄清楚如何添加自定义立体类型 该箭头只是一个标

随机推荐

  • MySQL事务提交过程(二)

    异步2周年 技术图书免费选 程序员8月书讯 项目管理 代码托管 文档协作 开发更流畅 MySQL事务提交过程 二 2017 01 01 21 18 389人阅读 评论 0 收藏 举报 分类 MySql 43 上一篇文章我们介绍了在关闭bin
  • 图论--最近公共祖先LCA

    最近公共祖先LCA LCA Least Common Ancestors 即最近公共祖先 是指这样一个问题 在有根树中 找出某两个结点u和v最近的公共祖先 另一种说法 离树根最远的公共祖先 最近公共祖先是相对于两个节点来说的 一般来说 最近
  • Vmware 虚拟机针对Linux客户机操作系统的配置 及MobaXterm的配置

    这边VMware虚拟机的配置流程只是很多种的一种 点击创建新的虚拟机 典型 推荐 T 下一步 选择第三个 稍后安装操作系统 选第二个会进行默认安装 这边第二个有iso路径是因为已经安装过了 下一步 客户机操作系统 Linux选项 版本 Ce
  • 关于若依框架集成jsencrypt实现密码加密传输方式(AuthenticationContextHolder.setContext(authenticationToken);报错问题改造)

    一 修改前端login js对密码进行rsa加密 import encrypt from utils jsencrypt 登录方法 export function login username password code uuid pass
  • python中字典详解

    基本概念 字典是存储键值对的数据的 它是根据键来获值的一种数据结构 键为Keys 值为values 键是不可以重复的 但是值可以 创建时如果同一个键被赋值两次 后一个值会被记住 键必须不可变 所以可以用数字 字符串或元组充当 而用列表就不行
  • r语言 面板数据回归_面板数据分析步骤及流程-R语言

    面板数据 面板数据 Panel Data 也成平行数据 具有时间序列和截面两个维度 整个表格排列起来像是一个面板 面板数据举例 模型说明及分析步骤 1 首先确定解释变量和因变量 2 R语言操作数据格式 部分截图如下 这里以index3为因变
  • C语言制作“三天打鱼;两天晒网”

    include
  • Azure问题:第一次上传要求验证。Azure Issue: Asking for authentication for the first push.

    一开始我也好奇哪来的验证 I wonder why but it s required 第一步添加远程仓库First add remote git remote add origin 仓库链接commandLine 第二步新建分支creat
  • 2023年船舶、海洋与海事工程国际会议(NAOME 2023)

    会议简介 Brief Introduction 2023年船舶 海洋与海事工程国际会议 NAOME 2023 会议时间 2023年10月20日 22日 召开地点 中国 镇江 大会官网 NAOME 2023 2023 Internationa
  • Linux普通用户密码忘记了怎么办

    Linux普通用户密码忘记了怎么办 首先 确认是用root用户登录系统的 然后打开终端 输入sudo passwd yana回车 yana是要修改的用户名 3 之后输入两次新密码 出现以下提示说明密码修改成功
  • 峰面积峰高半峰宽_气相色谱15种常见异常峰来自哪?

    在日常色谱定量分析中 出现色谱峰形异变或鬼峰 不但严重影响定量精度 甚至使分析工作无法进行 为此我们把峰形异变常见类型 15种 加以分析 并给出可能原因 供工作经验不足的色谱工作者参考 我们在此讨论的峰形异变是指在色谱分析方法确定后 与曾经
  • Qt多线程之QThread

    Qt应用运行时会自动创建一个UI线程 Qt为了防止多线程操作界面出现问题 有关界面的操作必须在UI线程中 这个线程也就是主线程 然而程序运行的时候经常会有复杂操作 若在主线中进行处理则UI界面会出现暂停卡死的现象 所以 为了良好的用户体验
  • shell脚本——系统工具箱(SystemToolbox)

    趣味计算器编写 一些想法 分析需要的功能 构建整体框架 着手完整代码 一些想法 需要使用shell编写一个简单实用的系统工具箱脚本 一共想出了两套方案 本套综合了一些自己的想法不是很熟练大家看个乐 o 基本使用界面大概是这样 分析需要的功能
  • iOS音视频—Shell脚本语言(语法-变量)

    Shell脚本语法 变量 一 注释 表示注释 注意 在Shell脚本中没有多行注释 只有单行注释 例如 脚本代码 bin bash 输出了Hello world echo hello world 二 变量 2 1 变量定义 bin bash
  • 二叉树及其性质详解

    问题导读1 什么是二叉树 2 二叉树性质是什么 3 什么是完全二叉树 本节将给大家介绍一类具体的树结构 二叉树 简单地理解 满足以下两个条件的树就是二叉树 本身是有序树 树中包含的各个节点的度不能超过 2 即只能是 0 1 或者 2 例如
  • Python-基于数据驱动模式的自动化测试框架搭建的的逐步实现(二)

    Python 基于数据驱动模式的自动化测试框架搭建的的逐步实现 二 封装走起 后续关于
  • 开源按键组件Multi_Button的使用,含测试工程

    之前的文章中介绍过按键的处理方法 多功能 单击 双击 长按 按键设计 今天再来分享另外一种方式 MultiButton 1 Multi Button简介 MultiButton 是Github上的一个开源的按键处理组件 作者0x1abin
  • Transmission Control Protocol (TCP)

    TCP协议 Transmission Control Protocol 是在IP协议之上的 确保IP数据包可靠传输的协议 TCP协议拥有一些用于解决基于数据包的问题 例如丢包 包序错乱 重复包及包损坏 由于TCP协议是IP协议之上最常用的协
  • 中国金融科技前沿技术发展趋势及应用场景研究 附下载地址

    国家高度重视金融科技应用对于强化金融监管能力和促进金融转型发展的双重作用 在强化监管方面 以降低合规成本 有效防范金融风险为目标的监管科技 Regtech 正在成为金融科技的重要组成部分 在促进发展方面 金融科技应用能够有效提升金融服务效率
  • 软件设计(十四)-UML建模(上)

    软件设计 十三 原码 反码 补码 移码https blog csdn net ke1ying article details 129115844 spm 1001 2014 3001 5501 UML建模包含 用例图 类图与对象图 顺序图