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

news2024/11/26 18:40:58

一、状态图

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.coloradmin.cn/o/1511561.html

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

相关文章

【ollama】(4):在autodl中安装ollama工具,配置环境变量,修改端口,使用RTX 3080 Ti显卡,测试coder代码生成大模型

1,ollama项目 Ollama 是一个强大的框架,设计用于在 Docker 容器中部署 LLM。Ollama 的主要功能是在 Docker 容器内部署和管理 LLM 的促进者,它使该过程变得非常简单。它帮助用户快速在本地运行大模型,通过简单的安装指令&#xf…

【考研数学】660/880/1000/1800 使用手册

开门见山,直接介绍几个热门的习题册 660:660表面上叫基础通关660,但实际上很多题的难度并不适合基础阶段,建议在强化阶段搭配着 严选题做660,对提升做小题的速度和能力非常有帮助。 880:题量适中&#xf…

20240312-1-Graph(图)

Graph(图) 在面试的过程中,一般不会考到图相关的问题,因为图相关的问题难,而且描述起来很麻烦. 但是也会问道一下常见的问题,比如,最短路径,最小支撑树,拓扑排序都被问到过. 图常用的表示方法有两种: 分别是邻接矩阵和邻接表. 邻接矩阵是不错的一种图存储结构,对于边数相对顶点…

MooC下载pdf转为ppt后去除水印方法

1、从MooC下载的课件(一般为pdf文件)可能带有水印,如下图所示: 2、将pdf版课件转为ppt后,同样带有水印,如下图所示: 3、传统从pdf中去除水印方法不通用,未找到有效去除课件pdf方法…

c 语言中指针注意事项

看看下面两个 #include<iostream> using namespace std;int main() {int a 10;char p[6];*((int *)p) *(& a); // 正确写法*p *(&a); // 错误写法cout << *(int*)p; } 把原因写在评论区

飞塔防火墙开局百篇——002.FortiGate上网配置——在路由模式下使用虚拟接口对(virtual-wire-pair)

在路由模式下使用虚拟接口对&#xff08;virtual-wire-pair&#xff09; 拓扑配置接口配置策略 使用方有透明模式下一进一出的这样需求的组网&#xff0c;可以在路由模式下使用虚拟接口对&#xff08;virtual-wire-pair&#xff09;替代。 登陆FortiGate防火墙界面&#xff0c;…

01 THU大模型之基础入门

1. NLP Basics Distributed Word Representation词表示 Word representation: a process that transform the symbols to the machine understandable meanings 1.1 How to represent the meaning so that the machine can understand Compute word similarity 计算词相似度 …

中间件 | RabbitMq - [AMQP 模型]

INDEX 1 全局示意2 依赖 1 全局示意 AMQP&#xff0c;即高级消息队列协议&#xff08;Advanced Message Queuing Protocol&#xff09;&#xff0c;整体架构如下图 producer 发送消息给 rabbit mq brokerrabbit mq broker 分发消息给 consumer消费producer/consumer 都通过 …

Python算法题集_搜索旋转排序数组

Python算法题集_搜索旋转排序数组 题33&#xff1a;搜索旋转排序数组1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【二分法区间判断】2) 改进版一【二分找分界标准二分法】3) 改进版二【递归实现二分法】 4. 最优算法5. 相关资源 本文为Pytho…

Android APK体积优化指南:清理项目,打造更小的APK、更快的构建速度和更好的开发体验

Android APK体积优化指南&#xff1a;清理项目&#xff0c;打造更小的APK、更快的构建速度和更好的开发体验 在任何软件项目中&#xff0c;开发是一个持续的过程&#xff0c;随着时间的推移&#xff0c;代码库会变得越来越复杂。这种复杂性可能导致构建时间变慢、APK体积变大&…

DayDreamInGIS 之 ArcGIS Pro二次开发 锐角检查

功能&#xff1a;检查图斑中所有的夹角&#xff0c;如果为锐角&#xff0c;在单独的标记图层中标记。生成的结果放在默认gdb中&#xff0c;以 图层名_锐角检查 的方式命名 大体实现方式&#xff1a;遍历图层中的所有要素&#xff08;多部件要素分别处理&#xff09;&#xff0…

Redis核心数据结构之压缩列表(二)

压缩列表 压缩列表节点的构成 encoding 节点的encoding属性记录了节点的content属性所保存数据的类型及长度: 1.一字节、两字节或者五字节长&#xff0c;值得最高位为00、01或者10的是字节数组编码:这种编码表示节点的content属性保存着字节数组&#xff0c;数组的长度由编…

MachineSink - 优化阅读笔记

注&#xff1a;该优化与全局子表达式消除刚好是相反的过程&#xff0c;具体该不该做这个优化得看代价模型算出来的结果(有采样文件指导算得会更准确) 该优化过程将指令移动到后继基本块中&#xff0c;以便它们不会在不需要其结果的路径上执行。 该优化过程并非旨在替代或完全…

Huggingface中Transformer模型使用

一、Huggingface介绍 1、Huggingface定位 NLP自从Transformer模型出现后&#xff0c;处理方式有大统一的趋势&#xff0c;首先回答几个基础问题&#xff1a; 1、自然语言处理究竟要做一件什么事呢&#xff1f;自然语言处理最终解决的是分类问题&#xff0c;但是它不仅仅输出…

基于单片机的智能小车泊车系统设计

摘 要:随着信息技术的进步,汽车逐渐朝着安全、智能方向发展,智能泊车系统的出现不仅能帮助人们更加快速、安全地完成泊车操作,而且适用于狭小空间的泊车操作,降低驾驶员泊车负担,减轻泊车交通事故发生率。文章基于单片机设计自动泊车系统,以单片机为核心来实现信息收集及…

洛谷P6022快乐水

他来到了一家商店门前。 这家商店为了吸引顾客来买快乐水&#xff0c;搞了这么一个活动&#xff1a;「55 个瓶盖换一瓶快乐水」。于是&#xff0c;人们纷纷来他的店里买快乐水。 买完快乐水&#xff0c;他想到了一个问题&#xff1a; 如果一瓶快乐水有m 个附属品&#xff0c…

Java线程的6种状态

线程在生命周期中并不是固定处于某一个状态而是随着代码的执行在不同状态之间切换。 NEW&#xff1a;初始状态&#xff0c;线程被创建出来但没有被调用start()RUNNABLE&#xff1a;运行状态&#xff0c;线程被调用了start()等待运行的状态BLOCKED&#xff1a;阻塞状态&#xf…

uview upicker时间选择器(附Demo)

目录 前言正文 前言 uniapp时间选择器&#xff0c;是upicker&#xff0c;与微信小程序还是有些区别 补充官网的基本知识&#xff1a;uview官网 官网的展示例子如下&#xff1a;&#xff08;但是没Demo&#xff09; 正文 通过上面的展示图&#xff0c;复刻一个类似Demo图&am…

15双体系Java学习之数组的声明和创建

数组的声明 ★小贴士 可以使用int[] a;或者int a[];建议使用第一种风格&#xff0c;因为它将元素类型int[]&#xff08;整型数组&#xff09;与变量名清晰分开了。 在Java中声明数组时不能指定其长度。这种定义是非法的&#xff1a;int a[5]; 注意&#xff1a;上图显示的内存…

学习数据节构和算法的第15天

单链表的实现 链表的基本结构 #pragma once #include<stdio.h> typedf int SLTDataType; typedy struct SListNode {SLTDataType data;struct SListNode*next; }SLTNode;void Slisprint(SLTNode*phead);打印链表 #include<stdio.h> void SListPrint(SLTNode*phe…