当前位置: 首页 > news >正文

UML建模以及几种类图的理解

文章目录

  • 前言
  • 1.用例与用例图
    • 1.1 参与者
    • 1.2 用例之间的关系
    • 1.3 用例图
    • 1.4 用例的描述
  • 2.交互图
    • 2.1 顺序图
    • 2.2 协作图
  • 3.类图和对象图
    • 3.1 关联关系
    • 3.2 聚合和组合
    • 3.3 泛化关系
    • 3.4 依赖关系
  • 4.状态图与活动图
    • 4.1 状态图
    • 4.2 活动图
  • 5.构件图

前言

UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画。
它定义了10种视图,可以分为4类:

  1. 用例图 :从外部用户的角度描述系统的功能,并指出功能的执行者。
  2. 静态图:包括类图,对象图和包图。类图描述系统的静态架构,类图的节点表示系统中的类及其属性和操作。类图的边表示类之间的关系,包括继承,关联,依赖,聚合等。对象图是类图的一个实例,它描述在某种状态下或某一段时间,系统中活跃的对象及其关系。包图描述系统的分解结构,它表示包以及包之间的关系,包由子包以及类组成,包之间的关系包括继承,构成与依赖关系。
  3. 行为图: 包括交互图,状态图与活动图,它们从不同的侧面刻画系统的动态行为。交互图描述对象之间的消息传递,可以分为顺序图与合作图两种形式。顺序图强调对象之间消息发送的顺序。合作图更强调对象间的动态协作关系。
  4. 实现图:包括构件图与部署图。它们描述软件实现系统的组成与分布状况。构件图描述软件实现系统中组成部件以及它们之间的依赖关系。部署图的描述作为软件系统运行的硬件以及网络的物理体系结构,节点标识实际的计算机与设备,表示节点之间的物理连接关系,也可以显示连接的类型以及节点之间的依赖性。

1.用例与用例图

编写用例必须识别以下元素。

1.1 参与者

角色(Actor)是指系统以外的,需要使用系统或者与系统交互的东西,包括人,设备,外部系统等。角色包括参与者,活动者,执行者和行动者。
actor

1.2 用例之间的关系

用例除了参与者有关联关系外,用例之间也存在着一定的关系,如范化关系,包含关系,扩展关系等。
包含关系

1.3 用例图

用例图是显示一组用例.参与者以及它们之间关系的图。

1.4 用例的描述

用例的描述才是用例的核心部分,用例采用自然语言描述参与者与系统进行交互是双方的行为。

2.交互图

交互图用来描述对象之间与参与者之间动态协作关系以及协作过程中行为次序的图形文档。

2.1 顺序图

顺序图也是时序图,是显示对象至今交互的图 ,这些对象是按照时间顺序排列的。

2.2 协作图

描述系统的行为是如何由系统的成分协作实现的图,协作图中包括的建模元素有对象 (包括参与者实例,多对象,主动对象等),消息,链等。

3.类图和对象图

类是具有相似结构,行为和关系的一组对象的抽象。类之间的关系有以下几种。

3.1 关联关系

关联是模型元素之间的一种语义关系,它是对具有共同的结构特性,行为特性 ,关系和语义的链的描述。

3.2 聚合和组合

聚集还是一种特殊的关联。聚集表示类之间的整体与部分的关系。在系统进行分析和设计时,需要描述中的包含,组成等关系。
组合:表示类之间的整体与部分的关系。

3.3 泛化关系

范化关系定义了一般和特殊元素之间关系,面向对象的语言设计来说就是类与类之间的继承关系。

3.4 依赖关系

一个元素的变化会到之后另一个元素的变化,类似于函数的概念。

4.状态图与活动图

4.1 状态图

状态图描述一个对象在其生存期间的动态行为,表现一个对象经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。

4.2 活动图

活动图可以描述系统的工作流程和并发行为。活动图的几个基本概念:活动,泳道,分支,分叉和汇合,对象流

5.构件图

构件图显示一组构件之间的相互关系,包括编译,链接或执行时构件之间的依赖关系。

相关文章:

UML建模以及几种类图的理解

文章目录 前言1.用例与用例图1.1 参与者1.2 用例之间的关系1.3 用例图1.4 用例的描述 2.交互图2.1 顺序图2.2 协作图 3.类图和对象图3.1 关联关系3.2 聚合和组合3.3 泛化关系3.4 依赖关系 4.状态图与活动图4.1 状态图4.2 活动图 5.构件图 前言 UML通过图形化的表示机制从多个侧…...

opencv进阶18-基于opencv 决策树导论

1. 什么是决策树? 决策树是最早的机器学习算法之一,起源于对人类某些决策过程 的模仿,属于监督学习算法。 决策树的优点是易于理解,有些决策树既可以做分类,也可以做回归。在排名前十的数据挖掘算法中有两种是决策树[1…...

13.4 目标检测锚框标注 非极大值抑制

锚框的形状计算公式 假设原图的高为H,宽为W 锚框形状详细公式推导 以每个像素为中心生成不同形状的锚框 # s是缩放比,ratio是宽高比 def multibox_prior(data, sizes, ratios):"""生成以每个像素为中心具有不同形状的锚框"""in_he…...

【论文笔记】最近看的时空数据挖掘综述整理8.27

Deep Learning for Spatio-Temporal Data Mining: A Survey 被引用次数:392 [Submitted on 11 Jun 2019 (v1), last revised 24 Jun 2019 (this version, v2)] 主要内容: 该论文是一篇关于深度学习在时空数据挖掘中的应用的综述。论文首先介绍了时空数…...

【大模型】基于 LlaMA2 的高 star 的 GitHub 开源项目汇总

【大模型】基于 LlaMA2 的高 star 的 GitHub 开源项目汇总 Llama2 简介开源项目汇总NO1. FlagAlpha/Llama2-ChineseNO2. hiyouga/LLaMA-Efficient-TuningNO3. yangjianxin1/FireflyNO4. LinkSoul-AI/Chinese-Llama-2-7bNO5. wenge-research/YaYiNO6. michael-wzhu/Chinese-LlaM…...

解决elementUI打包上线后icon图标偶尔乱码的问题

解决vue-elementUI打包后icon图标偶尔乱码的问题 一、背景二、现象三、原因四、处理方法方式1:使用css-unicode-loader方式2:升高 sass版本到1.39.0方式3:替换element-ui的样式文件方式4:更换打包压缩方式知识扩展:方式…...

yolov3加上迁移学习和适度的数据增强形成的网络应用在输电线异物检测

Neural Detection of Foreign Objects for Transmission Lines in Power Systems Abstract. 输电线路为电能从一个地方输送到另一个地方提供了一条路径,确保输电线路的正常运行是向城市和企业供电的先决条件。主要威胁来自外来物,可能导致电力传输中断。…...

香橙派OrangePi zero H2+ 驱动移远EC200A

1 系统内核: Linux orangepizero 5.4.65-sunxi #2.2.2 SMP Tue Aug 15 17:45:28 CST 2023 armv7l armv7l armv7l GNU/Linux 1.1 下载内核头安装 下载:orangepi800 内核头rk3399链接https://download.csdn.net/download/weixin_37613240/87635781 1.1.1…...

写一个java中如何用JSch来连接sftp的类并做测试?(亲测)

当使用JSch连接SFTP服务器的类&#xff0c;并进行测试时&#xff0c;可以按照以下步骤操作&#xff1a; 添加JSch库的依赖项。在你的项目中添加JSch库的Maven依赖项&#xff08;如前面所述&#xff09;或下载JAR文件并将其包含在项目中。 <dependency> <groupId&…...

【沐风老师】如何在3dMax中将3D物体转化为样条线构成的对象?

在3dMax中如何把三维物体转化为由样条线构成的对象&#xff1f;通常这样的场景会出现在科研绘图或一些艺术创作当中&#xff0c;下面给大家详细讲解一种3dmax三维物体转样条线的方法。 第一部分&#xff1a;用粒子填充3D对象&#xff1a; 1.创建一个三维对象&#xff08;本例…...

2023国赛数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林&#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…...

wxpython:wx.html2 是好用的 WebView 组件

wxpython : wx.html2 是好用的 WebView 组件。 pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.2.0 cd \Python37\Scripts wxdemo.exe 取得 wxPython-demo-4.2.0.tar.gz wxdocs.exe 取得 wxPython-docs-4.…...

《QT+PCL 第五章》点云特征-PFH

QT增加点云特征PFH 代码用法代码 #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d.h> #include <pcl/features/pfh.h>int main...

【分享】小型园区组网场景

小型园区组网图 在小型园区中&#xff0c;S2700&S3700通常部署在网络的接入层&#xff0c;S5700&S6700通常部署在网络的核心&#xff0c;出口路由器一般选用AR系列路由器。 接入交换机与核心交换机通过Eth-Trunk组网保证可靠性。 每个部门业务划分到一个VLAN中&#…...

LeetCode 1267. 统计参与通信的服务器

【LetMeFly】1267.统计参与通信的服务器 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-servers-that-communicate/ 这里有一幅服务器分布图&#xff0c;服务器的位置标识在 m * n 的整数矩阵网格 grid 中&#xff0c;1 表示单元格上有服务器&#xff0c;0 表…...

169. 多数元素(哈希表)

169. 多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 class Solution { public:int majorityElement(vector<int&…...

微服务集成spring cloud sentinel

目录 1. sentinel使用场景 2. sentinel组成 3. sentinel dashboard搭建 4. sentinel客户端详细使用 4.1 引入依赖 4.2 application.properties增加dashboard注册地址 4.3 手动增加限流配置类 4.4 rest接口及service类 4.5 通过dashboard动态配置限流规则 1. sentinel使…...

2023年最新版Windows环境下|Java8(jdk1.8)安装教程

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【JavaSE_primary】 jdk1.8的下载和使用总共分为3个步骤&#xff1a; jdk1.8的下载、jdk1.8的安装、配置环境变量。 目录 一、jdk1.8下载…...

linux -- jdk 的安装

jdk 的安装 jdk包下载 链接: https://pan.baidu.com/s/1wa1TJGtCPKQqeCGDZWaP6g 密码: 8el6 安装及验证 ## jdk包上传次目录 /usr/local/software cd /usr/local/software tar -zxvf /usr/local/software/jdk-8u212-linux-x64.tar.gz -C /usr/local cd /usr/local mv jdk1…...

网络安全—黑客技术(学习笔记)

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…...

Gear-Lib系统抽象层揭秘:POSIX适配与硬件抽象设计思想

Gear-Lib系统抽象层揭秘&#xff1a;POSIX适配与硬件抽象设计思想 【免费下载链接】gear-lib Gear-Lib, C library for IOT Embedded Multimedia and Network 项目地址: https://gitcode.com/gh_mirrors/ge/gear-lib Gear-Lib作为面向物联网嵌入式多媒体与网络的C语言库…...

保姆级教程:用Python和Open3D玩转激光雷达点云与图像融合(附KITTI数据集实战)

从零实现激光雷达与相机融合&#xff1a;Open3DKITTI实战指南 当激光雷达的精确测距遇上相机的丰富纹理&#xff0c;自动驾驶感知系统便拥有了"立体视觉"——这正是多模态融合技术的魅力所在。本文将带您用Python和Open3D构建一个完整的点云-图像融合流水线&#xff…...

深入解析acts-as-taggable-on:Rails标签系统的终极实现指南

深入解析acts-as-taggable-on&#xff1a;Rails标签系统的终极实现指南 【免费下载链接】acts-as-taggable-on A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts. 项目地址: https://gitcode.com/gh_mirrors/ac/acts-as-tagg…...

BongoCat:重新定义桌面体验的互动工具

BongoCat&#xff1a;重新定义桌面体验的互动工具 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否曾觉得日复一日的…...

从提示词到执行:OpenClaw百川2-13B-4bits自动化任务拆解全流程

从提示词到执行&#xff1a;OpenClaw百川2-13B-4bits自动化任务拆解全流程 1. 为什么需要任务拆解 上周我需要整理一批行业报告数据&#xff0c;手动操作需要反复在浏览器、Excel和记事本之间切换。当我尝试用OpenClaw百川2-13B模型实现自动化时&#xff0c;发现简单的"…...

最近折腾了一波心音信号(PCG)分类的小项目,踩了不少坑也攒了点能直接跑的代码,今天掏出来跟大伙唠唠

MATLAB环境下一种基于连续小波变换和GoogLeNet的PCG信号分类算法 算法运行环境为MATLAB r2021b&#xff0c;共5种PCG信号&#xff0c;即normal, AR,AS,MR,MS五类 算法可迁移至金融时间序列&#xff0c;地震信号&#xff0c;语音信号&#xff0c;声信号&#xff0c;生理信号&…...

从数学建模到真实运维:如何用调度模型优化你校园里的共享单车?

从数学建模到真实运维&#xff1a;校园共享单车调度系统的工业级设计实践 清晨7点的校园东门&#xff0c;总能看到一群学生围着仅剩的几辆共享单车"抢车"的场景&#xff1b;而下午3点的体育馆停车点&#xff0c;却堆积着数十辆无人问津的车辆。这种供需错配现象背后&…...

自己搭建永磁同步电机参数变动模块:为预测控制助力

永磁同步电机参数不确定/参数变化/参数失配/参数摄动模块 其中直交轴电感,电阻,磁链&#xff0c;转动惯量&#xff0c;粘滞摩擦系数可设置为自己所需的时变工况 适合做预测控制的同志们 由于MATLAB封装模块不可改动&#xff0c;于是自己搭建了这个模块,默认版本为2021b最近在研…...

如何用G-Helper智能恢复ROG笔记本色彩显示:终极解决方案

如何用G-Helper智能恢复ROG笔记本色彩显示&#xff1a;终极解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...

告别重复劳动,用快马平台生成powershell脚本大幅提升数据处理效率

告别重复劳动&#xff0c;用快马平台生成powershell脚本大幅提升数据处理效率 最近接手了一个需要定期汇总销售数据的任务&#xff0c;每个月都要手动合并几十个Excel文件&#xff0c;然后计算各种统计指标。这种重复性工作不仅耗时耗力&#xff0c;还容易出错。直到发现了Ins…...