UML统一建模语言

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.mzph.cn/news/153044.shtml

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

相关文章

Shell判断:模式匹配:case(一)

一、前言 shell编程中if和case都是用来做流控的。 二、case语法结构 case 变量 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; 模式3) 命令序列3 ;; *) 无匹配…

如何科学的进行Android包体积优化

这篇文章会分享小厂如何做包体积优化相关主题,涉及内容包括:1) Android包体积优化的一种可能是比较标准的推进做法,2) 大致流程的心路历程和思考方式,3) 如何去总结和分享你们进行过的包体积优化项目。本文不仅仅是一篇分享&#…

深入探索 PaddlePaddle 中的计算图

**引言** 计算图是深度学习平台 PaddlePaddle 的核心组件之一,它提供了一种图形化的方式来表示和执行深度学习模型。通过了解和理解 PaddlePaddle 中的计算图,我们可以更好地理解深度学习的工作原理,并且能够更加灵活和高效地构建和训练复杂…

stable diffusion十七种controlnet详细使用方法总结

个人网站:https://tianfeng.space 前言 最近不知道发点什么,做个controlnet 使用方法总结好了,如果你们对所有controlnet用法,可能了解但是有点模糊,希望能对你们有用。 一、SD controlnet 我统一下其他参数&#…

PLC梯形图实操——风扇正反转

文章目录 1.项目内创建函数块(FB)2.项目内创建数据块(DB)2.1去除优化块访问2.2去除优化块的访问后对数据块进行编译 3.在函数块(FB)内实现正转反转的自锁与互锁3.1在函数块内实现电机正反转的梯形图 4.主函…

2 Redis的高级数据结构

1、Bitmaps 首先,最经典的应用场景就是用户日活的统计,比如说签到等。 字段串:“dbydc”,根据对应的ASCII表,最后可以得到对应的二进制,如图所示 一个字符占8位(bit),…

HTTP1.1升级HTTP2.0

HTTP1.1升级HTTP2.0 一,前言介绍 1.为什么要升级http2.0 HTTP2.0相比于HTTP1.x有以下几个优点: 二进制分帧:HTTP2.0将所有传输的信息分割为更小的消息和帧,并采用二进制格式对它们进行编码,这样可以更好地对数据进行…

【Rust】快速教程——模块mod与跨文件

前言 道尊:没有办法,你的法力已经消失,我的法力所剩无几,除非咱们重新修行,在这个世界里取得更多法力之后,或许有办法下降。——《拔魔》 \;\\\;\\\; 目录 前言跨文件mod多文件mod 跨文件mod //my_mod.rs…

单机版-redis(手动部署)

单机版-redis部署 部署模式:单机版-redis部署 Redis版本:redis-4.0.1 部署redis方式:手动部署 解决GCC问题 linux升级gcc版本详细教程_gcc升级-CSDN博客 在完成第三步时已完成配置,后续为操作命令以及注意事项; 在进行操作数…

【数据结构】——双链表(增删查改)

目录 前言: 一:双链表的定义 ​编辑 二:双向链表的实现 2.1:链表的构造 2.2:创建头节点 2.3:创建节点 2.4:链表的尾插 2.5:链表的打印 2.6:链表的尾删 2.7&a…

[计算机网络]网络层概述

呼,写了这么久终于重新开始啦! 自己落下了太多东西了.....是时候应该重新拾掇起来了. 关于后面的代码项目,我的想法是vilas.js仍然使用js来进行编写,但是后续其他的项目会开始尝试使用ts来进行书写了. 就算是前端也需要点规范吧..... 0.写在前面 这篇文章要和大家道个歉,首…

2023年中职“网络安全“—Linux系统渗透提权③

2023年中职"网络安全"—Linux系统渗透提权③ Linux系统渗透提权任务环境说明:1. 使用渗透机对服务器信息收集,并将服务器中SSH服务端口号作为flag提交;2. 使用渗透机对服务器信息收集,并将服务器中主机名称作为flag提交…

​软考-高级-系统架构设计师教程(清华第2版)【第13章 层次式架构设计理论与实践(P466~495)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第13章 层次式架构设计理论与实践(P466~495)-思维导图】 课本里章节里所有蓝色字体的思维导图

Figma 插件学习(一)

一.插件介绍 插件在文件中运行,执行一个或多个用户操作,并允许用户自定义其体验或创建更高效的工作流程。 插件通过专用插件API与Figma的编辑器交互。还可以利用外部Web API。 1.插件API 插件API支持读写功能,允许查看、创建和修改文件的…

打破传统束缚,释放服务潜能:本地生活服务商聚合系统引领行业新风向!

本地生活服务商聚合系统是一种集合多平台、多项目的创新型服务系统,它打破了传统服务商系统的一对一限制,为创业者和运营商带来了诸多优势。小多将深入探讨本地生活服务商聚合系统的优势。 随着互联网的快速发展,本地生活服务也迎来了蓬勃的发…

el-tree 与table表格联动

html部分 <div class"org-left"><el-input v-model"filterText" placeholder"" size"default" /><el-tree ref"treeRef" class"filter-tree" :data"treeData" :props"defaultProp…

彻底删除的文件如何恢复?分享正确方法!

“求救&#xff01;我在清理电脑的过程中&#xff0c;把一些比较久远的文件彻底删除了。但是我突然想起好像有些非常重要的数据也一同被删掉了&#xff0c;这可怎么办&#xff1f;有方法恢复彻底删除的文件么&#xff1f;” 在日常使用电脑的过程中&#xff0c;很多用户或许都会…

机器学习-笔记

绪论 参考期刊 ICCV 偏向视觉CVPR 偏向MLIAAA AI原理ICML 参考链接 CSDN 机器学习知识点全面总结 课堂内容学习-0912-N1 对于特征提取&#xff0c;简而言之就是同类聚得紧&#xff0c;异类分得开&#xff1b;   detection研究的是样本二分类问题&#xff0c;即分为正样本…

Rockdb简介

背景 最近在使用flink的过程中&#xff0c;由于要存储的状态很大&#xff0c;所以使用到了rockdb作为flink的后端存储&#xff0c;本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构&#xff0c;它和hbase很像&#xff0c;不过严格的说&#xff0c;基于LS…

设计模式-行为型模式-责任链模式

一、什么是责任链模式 责任链模式是一种设计模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…