UML统一建模语言

news2025/1/20 3:36:14

UML包含3种构造块:事物、关系、图。

  • 事物:模型中代表性成分的抽象
  • 关系:把事物结合在一起
  • 图:聚集了相关的事物

事物

结构事务:模型的静态部分,包括类、接口、协作、用例、主动类、构件、制品、结点
行为事物:模型的动态部分,包括交互、状态、活动
分组事物:模型的组织部分,包括包
注释事物:模型的解释部分

关系

依赖:A变化会影响B
关联:描述了一组链,链是对象之间的连接。两个类之间可以有多个不同角色标识的关联。

  • 聚集:部分和整体生命周期不一致。整体消失了,部分仍然存在
  • 组合:部分和整体生命周期一致。整体消失了,部分也要消失

泛化:子元素共享父元素的结构和行为,父类泛化子类,子类继承父类
实现:一个类元指定由另一个类元保证执行的契约
关联的多重度:一个类的实例能够与另一个类的多少个实例相关联

  • 静态建模:类图、对象图、用例图
  • 动态建模:序列图、通信图、状态图、活动图
  • 物理建模:构件图、部署图

序列图、通信图被称为交互图。
类图:一组对象、接口、协作和它们之间的关系
用例图:一组用例、参与者已经它们之间的关系
对象图:某一时刻一组对象以及它们之间的关系
序列图(顺序图):以时间顺序组织对象之间的交互活动

类图

描述一组对象、接口、协作和它们之间的关系。
类图包括:

  • 接口
  • 协作
  • 依赖、泛化和关联关系

类中权限修饰符包括:

  • +:public公有的
  • -:private私有的
  • #:protected受保护的
  • ~:package包的


类图用于对系统的静态设计视图建模,支持系统的功能需求。以下三种方式使用类图:

  • 对系统的词汇建模
  • 对简单的协作建模
  • 对逻辑数据库模式建模

对象图

展示某一时刻一组对象以及它们之间的关系。
给出系统的静态设计视图和静态进程视图。
描述对象的静态快照。对象是类图中所建立事物的实例。
对象图包括对象和链。

用例图

用例图用于对系统的静态用例视图建模,支持系统的行为。两种使用方式:

  • 对系统的语境建模
  • 对系统的需求建模

展现一组用例、参与者以及它们之间的关系。
参与者:系统交互的外部实体,包括使用者、与系统交互的外部系统、基础设备。
用例:一个类,代表一类功能而不是使用该功能的某一具体实例。
关联:参与者和参与者之间。
包含、扩展:用例和用例之间。
扩展:一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例。
泛化:子类继承父类,父类泛化子类。

交互图

对系统的动态方面建模。
有一组对象和它们之间的关系组成,包含它们之间可能传递的消息。
表现为序列图、通信图、交互概览图和计时图

  • 序列图:强调消息时间顺序
  • 通信图:强调接收和发送消息的对象的结构组织

一般包含对象、链和消息

序列(顺序)图

强调对象之间信息的时间顺序,用于展示系统中一个用例和多个对象的行为。
是场景的图形化表示,描述以时间顺序组织的对象之间的交互活动。

  • 参加交互的对象放在图的上方,水平排列
  • 通常,发起交互的对象放在左边,下级对象依次放在右边
  • 1.2.1:create():发送消息调用SR的create()方法,该方法须在SR中实现。

序列图有对象生命线:垂直的虚线,表示对象在一段时间内存在。
序列图有控制焦点:瘦高的矩形,表示一个对象执行一个动作所经历的时间段。

通信(协作)图

强调收发消息的对象的结构组织。展现对象之间的消息流及其顺序。

  • 通信图有路径:链的末端附上一个路径构造型。
  • 通信图有顺序号:消息前加数字前缀。

序列图和通信图是同构的,可以相互转换。
image.png

状态图

展现一个状态机:由状态、转换、事件和活动组成。
关注系统的动态视图。对反应型对象建模。描述一个对象在多个用例之间的行为。
状态:系统的行为模式,规定系统对事件的响应方式。

  • 响应包括:做动作、改变状态

状态图定义的状态有:初态、终态、中间状态

  • 初态:·黑圆点
  • 终态:黑圆点外加一个圆,可以没有,也可以有多个。
  • 状态:圆角四边形,必有状态名,可选状态变量、可选活动。

状态中活动表的语法格式:事件名(参数表)/动作表达式
事件:引起系统做动作或转换状态的控制信息:事件(监护信息)/动作

  • 事件触发转换(迁移)
  • 如果没有事件名,则会自动触发转换。
  • 转换包括两个状态:源状态、目标状态。

动作可以在状态内执行,也可以在状态转换时执行。
三种标准事件:entryexitdo

  • entry:进入状态,立即执行
  • exit:退出状态、立即执行
  • do:内部活动、占有限时间、可以中断

活动图

特殊的状态图:展示系统内从一个活动到另一个活动的流程。
专注于系统的动态视图,强调对象间的控制流程。
包括:活动状态、动作状态、转换、对象。
常用方式:

  • 对操作流建模
  • 对操作建模

构件图


展现了一组构件之间的组织和依赖。
构件图专注于系统的静态实现视图。
将构件映射为一个或多个类、接口和协作。
image.png

部署图

面向对象系统的物理方面建模,展现制品的配置。
对静态部署视图建模,与构件图相关。
展现系统的软件和硬件的关系,在实施阶段使用。

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

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

相关文章

CAD长方形纤维插件2D

插件介绍 CAD长方形纤维插件2D版本可用于在AutoCAD软件内生成随机分布的长方形纤维图形,生成的dwg格式模型可用于模拟二维随机分布的纤维复合材料、随机初始裂缝等,同时模型可导入COMSOL、Abaqus、ANSYS、Fluent等有限元软件内进行仿真分析计算。 插件…

torch.stack

看网上看多没讲的不是很明白,我来试试空间上的理解 # 假设是时间步T1的输出 T1 torch.tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]]) # 假设是时间步T2的输出 T2 torch.tensor([[10, 20, 30],[40, 50, 60],[70, 80, 90]])输出: print(torch.stack((T1,T2…

解决/usr/lib/libstdc++.so.6: version `GLIBCXX_3.x.x‘ not found问题

目录 1、查找缺少库版本2、动态库版本与gcc版本对应关系3、查找 libstdc.so.6.0.x 库文件4、如果libstdc.so.6.0.21库文件已存在,则按照下面的步骤创建软链接即可4.1 拷贝、软连接4.2验证新的 libstdc.so.6.0.21 库文件是否生效 5、如果libstdc.so.6.0.21库文件不存…

在做题中学习(30):字符串相加

思路: 相加时要转换成对应的数字,所以让字符数字-0 如‘9’-‘0’(ASCII)57-489 9110,会进1,把进位保存起来,只取0头插到新串里。 头插时要转换对应字符数字,所以让对应的数字‘…

【LeetCode刷题-双指针】--977.有序数组的平方

977.有序数组的平方 方法:双指针 由于数组是升序排序的,如果所有的数都是非负的,那么数组平方后,仍然保持升序,但数组中有负数,将每个数平方后,数组就会降序 需要找到数组中负数与非负数的分界…

车载开发岗位如何?Android程序员是否转行

这几年的大环境让大家都过的不安逸;社会动荡与就业问题一直困扰了不少人。在大家都认为的高薪工作程序员行业中,现在也是费力不讨好裁员风潮大部分指向互联网。 我们Android开发基本上已经感受很久了,就这就业问题很难存活。对此我们的目光都…

【LeetCode刷题-双指针】--360.有序转化数组

360.有序转化数组 方法&#xff1a;双指针 从两头计算&#xff0c;保存两端较小的值&#xff0c;高中抛物线知识&#xff0c;a>0&#xff0c;向上的抛物线&#xff0c;两端大中间小&#xff0c;从后往前存储计算结果&#xff1b;a<0&#xff0c;向下的抛物线&#xff0c…

深度模型压缩研究回顾

深度模型压缩研究回顾 作者&#xff1a;安静到无声 个人主页 目录 深度模型压缩研究回顾推荐专栏 在本节中&#xff0c;主要介绍了目前主流的深度神经网络压缩与加速方法&#xff0c;主要包括轻量化网络设计、参数量化、知识蒸馏、模型剪枝和硬件加速等&#xff0c;其中模型剪…

【开源】基于Vue.js的音乐偏好度推荐系统的设计和实现

项目编号&#xff1a; S 012 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S012&#xff0c;文末获取源码。} 项目编号&#xff1a;S012&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1…

综述:目标检测二十年(机翻版)(未完

原文地址 20年来的目标检测&#xff1a;一项调查 摘要关键词一 介绍二 目标检测二十年A.一个目标检测的路线图1)里程碑&#xff1a;传统探测器Viola Jones探测器HOG检测器基于可变形零件的模型&#xff08;DPM&#xff09; 2)里程碑&#xff1a;基于CNN的两阶段探测器RCNNSPPN…

蓝桥杯 枚举

例题讲解 特别数的和 #include<iostream> using namespace std; bool ifspecial(int n){while(n){if(n%100||n%101||n%102||n%109){return true;} n/10;}return false; } int main(){int n;cin>>n;int sum0;for(int i1;i<n;i){if(ifspecial(i)){sumi;}}cout&l…

Spring Boot中配置文件生效位置

1. 配置文件位置 首先小伙伴们要明白&#xff0c;Spring Boot 默认加载的配置文件是 application.properties 或者 application.yaml&#xff0c;properties优先级高于yaml。默认的加载位置一共有五个&#xff0c;五个位置可以分为两类&#xff1a; 从 classpath 下加载&…

Redis面经

Redis使用场景 1、缓存&#xff1a; 缓存三兄弟(穿透、击穿、雪崩) 、双写一致、持久化、数据过期策略&#xff0c;数据淘汰策略 2、分布式锁 setnx、redisson 3、消息队列 4、延迟队列 何种数据类型&#xff08;list、zset&#xff09; 缓存三兄弟 缓存穿透 缓存穿透…

【LeetCode刷题-滑动窗口】-- 239.滑动窗口最大值

239.滑动窗口最大值 分析&#xff1a; 方法&#xff1a;优先队列 对于最大值&#xff0c;可以使用优先队列(堆)&#xff0c;其中的大根堆可以帮助实时维护一系列元素中的最大值 在本题中&#xff0c;初始时&#xff0c;将数组nums的前k个元素放入优先队列中&#xff0c;每当我…

首发|PS 2024 正式版来袭,内置AI神经滤镜,支持Win/Mac

前言 Photoshop 2024应用程序发布了生成式AI绘图&#xff0c;这是世界上第一个创意和设计工作流程的软件&#xff0c;为用户提供了一种神奇的新工作方式。生成式AI绘图由Adobe Firefly提供支持&#xff0c;Adobe的创意生成AI模型系列。 正文简介 Photoshop 2024正式版 支持…

基于天牛须算法优化概率神经网络PNN的分类预测 - 附代码

基于天牛须算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于天牛须算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于天牛须优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络…

MySQL使用Xtrabackup恢复全量备份

1、下载之前的备份的全量压缩包 我使用的是备份到AWS存储桶,实验删数数据之前&#xff0c;我做了一次全量备份。 1.1 解压加密的压缩包到指定的目录 由于备份使用的是加密压缩包&#xff0c;现在解压也要用密码解压 解压格式&#xff1a; openssl enc -aes-256-cbc -d -p…

linux进程间通信之信号

摘要 本文旨在研究Linux进程间通信的机制之一&#xff1a;信号。信号是由操作系统来处理的&#xff0c;说明信号的处理在内核态。信号不一定会立即被处理&#xff0c;此时会储存在信 号的信号表中。最后&#xff0c;我们会对这种通信方式的优缺点进行全面的分析&#xff0c;并给…

Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取

Python uiautomation 是一个用于自动化 GUI 测试和操作的库&#xff0c;它可以模拟用户操作来执行各种任务。 通过这个库&#xff0c;可以使用Python脚本模拟人工点击&#xff0c;人工操作界面。本文使用 Python uiautomation 进行微信电脑版的操作。 以下是本次实验的版本号。…