软考72-上午题-【面向对象技术2-UML】-UML中的图3

一、状态图

1-1、状态图的定义

状态图,展现了一个状态机,由:状态转换事件活动组成,是系统的动态视图。

活动(动作) 可以在状态内执行也可以在状态转换(迁移) 时执行。

状态图强调:行为的事件顺序。

1-2、状态图的组成

1、状态

状态图通常包括:简单状态、组合状态。

状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。

状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态,又做动作

在状态转换图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。

初态用一个黑圆点表示,终态用黑圆点外加一个圆表示。一张状态图中只能有一个初态,而终态可以没有,也可以有多个。

状态图中的状态用一个圆角四边形表示(可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名称和值,这部分是可选的;下面部分是活动表,这部分也是可选的 ),状态之间为状态转换,用一条带箭头的线表示。带箭头的线上的事件发生时,状态转换开始(有时也称之为转换“点火”或转换被“触发”)。

转换:一条带箭头的线;(转换的别名:迁移

一个状态到另一个状态的转变,就是转换;

带箭头的线上的的文字,就是事件。

示例:

2、活动(活动表)

活动是由若干动作组成。

状态表中的活动表的语法结构:

事件名(参数表)/动作表达式

事件名可以是任何事件的名称。

在活动表中经常使用下述 3 种标准事件:

entry、exit 和 do。entry事件:指定进入该状态的动作;

exit事件:指定退出该状态的动作;

do事件:指定在该状态下的动作。

需要时可以为事件指定参数表(×)。

活动表中的动作表达式描述应做的具体动作。

示例:

这些活动是状态的内部活动。

3、事件

转换包括两个状态:源状态、目标状态。

事件,是在某个特定时刻发生的事情,它是对引起系统做动作、从一个状态转换到另个状态的外界事件的抽象。例如,观众使用电视遥控器,用户移动鼠标、单击鼠标等都是事件。

简而言之,事件就是引起系统做动作、转换状态的控制信息。

状态变迁通常是由事件触发的,在这种情况下,应在表示状态转换的箭头线上标出触发转换的事件表达式。

如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。

事件表达式的语法如下:
事件说明[监护条件]/动作表达式


其中,事件说明的语法为:事件名 (参数表 );

监护条件是一个布尔表达式;

如果同时使用事件说明和监护条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。

如果只有监护条件,没有事件说明,则只要监护条件为真,状态转换就发生。

动作表达式是一个过程表达式,当状态转换开始时执行该表达式。

活动(动作) 可以在状态内执行也可以在状态转换(迁移) 时执行。

示例:

1-3、状态图的概念

状态图包括:简单状态、组合状态、转换(事件、动作)。

状态是指对象的生命周期中某个条件或者状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果。

当某个事件发生后,对象的状态将发生变化。

嵌套在另外一个状态中的状态称为子状态,含有子状态的状态称为组合状态

转换是两个状态之间的种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界(监护)条件满足时进入目标状态。

动作是一个可执行的原子操作,是不可中断的,其执行时间是可忽略不计的。

直接通过进入节点进入状态,通过退出节点可以结束状态。

示例:

状态图,是对系统的动态方面建模。这些动态方面包括的是一种对象的按事件排序的行为。

当对系统、类、用例的动态方面建模时,通常是反应型对象建模

1-4、真题

真题1:

并发状态:

真题2:

真题3:

 

真题4:

真题5:

真题6:

真题7:

 

二、活动图

2-1、活动图的定义

活动图,是一种特殊的状态图。

展现了在系统内,从一个活动到另一个活动的流程

专注于系统的动态视图。

2-2、活动图的组成

监护表达式,在活动图中,是和分支在一起的。

(在状态图中是:监护条件)

活动图可以表示为:分支、合并、分岔、汇合。

2-3、区分:状态图、活动图

转换的箭头上有文字(事件),则是:状态图;

转换的箭头上没有文字,则是:状态图;

2-4、通常有两种使用活动图的方式:

1、对工作流建模;

2、对操作建模。

2-5、活动图、状态图的例子

活动图的例子:

状态图的例子:

2-6、真题

真题1:

真题2:

真题3:

真题4:

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

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

相关文章

SpringBoot项目如何部署到服务器

文章目录 准备:方式一:Jar包方式(推荐)部署步骤: 方式二:War包方式部署步骤: 总结 准备: 云服务器(阿里云、腾讯云等)Linux系统以及运行所需的环境 方式一&a…

力扣--深度优先算法/回溯算法216.组合总和 Ⅲ

思路分析: 深度优先搜索 (DFS): 通过递归实现,尝试从数字 1 到 9 中选择可能的数字,构建和为 n,长度为 k 的组合。递归函数 dfs: 接收参数:result 为最终结果集,path 为当前正在生成…

【C++】二叉树进阶之二叉搜索树

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握二叉搜索树,能自己模拟实现二…

类和对象-继承

师从黑马程序员 基本语法 有些类与类之间存在特殊的关系,例如: 定义这些类时,下一级别的成员除了拥有上一级的共性,还有自己的特性。 这时候我们就可以考虑继承技术,减少重复代码 语法:class 子类&…

加密流量分类torch实践4:TrafficClassificationPandemonium项目更新

加密流量分类torch实践4:TrafficClassificationPandemonium项目更新 更新日志 代码已经推送开源至露露云的github,如果能帮助你,就给鼠鼠点一个star吧!!! 3/10号更新 流量预处理更新 增加了基于splitCa…

misc49

下载附件是个txt文件,打开发现是个压缩包的头 后缀改成zip后打开 base解码无果,我们尝试字母解码 然后音符解码得到 ❀✿✼❇❃❆❇✿❁❇✻✿❀✾✿✻❀❊❆❃❀❊✻❅❀❄✼❂❊❊✾❇❁✽✽✼❁❂❀❀❀❉❃❂❀❉❃❂❊❊✾✼✻✻❀❆✻✻❀❀✻✻✿…

round四舍五入在python2与python3版本间区别

round()方法返回数值的小数点四舍五入到n个数字。 语法 以下是round()方法的语法: round( x ,n) 参数 x --这是一个数值,表示需要格式化的数值 n --这也是一个数值,表示小数点后保留多少位 返回值 该方法返回 数值x 的小数点四舍五入到n个数字 …

使用css结合js实现html文件中的双行混排

此前写过一个使用flex布局实现html文件中的双行混排,但是感觉效果不佳。经过几天思考,我认为双行混排的要点其实是两个: 1、正文和批注的文字大小不同; 2、正文和批注的行距相互配合进行设定。 正文和批注的文字大小及行距都可…

OpenHarmony下musl编译工具链普法

OpenHarmony下musl编译工具链普法 引言 欠的债总是要还的,这不前面欠的关于OpenHarmony下musl相关的还是要还的。这里我对其中的相关知识点,梳理,归纳重新消化下! 一.GCC/Clang/LLVM的区别与联系 说实话,这块我现在都…

当量化私募投资总监能学到什么?

我的情况更新 ​我是美国电子工程背景毕业的。在华尔街第一份实习是在E3做手工t0的proprietary trading,被刷下来之后就一直在帮顶级的对冲基金打杂当助理。所以当初决定回国一展身手,并且写下了破百万阅读的: 在私募做量化研究半年能学到什…

基于神经网络的偏微分方程求解器再度取得突破,北大字节的研究成果入选Nature子刊

目录 一.引言:神经网络与偏微分方程 二.如何基于神经网络求解偏微分方程 1.简要概述 2.基于神经网络求解偏微分方程的三大方向 2.1数据驱动 基于CNN 基于其他网络 2.2物理约束 PINN 基于 PINN 可测量标签数据 2.3物理驱动(纯物理约束) 全连接神经网路(FC-NN) CN…

保姆级讲解字符串函数(下篇)

目录 strtok的使用 strerror的使用 strstr的使用和函数模拟实现 strstr的使用 strstr函数模拟实现 接上篇:保姆级讲解字符串函数(上篇),我们接着把剩下三个函数讲解完,继续跟着我的步伐一起学习呀. strtok的使用 …

从 Language Model 到 Chat Application:对话接口的设计与实现

作者:网隐 RTP-LLM 是阿里巴巴大模型预测团队开发的大模型推理加速引擎,作为一个高性能的大模型推理解决方案,它已被广泛应用于阿里内部。本文从对话接口的设计出发,介绍了业界常见方案,并分享了 RTP-LLM 团队在此场景…

ARM中多寄存内存访问概念和栈的种类和应用

多寄存器内存访问指令 多寄存器内存访问指令 MOV R1,#1 MOV R2,#2 MOV R3,#3 MOV R4,#4 MOV R11,#0x40000020 STM R11,{R1-R4} 将R1-R4寄存器中的数据存储到内存以R11为起始地址的内存中 LDM R11,{R6-R9} 将内存中以R11为起始地址的数据读取到R6-R9寄存器中 当寄存器…

Tensorflow2.0+部署(tensorflow/serving)过程备忘记录Windows+Linux

Tensorflow2.0部署(tensorflow/serving)过程备忘记录 部署思路:采用Tensorflow自带的serving进模型部署,采用容器docker 1.首先安装docker 下载地址(下载windows版本):https://desktop.docke…

基于springboot+vue实现早餐店点餐系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现早餐店点餐系统演示 摘要 多姿多彩的世界带来了美好的生活,行业的发展也是形形色色的离不开技术的发展。作为时代进步的发展方面,信息技术至始至终都是成就行业发展的重要秘密。不论何种行业,大到国家、企业&#xff0…

文件操作上(c语言)

目录 1. 文件的作用2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 3. 二进制文件和文本文件4. 文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开与关闭4.3.1 文件的打开模式4.3.2 实例代码 1. 文件的作用 使用文件可以将数据进行持久化的保…

openssl调试记录

openssl不能直接解密16进制密文,需要把密文转化成base64格式才能解密 调试记录如下:

Qt 中Json文件的操作

Json文件的读取 QFile file("data.json"); //准备好的文件file.open(QIODevice::ReadOnly|QIODevice::Text);QByteArray arr file.readAll();QJsonDocument jsonDoc QJsonDocument::fromJson(arr);QJsonObject jsonObj jsonDoc.object();qint32 id jsonObj["…

Dubbo-记录

1.概念 Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理…