UML 介绍

news2024/12/24 2:16:45

前言

UML 简介。

文章目录

    • 前言
    • 一、简介
      • 1、事务
      • 2、关系
        • 1)依赖
        • 2)关联
          • 聚合
          • 组合
        • 3)泛化
        • 4)实现
    • 二、类图
    • 三、对象图
    • 四、用例图
    • 五、交互图
      • 1、序列图(顺序图)
      • 2、通信图
    • 六、状态图
    • 七、活动图
    • 八、构件图(组件图)
    • 九、部署图

一、简介

  • UML 是统一建模语言;
    • 事物:将对象/组件(人或物)抽象出来,
    • 关系:哪些事物间有联系,将其关联起来
    • 图:将有关系的事物聚集在一起

1、事务

  • 结构事物;
  • 行为事物;
  • 分组事物;
  • 注释事物;

2、关系

1)依赖
2)关联
  • 描述的是整体与部分之间的关系;
聚合
  • 空心菱形
  • 菱形指向的是整体,另外一段是整体中的部分
  • 部分和整体的生命周期不一致,整体消失了,部分还存在(部分可以脱离整体存在)
组合
  • 实心菱形
  • 菱形指向的是整体,另外一端是整体中的部分
3)泛化
  • 泛化指的是父类泛化子类,继承指的是子类继承父类;
  • 空心三角
  • 子类指向父类,空心三角指向父类
  • 子类继承了父类的属性和方法后是不需要再去定义的,如果在子类中重新定义了的话意思为将父类继承的这个方法进行了重写
4)实现
  • 虚线箭头

二、类图

  • 将事物和关系组成一个图,这里的事物指的是结构事物中的类;
  • 类图展现了一组对象、接口、协作和它们之间的关系

三、对象图

  • 包括对象和链(一条直线)
  • 展现了某一时刻一组对象以及它们之间的关系
  • 注意:对象图中没有方法

四、用例图

  • 用例:椭圆(用户的一些行为即用户执行某些事情)
  • 参与者:小人(用户)
  • 用例和用例之间的关系
  • 包括用例、 参与者、用例和用例之间的关系

五、交互图

1、序列图(顺序图)

  • 主要强调消息时间顺序,是用来对一个场景进行图形化表示
  • 在一段时间里,将对象之间的交互活动被序列图给描绘出来
  • 图中:一个箭头(——>)可以理解为一个消息

2、通信图

  • 强调的是收发消息的对象的结构组织
  • 对象和对象之间用链(直线)连接,链的旁边有消息,消息是有方向的(箭头指向),消息有消息序号
  • 主要描述的是对象与对象之间发送消息,发送消息的顺序
  • 给消息编号就是通信图的特征

六、状态图

  • 强调对象行为的事件顺序
  • 由状态、转换、事件和活动组成
  • 是对反应型对象进行动态建模
  • 一个状态图可以没有终态也可以有多个终态

七、活动图

  • 展现了系统内从一个活动到另一个活动的整个流程
  • 描述:椭圆
  • 流:从一个活动到另一个活动的流程
  • 并发分岔:同时进行两个活动
  • 并发汇合:当两个活动流都指向并发汇合后才能继续往下走
  • 对一个系统的动态方面建模时,通常有两种使用活动图的方式:1)对工作流建模 2)对操作建模
  • 如何区分状态图和活动图
    • 状态图:转换箭头上有事件名称
    • 活动图:箭头上没有事件名称

八、构件图(组件图)

  • 类图:描述类、接口或协作

  • 构件图与类图相关,通常将构建映射为一个或多个类、接口或协作,展现了一组构件之间的组织和依赖

  • 半圆是需接口,满圆是供接口

  • 需接口需要供接口组合来实现一些功能;上面构建调用下面任意构建来实现对应的 xxx 接口的功能

  • 接口的功能实现:一般是需接口对应的构建来实现相应的功能

  • 专注于系统的静态实现视图

九、部署图

  • 对系统物理方面进行建模
  • 部署图展现了系统的软件和硬件之间的物理关系,在实施阶段使用

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

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

相关文章

探索设计模式的魅力:开启智慧之旅,AI与机器学习驱动的微服务设计模式探索

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索AI与机器学习驱动的微服务设计模式之旅✨ 亲爱的科技爱好者们,有没…

C#语法知识之运算符

3、运算符 目录 3、运算符1、算数运算符思考 秒转化时间 2、字符串拼接3、条件运算符4、逻辑运算符5、位运算符6、三目运算符思考 闰年 1、算数运算符 1、赋值符号 //把右侧的值赋给左侧的变量2、算数运算符 _ * / float f 1 / 2f; %3、算数运算符的优先级 //乘除余优先级高…

Python可视化数据分析-饼状图

一、前言 饼状图(Pie Chart)是一种常用的数据可视化图表,用于展示数据中各部分的占比关系。Python 中有多种库可以用于绘制饼状图,比较常用的包括 matplotlib、pyecharts和 plotly 等。 二、使用 matplotlib 绘制饼状图 import…

C++ 深入理解 继承

本篇文章将谈谈一下几个问题: 1.基类和派生类对象赋值转换 2.继承中的作用域 3.派生类的默认成员函数 4.复杂的菱形继承及菱形虚拟继承 5.其他 1.基类和派生类对象赋值转换 1.派生类对象 可以赋值给 基类的对象 / 基类的指针 / 基类的引用。这里有个形象的说法叫切…

MySQL-实验-单表、多表数据查询和嵌套查询

目录 0.简单子查询 (1)带比较运算符的子查询 (2)关键字子查询 1.多表查询 3.子查询 4.多表子查询 0.简单子查询 (1)带比较运算符的子查询 在右侧编辑器补充代码,查询大于所有平均年龄的员…

镜像仓库registory中的秘钥管理

镜像仓库中的秘钥管理 1 生成密钥 在使用私有镜像拉取镜像时&#xff0c;需要为私有镜像仓库创建一个镜像仓库的密钥&#xff0c;并在创建容器中进行引用。创建镜像仓库的语法和格式&#xff1a; kubectl create secret docker–registry <regsecret-name> —docker–…

C/C++程序设计实验报告4 | 函数实验

本文整理自博主本科大一《C/C程序设计》专业课的课内实验报告&#xff0c;适合C语言初学者们学习、练习。 编译器&#xff1a;gcc 10.3.0 ---- 注&#xff1a; 1.虽然课程名为C程序设计&#xff0c;但实际上当时校内该课的内容大部分其实都是C语言&#xff0c;C的元素最多可能只…

kali下设置root权限(包含很多技巧)

默认是没有密码的&#xff0c;后期使用超级管理员root操作kali系统&#xff0c;我们需要设置 Ctrlshift再加上“”号可以调节字体大小 此时提示符为#

漂亮的个人主页源码

源码介绍 漂亮的个人主页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果截图 源码下载 漂亮的个人主页源码

Taro-vue微信小程序用户隐私保护

Taro-vue微信小程序用户隐私保护 一、在 微信公众平台的【设置】- 【服务内容与声明】 &#xff0c;设置用户隐私保护指引&#xff0c;添加项目需要的接口权限。 【用户隐私保护指引】提交之后&#xff0c;官方会进行审核。审核通过之后&#xff0c;对应的接口权限才会生效。 …

ROS分布式通讯配置

4WD 必读&#xff1a;分布式通讯是相对于用虚拟机来连接小车上主机来说&#xff0c;如果是 4WD 笔记本无主 机用户&#xff0c;不存在分布式通讯一说。 1.4WD 用户单笔记设置一&#xff0c;连接底盘和雷达还有摄像头。 因为虚拟机带宽问题&#xff0c;无法保证摄像头正常运行。…

MySQL数据库企业级开发技术(下篇)

使用语言 MySQL 使用工具 Navicat Premium 16 代码能力快速提升小方法&#xff0c;看完代码自己敲一遍&#xff0c;十分有用 拖动表名到查询文件中就可以直接把名字拉进来中括号&#xff0c;就代表可写可不写 目录 1. 视图 1.1 需要视图的原因 1.2 视图介绍 1.2.1 …

输电线路运行特性及简单电力系统潮流估算(二)

本篇为本科课程《电力系统稳态分析》的笔记。 本篇为这一章的第二篇笔记。上一篇传送门&#xff0c;下一篇传送门。 输电线路的运行特性 输电线路的空载运行特性 线路的等值电路如图所示。 由于是空载&#xff0c;则 S ~ 2 0 \widetilde{S}_20 S 2​0&#xff0c;可以计算…

CSS中的圆角和阴影

目录 盒子圆角 圆角基础使用 圆角常见使用 通过设置盒子圆角得到一个圆形 通过设置盒子圆角&#xff0c;得到一个“操场”的样式 盒子阴影 文字阴影 盒子圆角 圆角基础使用 在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。 使用…

Linux进阶篇:Centos7安装与配置mysql(rpm安装方式)

Linux服务搭建篇&#xff1a;Centos7安装与配置mysql&#xff08;rpm安装方式&#xff09; MySQL是一个开源的关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;现在属于Oracle公司。MySQL是最流行的关系型数据库管理系统之一&#xff0c;在WEB应用方面&am…

Mac 下安装PostgreSQL经验

使用homebrew终端软件管理器去安装PostgreSQL 如果没有安装brew命令执行以下命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 沙果开源物联网系统 SagooIoT | SagooIoT 1.使用命令安装postgreSQL brew i…

Mac下删除旧版本.net sdk

参照微软官网给的方法&#xff0c;Releases dotnet/cli-lab (github.com) 好像不能直接的解决问题&#xff0c;我做一下补充&#xff0c;希望对需要删除旧版本sdk的小伙伴们有所帮助 1:下载工具包 Releases dotnet/cli-lab (github.com) 2:打开终端&#xff0c;cd切换到该…

软件杯 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…

Matlab|【复现】主动配电网故障定位方法研究

目录 1 主要内容 算例模型 期望故障电流状态函数 评价函数&#xff08;膨胀率函数&#xff09; 算例验证方法 详实的文档说明 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序方法复现了《基于改进多元宇宙算法的主动配电网故障定位方法研究》_郑聪&#xff0c;建…

Gamba:将高斯溅射与Mamba结合用于单视图3D重建

Gamba: Marry Gaussian Splatting with Mamba for Single-View 3D Reconstruction Gamba&#xff1a;将高斯溅射与Mamba结合用于单视图3D重建 Qiuhong Shen11  Xuanyu Yi31 Zike Wu31  Pan Zhou2,42 Hanwang Zhang3,5 沈秋红 1 易轩宇 3 吴子可 3 潘周 2,4 2 张汉旺 3,5Shu…