高架学习笔记之UML图概要

news2025/4/19 17:55:59

目录

零、什么是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.coloradmin.cn/o/1555638.html

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

相关文章

接口自动化框架搭建(九):接入钉钉消息通知

1,jenkins安装钉钉插件 2,在钉钉群聊设置机器人 3,jenkins配置钉钉 根据情况选择: 除了这些,其他不用配置,配置完成点击确认 4,项目配置 添加后保存 5,测试下效果 构建完成后&a…

fzf 命令行工具 - 终端模糊搜索

1. 介绍 fzf 命令行工具 Github 仓库:GitHub - junegunn/fzf: :cherry_blossom: A command-line fuzzy finder fzf 是一款使用 go 语言编写的交互式命令行工具,有着 “命令行模糊搜索神器” 的美称 可以用于文件列表、历史命令、命令输出结果等模糊搜索…

2013年认证杯SPSSPRO杯数学建模A题(第一阶段)护岸框架全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 A题 护岸框架 原题再现: 在江河中,堤岸、江心洲的迎水区域被水流长期冲刷侵蚀。在河道整治工程中,需要在受侵蚀严重的部位设置一些人工设施,以减弱水流的冲刷,促进该处泥沙的淤积&…

Kubernetes-running app on kube

Docker 安装Docker 首先,您需要在Linux机器上安装Docker。如果您不使用Linux,则需要启动一个Linux虚拟机(VM)并在该虚拟机中运行Docker。如果你使用的是Mac或Windows系统,并按照指令安装Docker, Docker将为你建立一个虚拟机,并在…

京东云服务器价格_云主机价格查询系统_2024年京东云优惠活动

2024年京东云服务器优惠价格表,轻量云主机优惠价格5.8元1个月、轻量云主机2C2G3M价格50元一年、196元三年,2C4G5M轻量云主机165元一年,4核8G5M云主机880元一年,游戏联机服务器4C16G配置26元1个月、4C32G价格65元1个月、8核32G费用…

基于Unity+Vue3通信交互的WebGL项目发布实践

基于UnityVue3通信交互的WebGL项目发布实践 实践路线 基于UnityVue3通信交互的WebGL项目发布实践问题背景准备工作解决方案项目实践小目标搭建Unity测试项目 创建Vue3测试项目运行项目验证unity和vue通信功能总结与展望 问题背景 我们最近需要把unity开发的pc项目迁移到web端&…

MacOS M1/M2/M3芯片如何安装Python3.6

前言 Mac电脑M芯片安装Python3.6报错。 一般情况下,Mac系统可以使用homebrew来管理安装软件。 brew search搜索发现,最低只能直接安装python3.7版本。 于是从Python官网下载安装包进行安装,确实也没有报错,安装完成后执行总是k…

爬虫学习(爬取音乐)

import re import requestsurl "http://www.yy8844.cn/ting/numes/sussoc.shtml" response requests.get(url) response.encoding "gbk" # print(r.text) #第一步,访问网页获取MusicID p re.compile(r"MusicId(.*?);",re.S) prin…

大数据-hive,初步了解

1. Hive是什么 Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。 简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapRedu…

【Node.JS】koa

文章目录 概述koa和express对比koa下载安装使用1.创建koa项目文件目录2. 创建koa服务3. 添加路由 koa-router4. 数据库服务 mongodb5. 添加请求参数json处理 koa-bodyparser6. 用户接口举例7.引入koa一些常用插件8.用户登录验证 koa-jwt9.webpack生产打包 来源 概述 Koa 是一个…

数据结构(六)——图

六、图 6.1 图的基本概念 图的定义 图:图G由顶点集V和边集E组成,记为G (V, E),其中V(G)表示图G中顶点的有限非空集;E(G) 表示图G中顶点之间的关系(边)集合。若V {v1, v2, … , vn},则用|V|…

Jenkins实现CICD

Jenkins实现CICD JenkinsCI简介环境安装新建任务源码管理构建配置发送邮件配置自动化项目定时构建 JenkinsCD简介配置ssh保证其可以免登录接下来配置github的webhook正式实现自动化打包master主分支的代码将前端三剑客代码文件发送到网站服务器对应的tomcat Jenkins面试题 Jenk…

微信小程序的页面制作---常用组件及其属性2

一、标签栏taBar 在全局配置文件app.json中添加taBar配置,可实现标签栏配置。标签栏最少2个,最多5个 (1)如何配置标签栏? 1》先建多个文件,(以我的index,list,myform文…

民航电子数据库:CAEMigrator迁移数据库时总是卡死

目录 一、场景二、异常情况三、排查四、应急方案 一、场景 1、对接民航电子数据库 2、将mysql数据库迁移到cae数据库 3、使用CAEMigrator迁移工具进行数据库迁移时,该工具会卡死(不清楚是否是部署cae服务的服务器资源导致) 二、异常情况 …

【服务端】node.js详细的配置

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

《剑指 Offer》专项突破版 - 面试题 95、96 和 97 : 和动态规划相关的双序列问题(C++ 实现)

目录 前言 面试题 95 : 最长公共子序列 面试题 96 : 字符串交织 面试题 97 : 子序列的数目 前言 和单序列问题不同,双序列问题的输入有两个或更多的序列,通常是两个字符串或数组。由于输入是两个序列,因此状态转移方程通常有两个参数&am…

持续交付/持续部署流程主要系统构成(CD)

目录 一、概述 二、持续交付/持续部署主要构成 2.1 镜像容器管理系统 2.1.1 镜像分类 2.1.1.1 磁盘镜像 2.1.1.2 镜像容器 2.1.1.2.1 镜像容器分层管理示意图 2.1.2 镜像容器管理系统软件 2.2 配置管理系统 2.2.1 配置管理系统的功能 2.2.1.1 管理操作系统层、中间件…

goland annotate置灰点不动问题解决

goland 项目突然看不到左侧边栏提交记录,annotate按钮灰色不可点击,右键菜单也没有git,尝试各种方法终于解决。 原因是项目使用的非安全模式启动。 C:\Users\用户名\AppData\Roaming\JetBrains\GoLand2022.3\options 路径下的 trusted-path…

java分割回文串(力扣Leetcode131)

分割回文串 力扣原题链接 问题描述 给定一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。 示例 示例 1: 输入:s “aab” 输出:[[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输…

第十四届蓝桥杯省赛C++ B组所有题目以及题解(C++)【编程题均通过100%测试数据】

第一题《日期统计》【枚举】 【问题描述】 小蓝现在有一个长度为100的数组,数组中的每个元素的值都在0到9的范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 …