UML中的图-13中UML图详解

news2025/4/27 3:59:35

图是一组元素的图形表示,大多数情况下把图画成顶点和弧的联通图。

UML提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构建图、组合结构图、部署图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。

1.类图

类图(Class Diagram)展现了一组对象、接口、协作和他们之间的关系。类图给出系统的静态设计视图。

类图中通常包括下述内容:类,接口,协作,依赖、泛化和关联关系

类图中也可以包含注解和约束。类图还可以含有包或子系统,二者都用于把模型元素聚集成更大组块。
类图用于对系统的静态设计视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计视图建模时,通常以下述3种方式之一使用类图。
(1)对系统的词汇建模。对系统的词汇建模涉及做出这样的决定:哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外。用类图详细描述这些抽象和它们的职责。
(2)对简单的协作建模。协作是一些共同工作的类、接口和其他元素的群体,该群体提供的一些合作行为强于所有这些元素的行之和。例如,当对分布式系统的事务语义建模时,不能仅仅盯着一个单独的类来推断要发生什么,而要有相互协作的一组类来实现这些语义。用类图对这组类以及它们之间的关系进行可视化和详述。
(3)对逻辑数据库模式建模。将模式看作为数据库的概念设计的蓝图。在很多领域中,要在关系数据库或面向对象数据库中存储永久信息,可以用类图对这些数据库的模式建模。

2.对象图

对象图(Object Diagram)展现了某一时刻一组对象以及他们之间的关系,描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链。

和类图一样,对象图给出系统的静态设计视图或静态进程视图,但它们是从真实的或原型实例的角度建立的。这种视图主要支持系统的功能需求,即系统应该提供给最终用户的服务。利用对象图可以对静态数据结构建模。
在对系统的静态设计视图或静态进程视图建模时,主要是使用对象图对对象结构进行建模。对象结构建模涉及在给定时刻抓取系统中对象的快照。对象图表示了交互图表示的动态场景的一个静态画面,可以使用对象图可视化、详述、构造和文档化系统中存在的实例以及它们之间的相互关系。

3.用例图

用例图(Use Case Diagram)展现了一组用例、参与者以及他们之间的关系。用例图通常包括:用例,参与者,用例之间的扩展关系和包含关系,参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。

用例图用于对系统的静态用例视图进行建模。这个视图主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。当对系统的静态用例视图建模时,可以用下列两种方式来使用用例图。
(1)对系统的语境建模。对一个系统的语境进行建模,包括围绕整个系统画一条线,并声明有哪些参与者位于系统之外并与系统进行交互。在这里,用例图说明了参与者以及它们所扮演的角色的含义。
(2)对系统的需求建模。对一个系统的需求进行建模,包括说明这个系统应该做什么(从系统外部的一个视点出发),而不考虑系统应该怎样做。在这里,用例图说明了系统想要的行为。通过这种方式,用例图使我们能够把整个系统看作一个黑盒子,采用矩形框表示系统边界;可以观察到系统外部有什么,系统怎样与哪些外部事物相互作用,但却看不到系统内部是如何工作的

4.交互图

交互图用于对系统的动态方面进行建模。一张交互图表现的是一个交互,由一组对象和他们之间的关系组成,包含他们之间可能的传递消息。交互图一般包含对象、链和消息。

1)序列图

序列图(Sequence Diagram)描述了以时间顺序组织的对象之间的交互活动

序列图有两个不同于通信图的特征。
(1)序列图有对象生命线。对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在。在交互图中出现的大多数对象存在于整个交互过程中,所以这些对象全都排列在图的项部,其生命线从图的顶部画到图的底部。但对象也可以在交互过程中创建,它们的生命线从接收到构造生为create 的消息时开始。对象也可以在交互过程中撤销,它们的生命线在接收到构造型为 destroy 的消息时结束(并且给出一个大X的标记表明生命的结束)。
(2)序列图有控制焦点。控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段,既可以是直接执行,也可以是通过下级过程执行。矩形的顶部表示动作的开始,底部表示动作的结束(可以由一个返回消息来标记)。还可以通过将另一个控制焦点放在它的父控制焦点的右边来显示(由循环、自身操作调用或从另一个对象的回调所引起的)控制焦点的嵌套。

2)通信图

通信图(Communication Diagram)强调收发消息的对象的组织结构,强调参加交互的对象的组织。

通信图有两个不同于序列图的特性。
(1)通信图有路径。为了指出一个对象如何与另一个对象链接,可以在链的末端附上一个路径构造型(如构造型《local》,表示指定对象对发送者而言是局部的)。通常只需要显式地表示以下几种链的路径:local(局部)、parameter(参数)、global(全局)以及 self(自身),但不必表示 association(关联)。
(2)通信图有顺序号。为表示一个消息的时间顺序,可以给消息加一个数字前缀(从1号消息开始),在控制流中,每个新消息的顺序号单调增加(如2、3等)。为了显示嵌套,可使用带小数点的号码(1表示第一个消息:1.1表示嵌套在消息1中的第一个消息,1.2表示嵌套在消息1中的第二个消息,等等)。嵌套可为任意深度。还要注意的是,沿同一个链可以显示许多消息(可能发自不同的方向),并且每个消息都有唯一的一个顺序号。
序列图和通信图是同构的,它们之间可以相互转换。

3)交互概览图

交互概览图(Interaction Overview Diagram)是UML 2.0新增的交互图之一,它是活动图的变体,描述业务过程中的控制流概览,软件过程中的详细逻辑概览,以及将多个图进行连接,抽象掉了消息和生命线。它使用活动图的表示法,如图7-16所示。纯粹的交互概览图中所有活动都是交互发生的。

4)计时图

计时图(Timing Diagram)描述对象状态随时间改变的情况,适合分析周期性和非周期性任务。

5.状态图

状态图(State Diagram)展现了一个状态机,他由状态、转换、事件和活动构成。状态图关注系统的动态视图,强调对象行为的事件顺序

状态图通常包括简单状态和组合状态、转换(事件和动作)。状态是指对象的命周期中某个条件或者状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。嵌套在另外一个状态中的状态称为子状态,含有子状态的状态称组合状态。转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界(监护)条件满足时进入目标状态。动作是一个可执行的原子操作,是不可中断的,其执行时间是可忽略不计的。直接通过进入节点进入状态,通过退出节点可以结束状态。使用历史状态记住从组合状态中退出时所处的子状态,作用是当再次进入组合状态时,可以直接进入这个子状态,而不是再次从组合状态的初态开始。状态图可以分为区域,而区域又包括退出或者当前执行的子状态,说明组合状态可以在某一时刻同时到达多个子状态,此时通常在其前后使用fork和join 标识。

6.活动图

活动图(Activity Diagram)是一种特殊的状态图,他展现了在系统内部从一个活动到另一个活动的流程,强调对象间的控制流程。

活动图一般包括活动状态和动作状态、转换和对象。

活动状态能够进一步被分解,它们的活动由其他的活动图表示。活动状态不是原子的,它们可以被中断。并且,一般来说,还要考虑到它需要花费一段时间来完成。可以把一个动作状态看作一个活动状态的特例。类似地,可以把一个活动状态看作一个组合,它的控制流由其他的活动状态和动作状态组成。
汗动图可以表示分支、合并、分岔和汇合。分支描述基于布尔表达式的可选择路径,可有一个入流和两个或多个出流,在每个出流上放置一个布尔表达式条件,每个出流的条件不应该重叠,但需要覆盖所有可能性。合并描述当两条控制路径重新合并时,不需要监护条件,只有一个出流。分岔描述把一个控制流分成两个或多个并发控制流,可以有一个进入转移和两个或多个离去转移,每个离去的转移表示一个独立的控制流,这些流可以并行的进行。汇合表示两个或多个并发控制流的同步,可以有两个或多个进入转移和一个离去转移,意味着每个进入流都等待,直到所有进入流都达到这个汇合处。
当对一个系统的动态方面建模时,通常有两种使用活动图的方式。
(1)对工作流建模。此时所关注的是与系统进行协作的参与者所观察到的活动。工作流常常位于软件系统的边缘,用于可视化、详述、构造和文档化开发系统所涉及的业务过程。在活动图的这种用法中,对对象流的建模是特别重要的,常采用泳道将活动图中的活动状态分组。
(2)对操作建模。此时是把活动图作为流程图使用,对一个计算的细节部分建模。在活动图的这种用法中,对分支、合并、分岔和汇合状态的建模是特别重要的。用于这种方式的活动图语境包括该操作的参数和它的局部对象。

7.构件图

构建图(Component Diagram)展现了一组构件之间的组织和依赖。构建图专注于系统的静态实现视图。

8.组合结构图

组合结构图(Composite Structure Diagram)用于描述一个分类器(如类、构建或用例)的内部结构,展示一组相互协作的实例如何完成特定的任务

9.部署图

部署图(Deployment Diagram)是用来对面向对象系统的物理方法建模的方法,展现了运行时处理结点以及其中构件的配置

10.包图

包图(Package Diagram)是用于把模型本身组织成层次结构的通用机制,展现由模型本身分解而成的组织单元以及其间的依赖关系。包可以拥有其他元素,可以是类、接口、用例等等,甚至嵌套其他包。

UML图主要特点
类图展现了一组对象、接口、协作和他们之间的关系
对象图展现了某一时刻一组对象以及他们之间的关系
用例图展现了一组用例、参与者以及他们之间的关系
序列图描述了以时间顺序组织的对象之间的交互活动
通信图强调收发消息的对象的组织结构
交互概览图描述业务过程中的控制流概览等
计时图描述对象状态随时间改变的情况
状态图强调对象行为的事件顺序
活动图展现了在系统内部从一个活动到另一个活动的流程
构件图展现了一组构件之间的组织和依赖
组合构件图展示一组相互协作的实例如何完成特定的任务
部署图展现了运行时处理结点以及其中构件的配置
包图展现由模型本身分解而成的组织单元以及其间的依赖关系

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

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

相关文章

vue3的核心API功能:computed()API使用

常规使用方法: 这样是常规使用方法. 另一种使用方法: 这样分别定义computed的get回调函数和set回调函数, 上面例子定义了plusOne.value的值为1, 那么这时候就走了computed的set回调函数,而没有走get回调函数. 当我们打印plusOne.value的值的时候,走的是get的回调函数而不是…

ubuntu20.04 10分钟搭建无延迟大疆无人机多线程流媒体服务器

1.使用效果 无人机画面 2.服务器视频端口 3.使用教程 3.1.下载ubuntu对应软件包:系统要求ubuntu16以上 3.2修改端口(config.xml文件) 3.3启动服务 目录下输入:终端启动:./smart_rtmpd 后台启动:nohup ./…

大语言模型的工程技巧(一)——GPU计算

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下:regression2chatgpt/ch07_autograd/gpu.ipynb 本文将讨论如何利用PyTorch实现GPU计算。本…

dubbo复习: (6)和springboot集成时的条件路由

根据指定的条件,对不满足条件的请求进行拦截。 比如拦截ip地址为192.168.31.227的请求。只需要在dubbo admin中的条件路由菜单创建相应的规则 enabled: true force: true runtime: true conditions:- host ! 192.168.31.227

单例模式介绍,及其应用场景?

单例模式(Singleton Pattern)是 Java中最简单的设计模式之一,此模式保证某个类在运行期间,只有一个实例对外提供服务,而这个类被称为单例类。 单例模式也比较好理解,比如一个人一生当中只能有一个真实的身份证号,一个国家只有一个政府&#x…

【linux】深入了解线程池:基本概念与代码实例(C++)

文章目录 1. 前言1.1 概念1.2 应用场景1.3 线程池的种类1.4 线程池的通常组成 2. 代码示例2.1 log.hpp2.2 lockGuard.hpp① pthread_mutex_t 2.3 Task.hpp2.4 thread.hpp2.5 threadPool.hpp① 基本框架② 成员变量③ 构造函数④ 其余功能函数: main.cc结果演示 完整…

[Redis]常见数据和内部编码

相关命令 type (key) type 命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、list(列 表)、hash(哈希)、set(集合)、zset(有…

Cloneable 接口和深拷贝,浅拷贝

目录 一.Cloneable 接口 二.浅拷贝 三.深拷贝 四.comparable接口、 五.comparator接口 1.Java 中内置了一些很有用的接口 , Cloneable 就是其中之一 . Object 类中存在一个 clone 方法 , 调用这个方法可以创建一个对象的 " 拷贝 ". 2.来说说调用 clone 方法…

基于大型语言模型的游戏智能体

在人工智能领域,游戏代理的发展对于实现通用人工智能(AGI)至关重要。近年来,大型语言模型(LLMs)及其多模态版本(MLLMs)的进展为游戏代理的进化和能力提升提供了前所未有的机遇。这些…

Django自定义模板标签与过滤器

title: Django自定义模板标签与过滤器 date: 2024/5/17 18:00:02 updated: 2024/5/17 18:00:02 categories: 后端开发 tags: Django模版自定义标签过滤器开发模板语法Python后端前端集成Web组件 Django模板系统基础 1. Django模板语言概述 Django模板语言(DTL&…

Elasticsearch 分析器的高级用法二(停用词,拼音搜索)

Elasticsearch 分析器的高级用法二(停用词,拼音搜索) 停用词简介停用词分词过滤器自定义停用词分词过滤器内置分析器的停用词过滤器注意,有一个细节 拼音搜索安装使用相关配置 停用词 简介 停用词是指,在被分词后的词…

巨亏22亿还能上市?瑞幸为何越亏越值钱?剖析资本破局的商业思维

瑞幸咖啡 18个月登上纳斯达克 13个月退市 19个月,粉单市场股价再次翻了8倍 这个技术性“上市”无常的产品是谁? 其实现在这个笑贫不笑娼的社会 如果我说:我们公司上市了,悲催又退市了。我朋友会说:工资没降吧?…

信创数据库有哪些?哪家好?堡垒机支持吗?

当今时代,数据已经成为了企业最宝贵的资产,因此数据库厂商也是不断增加。这不不少小伙伴在问,信创数据库有哪些?哪家好?堡垒机支持吗? 信创数据库有哪些? 1、达梦数据库 2、openGauss 3、人大…

Mac Pro中的开源虚拟机UTM安装ubuntu(Applce M1,M2芯片)(1)

UTM安装ubuntu(Applce M1,M2芯片)(2)链接: https://blog.csdn.net/qq_38382925/article/details/139158763?spm1001.2014.3001.5502 MacPro安装UTM 1 UTM 下载UTM虚拟机链接: https://mac.getutm.app/ 建议官网下载: 下载 U…

Codesys软件做EtherNET/IP主站与HT3S-EIS-MDN网关通讯步骤

Codesys软件做EtherNET/IP主站与HT3S-EIS-MDN网关通讯步骤 打开codesys软件,新建项目,选择标准项目进入界面后选择CODESYS Control Win v3 x64 ,点击确定。 3.在桌面找到显示隐藏图标,找到如下图所示图标,右击在弹出…

查看bond接口详细信息

cat /proc/net/bonding/bondX 命令用于查看 Linux 系统中的网络绑定(bonding)接口的详细信息。在该命令中,bondX 是网络绑定接口的名称,其中 X 是数字,表示具体的网络绑定接口编号。 输出内容详解: 1. E…

java面试框架篇(Spring常见问题、SpringBoot、SpringMVC、mybatis经典问题、SpringCloud组件)

文章目录 面试专题-java框架篇1. spring常见问题1.1. spring是什么?1.2. 谈谈你对AOP的理解1.3. 谈谈你对IOC的理解1.4. Spring Boot、 Spring MVC和Spring有什么区别1.5. spring bean 生命周期1.6. spring事务传播机制有哪些?1.7. 循环依赖1.8. spring框架中使用了哪些设计模…

并网逆变器学习笔记9---VSG控制

参考文献:《新型电力系统主动构网机理与技术路径》 “构网技术一般包含下垂控制,功率同步控制,虚拟同步机控制,直接功率控制,虚拟振荡器控制 等。其中,虚拟同步机技术,即 VSG,因其物…

webgl开发家居设计软件

WebGL是一种在网页浏览器中渲染3D图形的JavaScript API,它基于OpenGL ES标准,允许开发者创建和显示交互式的3D图形。开发基于WebGL的家居设计软件可以为用户提供一种全新的、沉浸式的家居设计体验。以下是开发此类软件的一些关键步骤和特点。北京木奇移动…