UML统一建模语言,学习笔记

目录

一、UML 的概述

二、UML 的主要图形类型

1. 类图

2. 对象图

3. 用例图

4. 序列图

5. 协作图

6. 状态图

7. 活动图

三、UML 的关系

1. 继承

2. 实现

3. 关联

4. 聚合

5. 组合

四、UML 的应用场景

1. 软件设计系统

2. 需求分析

3. 项目文档化

4. 团队协作


一、UML 的概述

  • UML 是一种用于软件系统建模的可视化语言,它可以帮助开发团队更好地理解、设计和文档化软件系统。
  • 提供了多种图形表示法,用于描述系统的不同方面,如结构、行为和交互等。

二、UML 的主要图形类型

1. 类图

  • 描述系统中的类、类的属性、方法以及类之间的关系。
  • 常见的关系有继承(Inheritance)、实现(Implementation)、关联(Association)、聚合(Aggregation)和组合(Composition)。
  • 用于系统的静态结构建模,帮助理解系统的类层次结构和对象关系。

2. 对象图

  • 展示系统在某一时刻的具体对象实例以及它们之间的关系。
  • 类似于类图,但更关注具体的对象和它们的状态。

3. 用例图

  • 描述系统的功能需求,从用户的角度展示系统的用例(功能)以及参与者(用户或其他系统)与用例之间的关系。
  • 用于需求分析阶段,帮助确定系统的功能范围和用户需求。

4. 序列图

  • 显示对象之间的交互顺序,按照时间顺序描述对象之间的消息传递。
  • 用于展示系统的动态行为,特别是对象之间的交互过程。

5. 协作图

  • 也展示对象之间的交互,但更侧重于对象之间的关系和链接。
  • 与序列图可以相互转换,用于不同角度的动态行为建模。

6. 状态图

  • 描述对象在其生命周期内的状态变化以及触发状态转换的事件。
  • 用于对具有复杂状态变化的对象进行建模。

7. 活动图

  • 表示系统中业务流程或工作流的活动顺序和控制流。
  • 可以用于描述系统的业务流程、算法或操作的执行过程。

三、UML 的关系

1. 继承

  • 表示子类继承父类的属性和方法,用空心三角形箭头表示。
  • 实现代码复用和层次结构的建立。

2. 实现

  • 表示类实现接口,用虚线空心三角形箭头表示。
  • 定义了类必须实现的接口方法。

3. 关联

  • 表示两个类之间的关系,用实线表示。
  • 可以有不同的类型,如单向关联、双向关联等。

4. 聚合

  • 表示整体与部分的关系,部分可以独立于整体存在,用空心菱形箭头表示。
  • 体现了一种弱的 “拥有” 关系。

5. 组合

  • 也是整体与部分的关系,但部分不能独立于整体存在,用实心菱形箭头表示。
  • 表示一种强的 “拥有” 关系。

四、UML 的应用场景

1. 软件设计系统

  • 在软件设计阶段,使用 UML 图形可以清晰地表达系统的结构和行为,帮助开发团队进行沟通和协作。
  • 设计类结构、定义对象交互、描述业务流程等。

2. 需求分析

  • 用例图可以帮助确定系统的功能需求,与用户和利益相关者进行需求沟通。
  • 理解系统的业务场景和用户期望。

3. 项目文档化

  • UML 图形可以作为软件系统的文档,方便开发人员、维护人员和其他相关人员理解系统的设计和实现。
  • 提供了一种标准化的方式来记录系统的架构和行为。

4. 团队协作

  • 不同的开发人员可以通过 UML 图形更好地理解彼此的工作,促进团队协作和沟通。
  • 便于进行代码审查和项目管理。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

133.鸿蒙基础01

鸿蒙基础 1.自定义构建函数1. 构建函数-[Builder ](/Builder )2. 构建函数-传参传递(单向)3. 构建函数-传递参数(双向)4. 构建函数-传递参数练习5. 构建函数-[BuilderParam ](/BuilderParam ) 传递UI 2.组件状态共享1. 状态共享-父子单向2. 状态共享-父子双向3. 状态共享-后代组…

uniapp组件样式运行至小程序失效

文章目录 一、uniapp样式穿透打包运行至微信小程序失效 一、uniapp样式穿透打包运行至微信小程序失效 组件样式隔离文章参考 解决方案 options: {styleIsolation: "shared",},这个配置项改变了小程序组件的样式隔离模式,使得组件的样式能够共享和继承。…

在服务器里安装2个conda

1、安装新的conda 下载地址:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 本文选择:Anaconda3-2023.03-1-Linux-x86_64.sh 安装:Ubuntu安装Anaconda详细步骤(Ubuntu22.04.1&#xff…

软考系统分析师知识点三七:今日考试

前言 今年报考了11月份的软考高级:系统分析师。 考试时间:11月9日。 今日考试。 今日考试 上午:选择题、案例题,注意记一下选择题和案例题中出现的知识点。 中午:再次整理强记一下论文框架、论文知识点 下午&…

通过 Windows IIS 服务访问腾讯云 CFS 文件系统

互联网信息服务(IIS)可以像访问本地数据一样访问文件存储(Cloud File Storage,CFS)系统上的数据,并提供 Web 服务,实现网站存储与计算分离。本文介绍如何配置 IIS 访问 CFS 文件系统。 背景信息…

鸿蒙的进击之路

1. 题记: 为什么要写鸿蒙,因为她是华为的,为什么是华为就要写,因为华为背负了国人太多太多的包袱,或点赞或抨击。 我是强烈支持华为的,但我会客观公正地去评价华为的产品,就比如这篇博文&#…

【java】哈希<两数之和> 理解哈希

两数之和 题目描述: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你…

GS-Blur数据集:首个基于3D场景合成的156,209对多样化真实感模糊图像数据集。

2024-10-31,由韩国首尔国立大学的研究团队创建的GS-Blur数据集,通过3D场景重建和相机视角移动合成了多样化的真实感模糊图像,为图像去模糊领域提供了一个大规模、高覆盖度的新工具,显著提升了去模糊算法在真实世界场景中的泛化能力…

深入Pillow:处理图像下载中的意外挑战

在当今数字化时代,获取和处理图像数据已经成为了许多应用程序的核心功能。从社交媒体到电子商务,图像的获取和处理对于用户体验至关重要。下载图片不仅能够丰富我们的内容,还能够通过分析图像数据为我们的应用提供更多价值。然而,…

qt5将程序打包并使用

一、封装程序 (1)、点击创建项目->库->clibrary (2)、填写自己想要封装成库的名称,这里我填写的名称为mydll1 (3)、如果没有特殊的要求,则一路下一步,最终会出现如下文件列表。 (4)、删…

.NET中通过C#实现Excel与DataTable的数据互转

在.NET框架中,使用C#进行Excel数据与DataTable之间的转换是数据分析、报表生成、数据迁移等操作中的常见需求。这一过程涉及到将Excel文件中的数据读取并加载至DataTable中,以便于利用.NET提供的丰富数据处理功能进行操作,同时也包括将DataTa…

我谈正态分布——正态偏态

目录 pdf和cdf参数 标准正态分布期望和方差分布形态 3 σ 3\sigma 3σ原则 正态和偏态正态偏态瑞利分布偏度 (Skewness)峰度 (Kurtosis) 比较 正态分布的英文是Normal Distribution,normal是“正常”或“标准”的意思,中文翻译是正态,多完美的…

jsp+servlet+mysql机票订票管理系统

jspsevletmysql机票订票管理系统 一、系统介绍二、功能展示1.机票查询2.选择航班3.填写乘客信息4.提交定单 四、其它1.其他系统实现 一、系统介绍 系统主要功能: 机票查询 1.航行类型 2.出发城市 3.到达城市 4.出发日期 5.返回日期 选择航班 1.航班信息 2.起飞时间…

【启程Golang之旅】一站式理解Go语言中的gRPC

在本文中将深入探讨如何使用Go语言构建基于gRPC的高效服务通信,无论你是刚刚接触gRPC还是已经有一定基础的开发者,这篇文章都将带你从理论到实践,全面理解如何借助Go和gRPC提升应用程序的性能与可维护性。 目录 初识gRPC gRPC基本使用 初识…

「QT」几何数据类 之 QMatrix4x4 4x4矩阵类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

Pandas | 数据分析时将特定列转换为数字类型 float64 或 int64的方法

类型转换 传统方法astype使用value_counts统计通过apply替换并使用astype转换 pd.to_numericx对连续变量进行转化⭐参数:返回值:示例代码: isnull不会检查空字符串 数据准备 有一组数据信息如下,其中主要将TotalCharges、MonthlyC…

从0开始搭建一个生产级SpringBoot2.0.X项目(八)SpringBoot 使用Redis

前言 最近有个想法想整理一个内容比较完整springboot项目初始化Demo。 SpringBoot使用Redis 缓存数据 一、 pom引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&…

stuid学生信息

文章目录 前端准备MySQL数据库封装JDBC 连接工具类 DBUtil查寻学生新增学生 前端准备 结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…

ssm071北京集联软件科技有限公司信息管理系统+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;北京集联软件科技有限公司信息管理系统 \ 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本信息…

D62【python 接口自动化学习】- python基础之数据库

day62 SQL 基础 学习日期&#xff1a;20241108 学习目标&#xff1a;MySQL数据库-- 131 SQL基础和DDL 学习笔记&#xff1a; SQL的概述 SQL语言的分类 SQL的语法特征 DDL - 库管理 DDL - 表管理 总结 SQL是结构化查询语言&#xff0c;用于操作数据库&#xff0c;通用于绝大…