UML总结

零:学习链接

UML_哔哩哔哩_bilibili

一:UML概述

二:类图

类图(Class Diagram)是统一建模语言(UML)中一种重要的图形表示,用于描述系统中的类及其之间的关系。它是面向对象设计中常用的工具,可以帮助开发者理解系统结构和组件之间的互动。

UML类的表示

  1. 类名

    • 位于矩形的顶部,通常使用加粗字体。类名首字母大写,其他字母通常小写。
  2. 属性

    • 位于矩形的中间部分,列出类的属性。属性前可以添加访问修饰符:
      • 可见性修饰符概述:用“#”表示,意味着可以在该类及其子类中访
      • 公开(public):用“+”表示,意味着可以被任何类访问。
      • 私有(private):用“-”表示,意味着只能在该类内部访问。
      • 保护(protected):用“#”表示,意味着可以在该类及其子类中访问。
      • 包级(package):用“~”表示,意味着只能在同一包内访问。
    • 每个属性可以包含类型信息,格式为 属性名: 类型
  3. 方法

    • 位于矩形的底部,列出类的方法。方法的表示与属性相似,格式为 方法名(参数列表): 返回类型

继承关系

在UML(统一建模语言)中,类继承关系通常通过特定的符号表示。以下是一些关键概念和符号:

  1. 继承(泛化)

    • 表示父类与子类之间的关系。
    • 用一个带空心三角形的实线连接父类和子类,三角形指向父类。
  2. 实现

    • 表示一个类实现了一个接口。
    • 用带空心三角形的虚线表示,三角形指向接口。

  1. 多重继承

    • 如果一个子类继承自多个父类,使用多个实线箭头连接各个父类。
  2. 抽象类

    • 抽象类通常用斜体字体表示,表示不能直接实例化的类。
  3. 接口

    • 接口通常用“<<interface>>”标签标注,以便区分与普通类。

实现关系

依赖关系

关联关系

聚合关系

组合关系

三:用例图

用例图是UML(统一建模语言)中一种用于表示系统功能的图示工具,主要用于展示系统的用户(或称为“参与者”)与系统之间的交互关系。用例图能够帮助分析和定义系统的需求,尤其是在系统的早期设计阶段。

用例图的主要组成部分

  1. 参与者(Actors)

    • 代表与系统交互的用户或其他系统。
    • 可以是具体的人、组织或外部系统。
    • 在图中通常用一个小人形象或方框表示。
  2. 用例(Use Cases)

    • 表示系统提供的功能或服务。
    • 通常用椭圆形表示,并标注功能名称。
  3. 关系

    • 关联(Association):参与者与用例之间的连接线,表示交互关系。
    • 扩展(Extend):用来表示某个用例在特定条件下可以扩展其他用例,通常用带箭头的虚线表示。
    • 包含(Include):表示一个用例包含另一个用例的功能,通常用带箭头的虚线表示。

用例图的用途

  • 需求分析:帮助开发团队理解系统功能和用户需求。
  • 沟通工具:作为开发人员、客户和其他利益相关者之间的沟通桥梁。
  • 文档化:为系统的功能提供清晰的文档,便于后续的设计和开发。

用例图元素

四:状态图

状态图(State Diagram)是UML(统一建模语言)中的一种行为图,用于描述对象在其生命周期中的各种状态及状态之间的转换。它主要用于建模具有明显状态变化的对象,如在某个特定条件下可能会改变的对象的行为。

状态图的主要组成部分

  1. 状态(State)

    • 代表对象在某一时刻的状况。
    • 状态用圆角矩形表示,状态名称通常在其中。
  2. 初始状态(Initial State)

    • 表示对象生命周期的开始状态。
    • 用一个实心圆表示。
  3. 终止状态(Final State)

    • 表示对象生命周期的结束状态。
    • 用一个带圈的实心圆表示。
  4. 转换(Transition)

    • 表示状态之间的变化,通常由箭头表示。
    • 可以附带事件、条件或动作描述,如“事件/动作”格式。
  5. 事件(Event)

    • 导致状态转换的外部或内部条件。
  6. 条件(Guard)

    • 在转换发生前需要满足的条件,通常写在方括号中。

五:活动图

活动图(Activity Diagram)是UML(统一建模语言)中用于描述系统中活动流和控制流的图示工具。它特别适合于展示业务流程、工作流或系统中的动态行为。

活动图的主要组成部分

  1. 活动(Activity)

    • 表示系统中的一个动作或任务,通常用圆角矩形表示,活动名称写在其中。
  2. 初始节点(Initial Node)

    • 表示活动的起始点,用一个实心圆表示。
  3. 终止节点(Final Node)

    • 表示活动的结束点,用一个带圈的实心圆表示。
  4. 控制流(Control Flow)

    • 表示活动之间的顺序关系,通常用箭头表示,指示活动的执行顺序。
  5. 决策节点(Decision Node)

    • 表示基于条件的分支,通常用菱形表示,箭头指向不同的活动,附带条件表达式。
  6. 合并节点(Merge Node)

    • 将多个控制流合并为一个,通常用菱形表示。
  7. 并行活动(Fork和Join)

    • Fork:表示活动的并行分支,通常用一条水平或垂直的线表示。
    • Join:表示并行活动的合并,通常用一条水平或垂直的线表示。

六: 时序图

时序图(Sequence Diagram)是UML(统一建模语言)中一种用于描述对象之间交互的图示,特别关注时间顺序。它展示了对象之间如何通过消息传递进行交互,通常用于描述系统的动态行为。

时序图的主要组成部分

  1. 参与者(Actor)

    • 表示与系统交互的外部实体(如用户、系统等),通常在图的最左侧用小人图标表示。
  2. 对象(Object)

    • 参与交互的类或实例,通常在图中用矩形表示。
  3. 生命线(Lifeline)

    • 表示对象在交互过程中的存在,通常是从对象底部向下延伸的一条虚线。
  4. 消息(Message)

    • 表示对象之间的交互,通过箭头表示。消息可以是同步消息、异步消息、返回消息等,箭头的样式和方向指示消息的类型。
  5. 激活(Activation)

    • 表示对象在某个时间段内处于活跃状态,通常用矩形在生命线上表示。
  6. 自消息(Self-Message)

    • 对象向自身发送的消息,用箭头指向自身。

 

 

 

七:组件图

组件图的主要组成部分

  1. 组件(Component)

    • 表示系统中的一个模块或部分,通常用矩形表示,顶部有一个小矩形,表示这是一个组件。
  2. 接口(Interface)

    • 表示组件提供的服务或功能,通常用圆形或半圆形表示。接口可以通过一个带有小黑点的线连接到组件。
  3. 连接器(Connector)

    • 用于表示组件之间的通信关系,通常用带有箭头的直线表示。
  4. 依赖关系(Dependency)

    • 表示一个组件依赖于另一个组件,通常用带箭头的虚线表示,箭头指向被依赖的组件。
  5. 包(Package)

    • 用于组织和分组组件,可以用一个带有标签的矩形表示,里面包含多个组件。

八:部署图

部署图(Deployment Diagram)是UML(统一建模语言)中用于描述系统的物理部署结构的图示。它展示了系统的硬件组件(节点)以及这些组件之间的关系,主要用于表现系统的运行环境。

部署图的主要组成部分

  1. 节点(Node)

    • 表示物理设备或计算资源,如服务器、工作站、路由器等,通常用立方体或三维盒子表示。
  2. 组件(Component)

    • 系统中的软件部分,可以是应用程序、库、服务等,通常表示为矩形,并放置在节点内部。
  3. 关系(Relationship)

    • 用于表示节点之间或组件与节点之间的连接关系,通常用线表示。
  4. 接口(Interface)

    • 表示节点或组件提供的服务,通常用一个小圆形表示,并连接到相应的节点或组件。
  5. 设备(Artifact)

    • 物理文件或数据,通常表示为文档图标或类似的符号,可以与节点或组件关联。

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

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

相关文章

软件已死,数据永生?

大数据产业创新服务媒体 ——聚焦数据 改变商业 你有没有注意到&#xff0c;你的生活正在被数据所支配&#xff1f; 我们看似在掌控自己的每一次点击、每一次搜索、每一个消费选择&#xff0c;但实际上&#xff0c;背后隐藏着庞大的数据网络。每一个点赞、每一次搜索&#xff…

Java非对称加密:RSA 数据加密与解密、数字签名与验签

Java常用的加密与解密系列文章: 《Java编码方式:Base64 编码与解码》 《Java消息摘要:MD5 验证数据完整性、密码的加密》 《Java消息摘要:SHA 验证数据完整性、密码的加密》 《Java对称加密:DES、3DES 数据加密标准》 《Java对称加密:AES 高级加密标准》 《Java非对称加密…

java质数的判断 C语言指针变量的使用

1. public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("请输入一个值");int num sc.nextInt();boolean flagtrue;for (int i2;i<num;i){if (num%i0){flagfalse;break;}}if (flag){System.out.println(num"是一…

深度学习:权重参数相关知识(深度学习入门:基于Python的理论与实现 (斋藤康毅)))

在神经网络的学习中&#xff0c;权重的初始值特别重要&#xff0c;经常关系到神经网络的学习能否成功。 第一点&#xff0c;权重初始值不能设置为0&#xff0c;严格说权重初始值不能设为同样的值&#xff0c;是因为在误差反向传播法中&#xff0c;所有权重值都会进行相同的更新…

云联网对等连接--实现内网互通

云联网 今天给大家介绍一款产品&#xff0c;腾讯云的云联网。 云联网&#xff1a;为您提供云上私有网络间&#xff08;VPC&#xff09;、VPC 与本地数据中心间&#xff08;IDC&#xff09;内网互联的服务&#xff0c;具备全网多点互联、路由自学习、链路选优及故障快速收敛等…

采用指针作为函数参数

在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <iomanip> //使能setbase(),setfill(),setw(), //setprecision(),setiosflags()和resetiosflags(); using namespace std; //告诉编译器使用std标准程序库; void…

kali——tcpdump的使用

目录 前言 使用方法 监听指定网卡 将抓取的数据包保存到指定文件 读取数据包 前言 定义&#xff1a;tcpdump 是 Linux 系统下的一个强大的命令行式数据包嗅探工具&#xff0c;它能够实时捕获网络接口上的数据包&#xff0c;并将这些数据包的头部信息或完整内容显示出来或保…

Java面向对象编程进阶(四)

Java面向对象编程进阶&#xff08;四&#xff09; 一、equals()方法的使用二、toString()方法的使用三、复习 一、equals()方法的使用 适用性&#xff1a;任何引用数据都可以使用。 自定义的类在没有重写Object中equals()方法的情况下&#xff0c;调用的就是Object类中声明的…

011:软件卸载工具TotalUninstall安装教程

摘要&#xff1a;本文详细介绍软件卸载工具TotalUninstall安装流程。 一、软件介绍 TotalUninstall是一款功能强大的卸载与清理工具&#xff0c;它能够彻底卸载不需要的应用程序&#xff0c;并清除相关的注册表项、文件残留和临时文件&#xff0c;确保系统干净无残留&#xff…

每日一题之电话号码的字母组合

给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits "23" 输出&#…

2025选题|基于Hadoop的物品租赁系统的设计与实现

作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参与学生毕业答辩指导&#xff0c;…

星海智算:用户如何使用公共存储

公共存储是平台下载好的一些模型、数据集&#xff0c;只读方便拷贝或者直接引入。 公共存储会由官方定时更新,更新内容来源于用户反馈,会将反馈的模型下载到公共存储,供用户拷贝到实例本地使用。 01 下载模型 直接从公共存储路径 /mnt/pub_data/ 下载所需模型。 02 复制…

五周年,继续破浪前行

五周年&#xff0c;TapData 再一次带着自己的“乘风破浪”大队&#xff0c;在一个阳光明媚的日子里&#xff0c;把生日过在了海上。 头顶日升日落&#xff0c;这条属于全体 Tap-pers 的航船&#xff0c;再次校准航向&#xff0c;在船长的带领下&#xff0c;驶向下一个晴好的明…

Mybatis-14.XML映射文件

一.XML映射文件 除了使用注解的方式完成mybatis基础的增删改查操作以外&#xff0c;还可以使用基于XML文件配置SQL语句。 二.配置XML映射文件 首先在resources中新建文件夹com/域名/mapper用来和java源代码中的包名保持一致&#xff0c;这是同包。 然后在mapper文件夹中新建x…

详解Pectra升级:如何影响以太坊价值及利益相关者

Pectra很可能是最后几个会直接影响用户和ETH持有者的升级之一。 原文&#xff1a;Galaxy Research&#xff1b;编译&#xff1a;Golem&#xff1b;编辑&#xff1a;郝方舟 出品 | Odaily星球日报&#xff08;ID&#xff1a;o-daily&#xff09; 编者按&#xff1a;以太坊 Pectr…

「C/C++」C++17 之 std::variant 安全的联合体(变体)

#1024程序员节&#xff5c;征文# ✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计…

windows 训练yolov8官方数据集

第一步&#xff1a;安装Anaconda3-2024.06-1-Windows-x86_64.exe 下载地址&#xff1a;https://repo.anaconda.com/archive/ 第二步&#xff1a;创建环境 打开Anaconda Prompt 输入 conda info -e 打印&#xff1a; 已经安装了一些环境&#xff0c;然后我们创建新的环境&a…

Linux(kali)换源操作

apt换源 &#xff08;切换到国内源&#xff09; 阿里云Kali镜像源 deb http://mirrors.aliyun.com/kali kali-rolling main non-free non-free-firmware contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free non-free-firmware contrib 1.切换为root用…

springboot095学生宿舍信息的系统--论文pf(论文+源码)_kaic

学生宿舍信息管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了学生宿舍信息管理系统的开发全过程。通过分析学生宿舍信息管理系统管理的不足&#xff0c;创建了一个计算机管理学生宿舍信息管理系统的方…

lstio微服务治理-概述

一、Service Mesh介绍 Service Mesh 的中文译为&#xff1a;服务网格&#xff0c;是一个用于处理服务和服务之间通信的基础设施层。它负责为构建复杂的云原生应用传递可靠的网络请求&#xff0c;并为服务通信实现了微服务所需要的基本组件功能&#xff0c;如&#xff1a;服务发…