状态转换图

       根据本章开头讲的结构化分析的第3条准则,在需求分析过程中应该建立起软件系统的行为模型。状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此,状态图提供了行为建模机制,可以满足第3条分析准则的要求。
 

1 状态
       状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作, 也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。
       在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。当描绘循环运行过程时,通常并不关心循环是怎样启动的。当描绘单程生命期时,需要标明初始状态(系统启动时进人初始状态)和最终状态(系统运行结束时到达最终状态)。
 

2 事件
       事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或单击鼠标等都是事件。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。

3 符号
    在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。
       活动表的语法格式如下:
       事件名(参数表)/动作表达式
       其中, “事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:cntry, exit 和do.entry事件指定进人该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。
       状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。
       事件表达式的语法如下:
事件说明[守卫条件]/动作表达式
其中,事件说明的语法为:事件名(参数表)。
守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件
发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守
卫条件为真,状态转换就发生。
动作表达式是一个过程表达式,当状态转换开始时执行该表达式。
图给出了状态图中使用的主要符号

4 例子

       为了具体说明怎样用状态图建立系统的行为模型,下面举一个例子。图是人们非常熟悉的电话系统的状态图。
       图中表明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到

电话系统的状态图

达这个状态后,电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;如果拿起听简很长时间不拨号(超时),则进入超时状态;……。
读者对电话都很熟悉,无须仔细解释也很容易看懂图。因此,这里不再逐一讲述图中每个状态的含义,以及状态间的转换过程了。

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

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

相关文章

iMX6ULL 嵌入式linux开发 | 4G无线广播终端实现方案介绍

现有的有线广播,如村上的大喇叭,需要布线,施工麻烦。借助现有的4G网络,传输音频流完全没问题,4G网络结合流媒体技术和MQTT消息传递实现设备间的同步推拉流。这种方案可以避免有线布线的麻烦,同时实现4G无线…

基于springboot+vue的智慧外贸平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Elasticsearch 分析器(内置分析器,自定义分析器,IK分析器)

Elasticsearch 分析器(内置分析器,自定义分析器,IK分析器) 内置分析器使用分析器自定义分析器中文分析器(IK分析器)安装使用添加词典 内置分析器 官网:https://www.elastic.co/guide/en/elasti…

如何确保大模型 RAG 生成的信息是基于可靠的数据源?

在不断发展的人工智能 (AI) 领域中,检索增强生成 (RAG) 已成为一种强大的技术。 RAG 弥合了大型语言模型 (LLM) 与外部知识源之间的差距,使 AI 系统能够提供更全面和信息丰富的响应。然而,一个关键因素有时会缺失——透明性。 我们如何能够…

翻译《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

Whats the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071025-00/?p24693 Raymond Chen 2007年10月25日 简要 文章讨论了EM_SETHILITE和EM_GETHILITE消息在文档中显示为“未实现”的原因。这些…

Redis开发实战

单机部署安装 服务端下载,安装,启动去官网下载最新的版本:http://redis.io/download ,这里用的是3.0.2解压后,进入解压好的文件夹redis的安装非常简单,因为已经有现成的Makefile文件,所以直接先…

NASA数据集——阿尔法喷气式大气实验甲醛(HCHO)数据

Alpha Jet Atmospheric eXperiment Formaldehyde Data 简介 阿尔法喷气式大气实验甲醛数据 阿尔法喷气式大气实验(AJAX)是美国国家航空航天局艾姆斯研究中心与 H211, L.L.C. 公司的合作项目,旨在促进对加利福尼亚、内华达和太平洋沿岸地区的…

从0开始带你成为Kafka消息中间件高手---第一讲

从0开始带你成为Kafka消息中间件高手—第一讲 网站的用户行为日志,假设电商网站,我现在需要买一个阅读架,看书的架子 京东,我平时比较喜欢用的是京东,送货很快,自营商品,都是放在自己的仓库里…

【字典树(前缀树) 异或 离线查询】1707. 与数组中元素的最大异或值

本文涉及知识点 字典树(前缀树) 位运算 异或 离线查询 LeetCode1707. 与数组中元素的最大异或值 给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries ,其中 queries[i] [xi, mi] 。 第 i 个查询的答案是 xi 和任何 nums 数组…

阿里巴巴最新研究突破:自我演化大模型,打破性能天花板

获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读AI论文解读 原创作者 | 柏企 引言:自我进化的新篇章 在人工智能领域,大型语言模型(LLMs)的发展正迎来一场革命性的变革。传统的训练模式依赖…

从0开始学统计-方差分析

1.什么是方差分析? 方差分析(ANOVA,Analysis of Variance)是一种统计方法,用于比较三个或三个以上组之间的平均值是否存在显著差异。它适用于以下情况: (1) 当我们有三个或三个以上…

LLMs之PEFT之Llama-2:《LoRA Learns Less and Forgets LessLoRA学得更少但遗忘得也更少》翻译与解读

LLMs之PEFT之Llama-2:《LoRA Learns Less and Forgets LessLoRA学得更少但遗忘得也更少》翻译与解读 导读:该论文比较了LoRA与完全微调在代码与数学两个领域的表现。 背景问题:微调大规模语言模型需要非常大的GPU内存。LoRA这一参数高效微调方…

.NET 一款内部最新的免杀WebShell

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【Linux】Linux的基本指令_1

文章目录 二、基本指令1. whoami 和 who2. pwd3. ls4. clear5. mkdir 和 cd6. touch7. rmdir 和 rm 未完待续 二、基本指令 直接在命令行的末尾(# 后面)输入指令即可。在学习Linux指令的过程中,还会穿插一些关于Linux的知识点。 1. whoami …

ftp是什么,ftp能做什么,ftp有什么用 -----ftp介绍

大家好,我是风屿,今天开始我会给大家介绍一些关于网络方面的配置以及介绍等等,今天是ftp FTP中文名字叫做文件传输协议,英文名字叫做File Transfer Protocol(简称为ftp) FTP 是因特网网络上历史最悠久的网…

哔哩哔哩抢红包项目,b站抢红包脚本,号称单机单号一天5-50+(教程+软件)

一、哔哩哔哩抢红包项目介绍: 1. 玩法规则方面: 参与直播间抢红包活动,赢取礼物。每日领取礼物上限为20-30个,达到上限后,系统将自动跳转至养号哗哩礼物价值。目前电池兑换比例:10电池1元。 2. 礼物变现方…

2024年春招高薪职业报告:大模型算法研究员领跑

近日,脉脉高聘发布的研究报告《2024春招高薪职业和人才洞察》(以下简称《洞察》)显示,2024年一季度,大模型算法研究员新发岗位以平均月薪6.4万元领跑高薪岗位榜。受人才培养周期和技术门槛影响,人工智能行业…

飞机大战游戏实现揭秘

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、游戏概览与核心玩法 二、游戏模块详解 1. 游戏主循环模块 2. 创建初始化模块 三、关…

云端智享——记移动云手写docker-demo

目录 前言什么是移动云?为何我会使用移动云?移动云“好”在哪里?资源大屏显示继续项目部署其他细节 移动云产品的评价未来展望 前言 在如今这个万物都上云的时代,我们需要选择合适的云产品,而移动云有着独特的优势和广…

SpringBoot使用rsa-encrypt-body-spring-boot实现接口加解密

废话不多说&#xff0c;直接上代码 引入依赖 <dependency><groupId>cn.shuibo</groupId><artifactId>rsa-encrypt-body-spring-boot</artifactId><version>1.0.1.RELEASE</version> </dependency>配置文件 rsa:encrypt:# 是…