UML2——行为图

news/2024/5/7 15:25:41/文章来源:https://blog.csdn.net/qinze5857/article/details/128965538

目录

一、前言

二、活动图

 三、交互图

3.1 一般序列图

3.2 时间约束序列图 

 3.3 协作图

四、用例图

五、状态图


一、前言

UML 是由视图(View)、图(Diagrams)、模型元素(Model elements)和通用机制等几个部分构成。一个完整的模型图需要一定数量的视图,每个视图表示系统一个特殊方面即可;视图的内容是图,UML可以描述9中不同图类型,其中活动图来表达基本的流程图。模型元素包括面对对象的类、对象、消息和关系,是图的基本元素。通用机制包括表示其他消息,如注释等。

行为图 包括活动图、交互图、用例图(系统工程师)等。

二、活动图

活动图描述了满足用例要求所要进行的活动及活动间的约束关系,强调对象间的控制流程。它的目的是绘制活动流程系统,描述系统并行,分支,并发流。

一个活动是系统执行的功能,首先了解活动本身,确定活动元素之间的约束条件。

黑色圆点表示一个活动开始或者结束,矩形框表示执行的活动,菱形表示条件检查, 虚线关联一个执行活动的注释

 活动图也可以将执行对象和执行动作结合起来构建一个活动图

 三、交互图

交互图描述的是对象之间的动态合作关系以及合作过程中的行为次序。交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程。交互图分为序列图和协作图。序列图 :显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互。协作图 :描述对象之间的交互关系。

绘制交互图:

  1. 参与互动的对象

  2. 对象之间的消息流

  3. 消息的顺序流程

  4. 对象的组织

3.1 一般序列图

垂直长虚线代表一个对象的生命周期,垂直矩形表示一个活动,实线表示发送,虚线表返回。

3.2 时间约束序列图 

对于带有强时间约束的对象活动图,需要在对象矩形活动期间标出执行时间,对象在活动图期间出现各种情况,触发的动作

同步消息:发送人在它继续之前,将等待同步消息响应

异步消息:在发送方继续之前,无需等待响应的消息

组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段:

片段类型

名称

说明

Opt

选项

包含一个可能发生或可能不发生的序列。 可以在临界中指定序列发生的条件。

Alt

抉择

包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。

可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。

Loop

循环

片段重复一定次数。 可以在临界中指示片段重复的条件。

Loop 组合片段具有 “Min” 和 “Max” 属性,它们指示片段可以重复的最小和最大次数。 默认值是无限制。

Break

中断

如果执行此片段,则放弃序列的其余部分。 可以使用临界来指示发生中断的条件。

Par

并行

并行处理。 片段中的事件可以交错。

Critical

关键

用在 Par 或 Seq 片段中。 指示此片段中的消息不得与其他消息交错。

Seq

弱顺序

有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。

Strict

强顺序

有两个或更多操作数片段。 这些片段必须按给定顺序发生。

默认情况下,序列图表明可能发生的一系列消息。 在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。消息描述为:

片段类型

名称

说明

Consider

考虑

指定此片段描述的消息列表。 其他消息可发生在运行的系统中,但对此描述来说意义不大。

在 “Messages” 属性中键入该列表。

Ignore

忽略

此片段未描述的消息列表。 这些消息可发生在运行的系统中,但对此描述来说意义不大。

在 “Messages” 属性中键入该列表。

Assert

断言

操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。

Neg

否定

此片段中显示的序列不得发生。 通常用在 Consider 或 Ignore 片段中。

 3.3 协作图

序列图中未介绍的对象组织,而协作图中示出的对象的组织。两种图示侧重强调类型不同,如果时间序列是很重要的使用序列图,如果需要表达对象组织的相互作用,那么使用协作图。

四、用例图

用例图是动态的,有一些内部或外部因素进行交互,这些内部和外部代理被称为Actor。用例图由Actor,用例及其关系组成。该图用于对应用程序的系统/子系统进行建模。

用例图的目的是收集系统要求,获取系统外部视图,确定影响系统的外部和内部因素;用例图可用于需求分析和高层设计;模拟系统的上下文。

 关联:表示参与者与用例之间的通信,任何一方都可发送或接受消息

泛化:子用例将继承父用例的所有结构、行为和关系

包含:包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤

扩展:扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能

五、状态图

状态图描述了从一个状态到另一个状态的控制流程。状态被定义为一个对象存在的条件,并且当某个事件被触发时它会改变。状态图的最重要的目的是将对象的生命周期从创建到终止。

状态图的主要目的 

  1. 模拟系统的动态方面。

  2. 模拟反应系统的使用寿命。

  3. 描述物体在其使用寿命期间的不同状态。

  4. 定义状态机以对对象的状态进行建模。

如何绘制状态图:识别重要对象,识别对象在不同生命时刻的状态,识别状态改变的内部外部事件或者条件。

参考:

UML架构_w3cschool

UML教程_lingengy的博客-CSDN博客_uml教程

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

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

相关文章

Python GUI界面编程-初识

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。然而这界面若要通过在显示屏的特定位置&#xf…

mac M1 nvm安装教程,避坑

mac M1 nvm 安装问题 新款的mac搭载了苹果自研的芯片,放弃了intel的x86芯片,那之前的软件难免会存在兼容性问题。 鄙人有幸踩了第一个坑。 在通过nvm 安装不同版本的node 时,出现了问题。 问题一:先说一下 nvm的安装问题&#…

现代操作系统——Linux架构与学习

小白的疑惑 在我决定从事嵌入式(应用层)方面的工作时,我查询了大量资料该如何学习,几乎所有观点不约而同的都指向了学习好Linux,大部分工作都是在Linux环境下来进行工作的。于是我雄心勃勃的去下载Linux,可…

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析1.ERA5介绍2.初始ERA5数据2.1 DAILY代码2.2 MONTHLY代码3.遥感影像查看(DAILY之mean_2m_air_temperature)4.逐日数据分析和获取(以mean_2m_air_temperature为例)5.逐月数据…

[神经网络]Swin Transformer网络

一、概述 Swin Transformer是一个用了移动窗口的层级式Vision Transformer。 在图像领域,Transformer需要解决如下两个问题: ①尺度问题:同一语义的物体在图像中有不一样的尺度。(大小不同) ②Resolution过大:若以像素点作为单位&…

呼吸机方案 以 MM32F3270 为主控板,MM32SPIN05PF 为电机控制主控

呼吸机的作用是让氧气进入肺部并排出二氧化碳,帮助病患顺利呼吸。呼吸机连接一条管子到患者的嘴或鼻子,氧气量可以通过监视器加以控制。 基于灵动微控制器的呼吸机,以 MM32F3270 为主控板,MM32SPIN05PF 为电机控制主控&#xff1…

python 操作word库docx 增强接口

前言用python 的docx 库操作word完成一些自动化的文档生成工作,但有时候会遇到docx库提供的操作无法直接满足业务上的需求,需要对其进行一些扩展。接口完善实现在指定的文字后面插入指定的文字任务:以下示例需要在文档中的所有 "人生苦短…

【SpringMVC】springMVC介绍

参考资料 视频资料 03_尚硅谷_SpringMVC_SpringMVC简介_哔哩哔哩_bilibili 笔记资料 第一节 SpringMVC概述 (wolai.com)链接:https://pan.baidu.com/s/1A7BX2TNfbGTpYene4x3Mew 提取码:a8d5 一、SpringMVC简介 1、什么是MVC MVC是一种软件架构的思…

js正则表达式以及元字符

0、常用的正则表达式规则 手机号 const reg /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;密码 const reg /^[a-zA-Z0-9]{6,20}$/;验证码 const reg /^\d{6}$/;1、正则表达式的介绍与使用 正则表达式(Regular Expression)是用于匹配字符串中字符组合…

用Python Flask为女朋友做一个简单的网站(附可运行的源码)

🌟所属专栏:献给榕榕🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该专栏系为女友准备的,里面会不定时发一些讨好她的技术作品,感兴趣的小伙伴可以关注一下~👉文章简介…

docker安装即docker连接mysql(window)

一 安装docker 1.什么是docker Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 2.WSL2 WSL,即Windows Subsystem on Linux,中…

【CV学习笔记】之ncnnFastDet多线程c++部署

1、前言 ncnn是一款非常高效易用的深度学习推理框架,支持各种神经网络模型,如pytorch、tensorflow、onnx等,以及多种硬件后端,如x86、arm、riscv、mips、vulkan等。 ncnn项目地址:https://github.com/Tencent/ncnn FastDet是设计…

RK3568触摸屏驱动调试总结

硬件电路分析 RK3568 CPU通过I2C与触控板外设wdt87xx连接。 首先要根据电路图获取如下I2C的信息: 项目Value接在哪个I2Ci2c1I2C 寄存器地址0x2cHID 地址0x20中断B5 1、接在哪个I2C 如图,1接在I2C1: 2、使用哪个GPIO引脚接收触控板的中断 如图&#xf…

Buuctf Younger-drive 题解

目录 一.查壳 二.运行缺少dll 三.主函数 四.hObject线程 五.Thread线程 六.judge函数 七.解题脚本 这题的关键在于了解一定的线程相关知识 一.查壳 32位带壳,用upx脱壳 二.运行缺少dll 后续尝试了各种方法修复dll但是还是运行不了 值得一提的是脱壳后的程序不能动态调试…

MySql启动错误(Mac系统 安装 mysql-8.0.32-macos13-arm64 后每次点击启动 无法启动) --- 已解决

MySql启动的时候: 立即变红! 查看日志如下: 2023-03-04T14:18:01.089671Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32) MySQL Community Server - GPL. 2023-03-04T14:18:10.304169Z 0 [System] [MY-010116] [Server]…

HiveSQL一天一个小技巧:如何精准计算非连续日期累计值【闪电快车面试题】

0 需 求稀疏字段累计求和问题1 问题分析根据图片中数据变换的形式,可以看出是根据字段term补齐数据中缺失的日期,term为连续日期的个数,当为12时,表明由2018-12-21到2019-01-02连续日期个数为12,当补齐日期后&#xff…

计算机网络的166个概念你知道几个 第四部分

HTML:HTML 称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的 Internet 资源连接为一个逻辑整体。HTML 文本是由 HTML 命令组成的描述性文本,HTML 命令可以说…

【LeetCode每日一题】——605.种花问题

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 贪心算法 二【题目难度】 简单 三【题目编号】 605.种花问题 四【题目描述】 假设有一个很长…

K8S 实用工具之二 - 终端 UI K9S

开篇 📜 引言: 磨刀不误砍柴工工欲善其事必先利其器 第一篇:《K8S 实用工具之一 - 如何合并多个 kubeconfig?》 像我这种,kubectl 用的不是非常溜,经常会碰到以下情况: 忘记命令,先…

BUU [ZJCTF 2019]Login

这是一道让我感觉很淦的题,整一天了才大致了解了来龙去脉 开始: 首先丢到虚拟机checksec一下看看有啥保护措施: 看到开了Canary,就已经感觉不妙了,接着丢到IDA里看看啥情况 一看,是令人痛苦的c风格的代码…