高架学习笔记之UML图概要

目录

零、什么是UML图

一、类图

二、对象图

三、构件图

四、部署图

五、制品图

六、包图

七、组合结构图

八、用例图

九、序列图

十、通信图

十一、状态图

十二、活动图

十三、定时图

十四、交互概览图


零、什么是UML图

        统一建模语言(Unified Modeling Language,简称UML)是一种用于系统设计和分析阶段进行可视化建模的标准语言。它提供了一套丰富的图形符号和规范,帮助开发团队进行可视化建模、沟通交流、系统分析设计、文档生成和代码生成,能够提高开发效率、降低错误率,并促进团队协作和软件质量的提升。

        UML图分为静态图(结构图)和动态图(行为图)两类,静态图包括类图、对象图、构件图、部署图、制品图、包图、组合结构图共7种,动态图包括用例图、序列图、通信图、状态图、活动图、定时图、交互概览图共7种;其中序列图,通信图,交互概览图和计时图又可以统称为交互图。下面仅对这些UML图做一些简单功能的介绍。

一、类图

        类图(Class Diagram)用于描述系统中对象的类型以及它们之间的关系。在类图中,主要包含以下几种元素:

  • 类(Class):表示系统中的一个实体或对象,通常包括类名、属性和方法等信息。类用矩形框表示,类名位于顶部,属性位于中间,方法位于底部。

  • 属性(Attribute):描述类的特征或状态,如变量、常量等。属性通常以名称:类型的形式表示,例如“name: String”。

  • 方法(Method):描述类的行为或操作,如函数、方法等。方法通常以名称(参数列表):返回类型的形式表示,例如“setName(name: String): void”。

  • 关系(Relationship):表示类与类之间的关系,常见的关系有关联、聚合、组合、依赖、泛化、实现等。

、对象图

        对象图(Object Diagram)展示了在系统中的某个特定时刻,实际的对象实例以及这些对象实例之间的相互关系。对象图可以被看作是类图的一个实例,类图描述了对象的静态结构,而对象图则描述了这些对象的动态实例。在对象图中,主要元素为对象和链。对象中包含对象名,对象类型和对象状态;链是类之间的关联关系的实例,是两个或多个对象之间的独立连接。因此,链在对象图中的作用类似于关联关系在类图中的作用。

、构件图

        构件图(Component Diagram)用于描述系统中各种软件构件之间的依赖关系。构件是系统中可替换的、物理独立的部分,可以是代码模块、库、 可执行文件或其他任何软件构建单元。构件图中,主要元素为构件,接口和依赖关系:

  • 构件:构件是软件系统中可独立部署、可替换的、封装了具体实现逻辑的单元。

  • 接口:接口是构件对外提供的服务或功能的抽象描述。它规定了构件所能执行的操作以及操作的输入输出参数。外部客户或其他构件可以通过调用构件的接口来使用其功能,而不必关心其内部的具体实现细节。

  • 依赖关系:在构件图中,依赖关系表示一个构件(称为依赖者)使用另一个构件(称为供应商)所提供的服务或功能。

、部署图

        部署图(Deployment Diagram)用于描述在物理硬件上配置软件系统的拓扑结构。部署图展示了计算机网络中硬件节点(如服务器、桌面计算机、移动设备等)的物理连接以及在这些节点上运行的软件构件。在部署图中,主要元素有:

  • 节点(Node):代表系统中的一个物理节点,可以是硬件设备(如服务器、PC、手机等)或者软件执行环境(如应用服务器、数据库服务器等)。

  • 构件(Component):代表系统中的一个软件组件,即一个可替换和独立部署的部分。构件可以被部署到节点上运行,展示了软件组件与物理节点的映射关系。

  • 连接(Connection):表示节点之间的通信路径,用于展示不同节点之间的数据传输和交互方式。

、制品图

        制品图(Artifact Diagram)用于描绘一个系统的物理结构。在制品图中,“制品”(Artifacts)指的是系统开发过程中的具体物理产出物,例如源代码文件、库文件、数据库、XML配置文件、文档以及其他任何可以被看作系统组成部分的实体。制品图通常包括两种元素:制品以及它们之间的关系。在实际应用中,制品图常常与部署图共同使用,形成对系统逻辑架构和物理部署的双重理解。

六、包

        包图(Package Diagram)将相关的元素分组或封装成包,并描述包与包之间的依赖、组合和继承关系。在UML中,“包”是一个容器,它可以包含类、接口、组件和其他子包等多种模型元素。包图的主要目的是将系统中的元素进行分类和组织,以提高可读性和可维护性。通过将相关的元素放入同一个包中,可以更好地理解它们之间的关系。此外,包图还可以帮助开发人员更好地协作,因为不同的团队或人员可以负责不同的包。包图中的元素通常包括包、导入和导出关系。包是用于组织元素的容器,导入和导出关系则用于表示包之间的依赖关系。

七、组合结构

        这种图锁定的范围是对象内部,它强调对象内部的组成结构。组合结构图是一种静态结构图,用于表示逻辑上的“组合结构”,可以包括内部零件,这些零件通过相互交互或通过端口与外界交互。组合结构图的结点元素包括部件、端口、合作、合作使用,以及连接器

八、用例图

        用例图主要用于描述系统、子系统或类的功能,并展示了用户和与用户相关的功能的交互,但是不会描述系统在内部工作的方式。用例图由参与者、用例、子系统以及它们之间的关系构成。参与者不是特指人,而是指系统以外的,在使用系统或与系统交互中所扮演的角色,因此参与者可以是人、事物、时间或其他系统等等用例则是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

九、序列图

        序列图(Sequence Diagram)用于描述对象之间的交互顺序。序列图展示了对象之间的交互过程,包括对象之间发送消息的顺序和时间。在序列图中,参与者(Actor)以垂直的生命线(Lifeline)表示,每个生命线代表一个对象或角色。对象之间的交互通过箭头表示消息的传递方向,可以显示同步消息、异步消息、返回消息等不同类型的消息。

十、通信图

        通信图(Communication Diagram)用于描述系统中对象之间的交互关系。通信图展示了系统中各个对象之间的通信路径和消息传递方式,以便更好地理解系统的结构和交互。通信图与序列图相似,但通信图更侧重于展示对象之间传递消息的关系和结构,而序列图更关注对象之间的动态交互和消息传递顺序。

十一、状态图

        状态图(State Diagram)用于描述对象在其生命周期中各种状态之间的转换和行为。状态图展示了对象在不同状态下的行为和状态之间的转移条件。在状态图中,一个对象可以处于多个状态之一,并且可以根据一定的条件或事件触发,从一个状态转移到另一个状态。状态图由状态(State)、转移(Transition)、事件(Event)和动作(Action)等元素组成。状态表示对象所处的状态,转移表示状态之间的转换条件,事件表示触发状态转移的事件,动作表示状态转移时执行的动作。

十二、活动图

        活动图(Activity Diagram)用于描述系统中的业务流程、工作流程或算法流程。活动图展示了系统中各个活动(Activity)之间的顺序关系、并发关系和条件逻辑。在活动图中,活动表示系统中的一个动作或操作,活动之间通过控制流(Control Flow)连接,表示活动之间的顺序关系。除了顺序流之外,活动图还可以展示并发流(Concurrent Flow)、分支流(Branch Flow)和合并流(Merge Flow)等不同类型的流程控制。活动图还可以包含决策节点(Decision Node)、合并节点(Merge Node)、分支节点(Fork Node)等节点,用于描述流程中的条件判断和并发执行。

十三、定时图

        定时图(Timing Diagram)专注于描述对象之间随时间变化的交互。定时图特别适合于实时系统和嵌入式系统的建模,因为它们需要考虑消息的发送和接收时间以及对象状态的持续时间。在定时图中,时间沿着水平轴(时间轴)展开,而对象的状态和生命线沿着垂直轴表示。定时图显示了对象在其生命周期内的状态变化,以及对象之间如何随着时间发送和接收消息。这些图可以用来分析和设计系统的实时行为,确保系统满足时间约束。定时图采用一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化地表示每条生命线的状态变化,当需要对实时事件进行建模时,定时图可以很好地满足要求

十四、交互概览图

        交互概览图(Interaction Overview Diagram)是交互图与活动图的混合物,可以把交互概览图理解为细化的活动图,在其中的活动都通过一些小型的交互图来表示。交互图包含序列图,通信图,交互概览图和定时图。大多数交互概览图标注与活动图一样。由于交互概览图的每个活动节点内部可以包含嵌套的交互图,这使得它能够详细地展示活动内部的交互细节。这样的结构使得交互概览图非常适合于展示复杂的业务流程和决策逻辑。

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

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

相关文章

【Qt】:坐标

坐标 一.常用快捷键二.使用帮助文档三.Qt坐标体系1.理论2.代码 一.常用快捷键 注释:ctrl / • 运⾏:ctrl R • 编译:ctrl B • 字体缩放:ctrl ⿏标滑轮 • 查找:ctrl F • 整⾏移动:ctrl shift ⬆/…

protobuf学习笔记(二):结合grpc生成客户端和服务端

上一篇文章大概讲了如何将自定义的protobuf类型的message转换成相应的go文件,这次就结合grpc写一个比较认真的客户端和服务器端例子 一、项目结构 client存放rpc服务的客户端文件 server存放rpc服务的服务端文件 protobuf存放自定义的proto文件 grpc存放生成的g…

代码随想录训练营Day36:● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

435. 无重叠区间 题目链接 https://leetcode.cn/problems/non-overlapping-intervals/description/ 题目描述 思路 直接统计重叠区间的个数,就是需要删除的个数 public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,b)-> Intege…

【电子取证篇】哈希校验值的变与不变

【电子取证篇】哈希校验值的变与不变 哈希值(散列值)是针对电子数据内容来计算的,内容变则哈希变;但计算对象的文件名、文件时间等属性改变不会影响散列值!!!—【蘇小沐】 (一&…

点点数据K参数加密逆向分析(RPC方案跟加密算法还原)

文章目录 1. 写在前面2. 接口分析3. 断点分析4. RPC调用5. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长…

【论文通读】UFO:A UI-Focused Agent for Windows OS Interaction

UFO:A UI-Focused Agent for Windows OS Interaction 前言AbstractMotivationMethodsExperimentConclusion 前言 Windows客户端第一个JARVIS,利用GPT4 Vision识别截图信息辅助智能体自动化执行操作,作为微软大肆宣传的一篇工作,其…

什么是齐纳二极管?齐纳二极管1SMB5944BT3G参数详解+应用方案

关于齐纳二极管基本知识: 齐纳二极管,又称稳压二极管。利用PN结的反向击穿状态,电流变化范围大,电压基本不变。制作了具有稳压功能的二极管。这种二极管是一个高电阻半导体器件,直到临界反向击穿电压。在这个临界击穿…

如何将Maven与TestNG集成

我们已经讨论了如何在maven中执行单元测试用例,但那些是JUnit测试用例,而不是TestNG。当maven使用“mvn test”命令进入测试阶段时,这些用例被执行。 本文将介绍如何将Maven与TestNG集成,并在maven进入测试阶段时执行TestNG测试。…

【数据结构】树tree

树的遍历 广度遍历Breadth-first traversal Breadth-first traversal is the traversal strategy used in the binary tree.Breadth first traversal, also known as level order traversal is the traversal strategy used in a binary tree. It involves visiting all the …

《HelloGitHub》第 96 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

ZYNQ学习之Ubuntu下Linux文件系统与用户权限

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Linux 文件系统 1.1 Linux 文件系统简介以及类型 操作系统的基本功能之一就是文件管…

JavaScript练手小技巧:仿米哈游官网人物跟随鼠标位移效果

最近&#xff0c;有同学找到我&#xff0c;说&#xff1a;老师&#xff0c;我想模仿米哈游官网。 我说&#xff1a;可以&#xff0c;很不错的。 她说&#xff1a;有些效果有点难&#xff0c;能不能帮我看下。 于是&#xff0c;我就简单大概粗糙的讲解了下大致的原理&#xf…

2024 ccfcsp认证打卡 2022 06 01 归一化处理

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 输入数字的个数int[] a new int[1010]; // 创建一个数组来存储输入的数字double sum 0; // 用于计算所有输入数字的总…

Android开发 OCR:通过Tesseract实现图片文字识别

下面是整个详解步骤过程 效果图一、OCR的含义二、什么是Tesseract三、前提准备1、添加依赖2、数据文件下载路径 四、实际代码案例Demo如下&#xff1a;Main.xmlMain.java 效果图 流程&#xff1a;获取assets中的图片显示到页面&#xff0c;提取照片内的文字 一、OCR的含义 o…

综合实验1

一、配置IP地址 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [AR1-GigabitEthernet0/0/0]int se4/0/0 [AR1-Serial4/0/0]ip add 15.1.1.1 24 [AR1-Serial4/0/0] [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip add 192.168.2.254 24 [AR2-Giga…

Android 12.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

1.前言 在12.0的系统rom定制化开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备 的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现 2.mtp模式下连接pc后显示的文件夹禁止删…

Docker 容器编排利器 Docker Compose

文章目录 一、Docker Compose 简介二、Docker Compose 安装2.1 Mac、Windows 平台默认支持2.2 Linux 安装(通过包管理)2.2.1 安装2.2.2 测试2.2.3 卸载 2.3 使用PIP 安装与卸载2.3.1 PIP安装2.3.2 PIP 卸载 三、基本使用3.1 术语3.2 部署Flask 应用 四、Compose 常用命令4.1 命…

机器学习——LightGBM算法

机器学习——LightGBM算法 摘要&#xff1a; LightGBM是一种高效的梯度提升框架&#xff0c;它在处理大规模数据时表现出色&#xff0c;并且具有较快的训练速度和较低的内存消耗。本文将介绍LightGBM算法的原理、特点以及与传统GBDT算法的区别&#xff0c;并使用Python对其进行…

什么样的人适合学习网络安全?怎么学?_

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题&#xff1a;什么样的人适合学习网络安全&#xff1f;我适不适合学习网络安全&#xff1f; 会产生这样的疑惑并不奇怪&#xff0c;毕竟网络安全这个专业在2017年才调整为国家一级学科&#xff0c;…

用html写一个贪吃蛇游戏

<!DOCTYPE html> <html> <head><title>贪吃蛇</title><meta charset"UTF-8"><meta name"keywords" content"贪吃蛇"><meta name"Description" content"这是一个初学者用来学习的小…