UML简介

news2024/12/23 9:58:18

 UML,全称为Unified Modeling Language(统一建模语言),是一种用于软件工程和系统设计的标准化建模语言。它提供了一套图形化的符号和标记,用于描述和表示软件系统、系统架构、流程、数据结构、行为和交互。UML的设计旨在帮助开发人员、分析师和设计师更好地理解、沟通和设计复杂的系统。

1. 模型

  • 功能模型:从用户的角度展示系统的功能,包括用例图。
  • 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
  • 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

2. UML图

UML图是UML模型中的可视化表示,用于呈现系统的不同方面和特征。UML定义了多种不同类型的图表,每种图表有其特定的目的和用途。

3. 类图

在UML中类图一般由3部分组成。

第一部分:类名,按照命名规范来定义。

第二部分:属性(Attribute),属性通常值类的成员变量。

第三部分:操作(Operation),操作通常指类的成员方法

[可见性] 属性名:数据类型 [=默认值]

[可见性] 方法名([参数1:数据类型,参数2:数据类型,....]) [:返回值类型]

4. 类之间关系

4.1. 关联关系

关联(Association)关系是一种结构化的关系,用于表示一个类对象与另一个类对象的之间的关系,在 代码中被关联的对象以成员变量的方式体现。

单向关联

双向关联

自关联

多重性关联

多重性关联关系又称为重数性(Multiplicity)关联关系,表示关联对象之间存在数量关系。

数量关系符表示如下

  • 1或1..1:表示另一个类的一个对象只与该类的一个对象有关系
  • 0..*:表示另一个类的一个对象与该类的零个或多个对象有关系
  • 1..*:表示另一个类的一个对象与该类的一个或多个对象有关系
  • 0..1:表示另一个类的一个对象没有或只与该类的一个对象有关系
  • m..n:表示另一个类的一个对象与该类最少m最多n个对象有关系(m ≤ n)

4.2. 聚合关系

聚合(Aggregation)关系表示整体与部分的关系,在聚合中成员是整体对象的一部分,成员对象可以 脱了整体对象而独立存在。

4.3. 组合关系

组合(Composition)关系也表示整体与部分的关系,在组合中整体对象可以控制成员对象的生命周期,一旦整体对象消亡成员对象将消失。

4.4. 依赖关系

依赖(Dependency)关系是一种使用关系,在大多数情况下依赖关系体现在某个类方法参数上使用另 一个类的对象作为方法参数。

4.5. 泛化关系

泛化(Generalization)关系也就是继承关系。

4.6. 接口与实现关系

接口(Interface)之间也可以有与类之间关系类似的继承关系和依赖关系,接口与类之间同时还存在一 种实现(Realization)关系,在这种关系中类实现了接口中所有的操作。

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

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

相关文章

docker安装wiki

1.docker pull mediawiki 2.docker run -d --name mywiki -p 8666:80 mediawiki 访问ip:8666,就可以看到配置页面了 3.docker pull mysql docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3307:3306 mysql 4.在配置页面链接ip:3307,连接数据库,接下…

Excel 快速填充

文章目录 利用快速填充进行提取数据利用快速填充进行拆分重组 2013 及以上版本才有的功能. 利用快速填充进行提取数据 有一列的数据已有, 需要提取部分数据到另一列, 只需要输入部分内容, 后面内容可以自动显示, 按下回车即可快速填充. 只要前面手动输入的内容没有错得太离谱…

迅为龙芯开发板开发板系统烧写-启动系统

上面所有的步骤我们都做完以后,输入命令 sync 确保我们之前的步骤都可以保存到 ssd,接着拔下 U盘,最后输入命令 reboot 重启开发板,如下图所示: 如果启动成功,我们会看到 pmon 从硬盘加载 linux 内核和文件…

视频怎么压缩?这样做视频变小还清晰

在我们的日常生活和工作中,视频已经成为了不可或缺的一部分。然而,随着视频文件的增大,如何有效地压缩视频以方便存储和传输成了一个重要的问题,如果你还不知道怎么压缩视频大小,不妨试试下面的方法吧~ 方法一&#xf…

1.3 Linux目录操作

文章目录 零、学习目标一、导入新课二、新课讲解(一)常用权限操作1、常用权限操作(1)chgrp命令(2)chown命令(3)chmod命令 2、权限操作实战任务1、创建文件,设置其用户组任…

【C++设计模式之亨元模式:结构型】分析及示例

简介 享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象,有效地支持大量细粒度的对象,从而减少内存和性能消耗。它通过将对象分为可共享的内部状态和不可共享的外部状态,从而实现对象共享…

AMEYA360分析:纳芯微推出超低功耗TMR开关/锁存器 NSM105x系列

纳芯微推出基于隧道磁阻 (TMR) 的超低功耗磁开关/锁存器NSM105x系列,为数字位置检测提供高精度的解决方案,可被广泛应用于工业与消费领域的位置检测。 NSM105x产品系列包含了3个产品型号,即NSM1051(单极开关)、NSM1052(全极开关)、NSM1053(锁…

四种常见软件架构简介

文章目录 一、单体架构二、分布式应用三、微服务架构四、Serverless架构五、总结 如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮…

uniapp 显示icon异常

按照文档创建的uni-ui项目,仿照示例程序写的代码中icon显示异常  异常情况: 正常情况: 通过比对代码发现,示例程序的App.vue中 有一个引用是问题的关键 正是因为多了这一个引用文件,图表的显示才能正常 …

在Linux怎么用vim实现把一个文件里面的文本复制到另一个文件里面

2023年10月9日,周一下午 我昨天遇到了这个问题,但在网上没找到图文并茂的博客,于是我自己摸索出解决办法后,决定写一篇图文并茂的博客。 情景 假设现在我要用vim把file_transfer.cpp的内容复制到file_transfer.hpp里面 第一步 …

网络安全(黑客)小白学习笔记

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…

linux centos出现No space left on device解决方案

问题是因为系统磁盘空间不足 解决方法: 找到那个磁盘不足问题 df -lh 发现/dev/mapper/cl-root磁盘已用50G,有如下 解决方案: 1、如果是虚拟机可以通过分配空间使其空间增加 2、将其他不常用磁盘空间分配给cl-root如( /dev/mapper/cl-home &#…

路径总和 III

题目链接 路径总和 III 题目描述 注意点 二叉树的节点个数的范围是 [0,1000]求该二叉树里节点值之和等于 targetSum 的 路径 的数目 解答思路 可根据前缀和的思路解决本题,前缀和表示从根节点开始,往左或往右组成的路径和,统计从根节点开…

windows下在cmd和git bash中执行bash download.sh失败

cmd报错信息: 解决办法: win64-wget-1.21.4 安装软件wget,如下这是64位的包,解压后,下面有个wget.exe,拷贝到C:\Windows\System32、 然后打开cmd,执行wget -V 如上,有版本信息就O…

Java变量的声明和初始化,Java变量的作用域:静态变量、全局变量和局部变量

java 语言是强类型(Strongly Typed)语言,强类型包含以下两方面的含义: 所有的变量必须先声明、后使用。指定类型的变量只能接受类型与之匹配的值。 这意味着每个变量和每个表达式都有一个在编译时就确定的类型。类型限制了一个变…

2.springcloudalibaba项目搭建(基于alibaba2021.0.5.0版本)

文章目录 [TOC](文章目录) 前言一、项目配置1.1 pom配置1.2 nacos新建命名空间1.3 项目配置1.4 nacos上配置配置文件1.5 代码新增测试读取服务配置代码1.6 启动类增加注解 二、启动服务并测试2.1 启动服务,查看是否注册成功2.2 测试是否读取到了nacos上的配置 总结 …

嵌入式系统中的加密性能:第2部分

本系列的第1部分讨论了影响系统级密码性能的硬件和软件变量。现在,在第2部分中,我们将重点介绍两种用于测量高级后备加速器性能的方法:1)驱动器级加速器测试以识别加速器或SoC内存带宽约束,以及2)应用程序/…

什么是电商 API接口 以及电子商务网站为何使用它们

从技术上讲,API是应用程序编程接口的首字母缩写,被认为是构建应用软件的一组协议。实际上,API 是让人们保持数字联系的大部分基础。 从我们手机上的应用程序到复杂的飞行控制系统,API 将原本完全不同的系统组合在一起以创建单一…

睿趣科技:抖音店铺怎么取名受欢迎

抖音作为国内最大的短视频平台,其商业价值不容忽视。许多商家和创作者都在抖音上开设了自己的店铺,而一个富有创意和吸引力的店铺名字,往往能带来更多的客流量。那么,如何为抖音店铺取个好名字呢?以下是一些有用的建议。 明确定位…