- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、什么是状态机
??状态机(State Machine)是软件编程的一个重要概念。在一个灵活且思路清晰的程序中,必然有状态机的身影。
????? 状态机理论最初的发展在数字电路设计领域。在数字电路方面,根据输出是否与输入信号有关,状态机可以划分为Mealy型和Moore型状态机;根据输出是否与输入信号同步,状态机可以划分为异步和同步状态机。而在软件设计领域,状态机设计的理论俨然已经自成一体。Moore型状态机的输出只和当前状态有关,和输入无关,如果在软件设计领域设计出这种类型的状态机,则该状态机接受的事件都是无内蕴信息的事件(输入)。Mealy型状态机的输入是由当前状态和输入共同决定,对应到软件设计领域,则该状态机接收的事件含有内蕴信息,并且影响状态机的输出。显然,这种划分在软件设计领域毫无意义。虽然软件设计领域的状态机也有同步和异步的划分,但和数字电路方面的同步异步已经不同。
?? 软件设计领域中通用状态机的输入不是字符集,而是被称作事件的结构(可以是结构体,也可以是类对象),并且特定的状态下,针对发生的事件,不仅发生状态改变,而且产生动作。
二、状态机举例
?? 键盘解析程序,比如程序本位于状态A,如果触发按键1,则转至状态B,如果触发按键2,则转至状态C或者调回A。
?? 再如,实际通信例子,下位机采集信号,上位机控制走向,开始状态初始化,如果按下按钮采集,则进入采集界面,采集中达到一定数据或者时间,则转至数据计算界面,计算之后进入停止或者再次采集,这就是一套状态机。
三、状态机的要素
状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:
现态:是指当前所处的状态。
条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
四、设计举例(转)
?1)状态迁移图(STD)??????? 状态迁移图(STD),是一种描述系统的状态、以及相互转化关系的图形方式。状态迁移图的画法有许多种,不过一般都大同小异。我们结合一个例子来说明一下它的画法,如图1所示。
此主题相关图片如下:t1.jpg
?
状态框:用方框表示状态,包括所谓的“现态”和“次态”。
条件及迁移箭头:用箭头表示状态迁移的方向,并在该箭头上标注触发条件。
?节点圆圈:当多个箭头指向一个状态时,可以用节点符号(小圆圈)连接汇总。
动作框:用椭圆框表示。
附加条件判断框:用六角菱形框表示。
状态迁移图和我们常见的流程图相比有着本质的区别,具体体现为:在流程图中,箭头代表了程序PC指针的跳转;而在状态迁移图中,箭头代表的是状态的改变。
我们会发现,这种状态迁移图比普通程序流程图更简练、直观、易懂。这正是我们需要达到的目的。
(2)状态迁移表
除了状态迁移图,我们还可以用表格的形式来表示状态之间的关系。这种表一般称为状态迁移表。
此主题相关图片如下:t2.jpg
?
采用表格方式来描述状态机,优点是可容纳更多的文字信息。例如,我们不但可以在状态迁移表中描述状态的迁移关系,还可以把每个状态的特征描述也包含在内。
如果表格内容较多,过于臃肿不利于阅读,我们也可以将状态迁移表进行拆分。经过拆分后的表格根据其具体内容,表格名称也有所变化。
比如,我们可以把状态特征和迁移关系分开列表。被单独拆分出来的描述状态特征的表格,也可以称为“状态真值表”。这其中比较常见的就是把每个状态的显示内容单独列表。这种描述每个状态显示内容的表称之为“显示真值表”。同样,我们把单独表述基于按键的状态迁移表称为“按键功能真值表”。另外,如果每一个状态包含的信息量过多,我们也可以把每个状态单独列表。
由此可见,状态迁移表作为状态迁移图的有益补充,它的表现形式是灵活的。
状态迁移表优点是信息涵盖面大,缺点是视觉上不够直观,因此它并不能取代状态迁移图。比较理想的是将图形和表格结合应用。用图形展现宏观,用表格说明细节。二者互为参照,相得益彰。
?(3)设计实例
结合流程图、状态迁移图和状态迁移,举一个实际例子。下面这张图是一个时钟程序的状态迁移图,如图2所示。
此主题相关图片如下:t3.jpg?
把这张图稍做归纳,就可以得到它的另一种表现形式——状态迁移表,如表2所示
此主题相关图片如下:t4.jpg???????(4)状态机应用的注意事项
基于状态机的程序调度机制,其应用的难点并不在于对状
您可能关注的文档
最近下载
- 电子课件-《理解与表达》(第一课训练一整体感知与关键信息)-4.pptx VIP
- ppt锂离子电池负极材料.pdf VIP
- FANUC PMC信号地址汇总表.pdf VIP
- 仓储管理员职业技能鉴定考试题及答案.pdf VIP
- 【2025秋】人教版一年级数学上册教学计划(及进度表).docx
- GB/T 37356-2019 色漆和清漆 涂层目视评定的光照条件和方法.pdf
- GB 55014-2021 园林绿化工程项目规范.pdf
- 2025年迷迭香酸行业洞察报告及未来五至十年发展趋势预测报告.docx
- 城市规划概论_课件.ppt VIP
- 信息安全技术应用专业《BurpSuite的应用.pptx VIP
文档评论(0)