软考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:

相关推荐
知识分享小能手2 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
汇能感知4 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun5 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao5 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾5 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT6 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa6 小时前
HTML和CSS学习
前端·css·学习·html
ST.J6 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin6 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
看海天一色听风起雨落7 小时前
Python学习之装饰器
开发语言·python·学习