UML 介绍

前言

UML 简介。

文章目录

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

一、简介

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

1、事务

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

2、关系

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

二、类图

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

三、对象图

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

四、用例图

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

五、交互图

1、序列图(顺序图)

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

2、通信图

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

六、状态图

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

七、活动图

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

八、构件图(组件图)

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

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

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

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

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

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

九、部署图

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

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

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

相关文章

【数据结构(七)】二叉树

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你学更多数据结构的知识 目录 1.前言2.树形结构2.1树的概念2.2常见概念2.3树的表示形式 3.二叉树3.1概念3…

ES源码二:集群启动过程

命令行参数解析 Elasticsearch:在main里面创建了Elasticsearch实例,然后调用了main方法,这个main方法最终会调用到父类Command的main方法 这里做了几件事: 注册一个 ShutdownHook,其作用就是在系统关闭的时候捕获IO…

【Web】陇原战“疫“2021网络安全大赛 题解

目录 CheckIN eaaasyphp EasyJaba CheckIN 拿到附件,贴出关键代码 func getController(c *gin.Context) {cmd : exec.Command("/bin/wget", c.QueryArray("argv")[1:]...)err : cmd.Run()if err ! nil {fmt.Println("error: ", …

C++11(下篇)

文章目录 C111. 模版的可变参数1.1 模版参数包的使用 2. lambda表达式2.1 Lambda表达式语法捕获列表说明 2.2 lambda的底层 3. 包装器3.1 function包装器3.2 bind 4. 线程库4.1 thread类4.2 mutex类4.3 atomic类4.4 condition_variable类 C11 1. 模版的可变参数 C11支持模版的…

当全连接队列满了,tcp客户端收到服务端RST信令的模拟

当tcp服务端全连接队列满了后,并且服务端也不accept取出连接,客户端再次连接时,服务端能够看到SYN_RECV状态。但是客户端看到的是ESTABLISHED状态,所以客户端自认为成功建立了连接,故其写往服务端写数据,发…

鸿蒙入门02-首次安装和配置

注:还没有安装编辑器( deveco studio )的小伙伴请看鸿蒙入门01-下载和安装-CSDN博客 首次安装配置 编辑器( deveco studio )安装完毕以后需要进入配置界面进行相关配置配置完毕以后才可以正常使用 环境配置&#xf…

中国人工智能产业年会智能交通与自动驾驶专题全景扫描

中国人工智能产业年会(CAIIAC)是中国人工智能技术发展和应用的重要展示平台,不仅关注创新,还涵盖了市场和监管方面的内容,对于促进人工智能领域的发展起到了重要作用。年会汇集了来自学术界、工业界和政府的专家&#…

026——项目管理与由来

目录 作者有话说 项目的管理方式 develop分支管理 作者有话说 已经出了25期的文章了,一直没说过我在做个什么。相信大家也有这个以后,作者写了几M的代码到现在不会只是为了点个灯吧。要是这我几十行代码就能解决。 这是一个小故事,老粉丝都…

FILE类与IO流

目录 File类的实例化与常用方法 File类的理解 文件路径的表示方式: API的使用 IO流概述与流的分类 I/O流中的是Input/Output的缩写 IO流的分类(不同角度) Java程序中的IO流涉及40多个,但实际上都是由4个抽象类衍生出来的。 F…

SpringBoot使用xxl-job分布式任务调度平台定时检测RabbitMQ的消息队列自动发出钉钉警告消息

文章目录 SpringBoot使用xxl-job分布式任务调度平台定时检测RabbitMQ的消息队列自动发出钉钉警告消息1、在pom.xml中导入xxl-job的maven依赖,可以看我这篇文章使用抽离出来的xxl-job的starter2、配置xxl-job的相关配置,若上一步使用了自己创建的starter则…

Python基于深度学习的车辆特征分析系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

高标准化及可扩展的产品能力,助力声通科技运营效率不断提升

高标准化及可扩展的产品能力对企业发展具有重要意义,有助于企业提高运营效率、增强市场竞争力,并推动企业实现规模化发展。上海声通信息科技股份有限公司(下文称:声通科技或公司)作为我国领先的企业级全栈交互式人工智…

ViM-UNet:用于生物医学细分的 Vision Mamba

ViM-UNet:用于生物医学细分的 Vision Mamba 摘要IntroductionMethod and Experiments结果与讨论 ViM-UNet: Vision Mamba for Biomedical Segmentation 摘要 卷积神经网络(CNNs),尤其是UNet,是生物医学分割的默认架构…

Java报表是什么?盘点2023最实用的四款Java报表

从字面义就可以推知,Java报表指的是在Java环境下开发或使用的报表工具。Java语言因其功能强大和简单易用的特点,是静态面向对象编程语言的代表,在Java环境开发使用的这些报表工具,可以通过提供可视化操作界面制作报表,…

如果补货机器人也开始搬砖

过去几年,如果一位顾客的欲购商品疑似缺货,“请稍等,我去后台查一下”便是最常听到的一句话。随着过去几年劳动力短缺的加剧,货架并不总像许多人习惯的那样满满当当。为减轻不断补货的负担,使员工可以将精力集中于其他…

LINUX网卡一般性问题分析

一、网卡相关概念 网卡:网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。 网络模型:OSI网络模型、TCP/IP网络模型 LINUX网络收发流程: 1. 内核分配一个主内存地址段(DMA缓冲区),网卡设备可以在…

【微信小程序之分包】

微信小程序之分包 什么是分包分包的好处分包前的结构图分包后的结构图分包的加载规则分包的体积限制使用分包打包原则引用原则独立分包独立分包的配置方法独立分包的引用原则分包预下载配置分包的预下载分包预下载限制 什么是分包 分包指的是把一个完整小程序项目,…

2024-14.python前端+Django

第四篇 web前端 第1章 、Web的基本概念 前端基础总共分为三部分:html、css和js。 1.3、HTTP协议 1.3.1 、http协议简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web &am…

AI人工智能老师大模型讲师叶梓 OneLLM:开创性的多模态大型语言模型技术

在人工智能领域,多模态大型语言模型(MLLM)的研究一直是一个热门话题。近期,一种名为OneLLM的创新技术引起了业界的广泛关注。OneLLM通过其独特的统一框架,实现了多种不同模态与自然语言的高效对齐,为多模态…

操作系统—GCC与编译全流程

文章目录 GCC与编译全流程1.GCC是什么?2.编译全流程(1).GCC到底做了哪些事情?(2).预处理I.预处理会做什么II.预处理器主要包含什么?III.宏的一些魔法 (3).编译I.基本流程II.编译优化III.一点例子 (4).汇编(5).链接(6).说到这里,为…