欢迎来到天天文库
浏览记录
ID:52446012
大小:942.00 KB
页数:31页
时间:2020-04-07
《另一种方法-状态机.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、另一种方法状态机介绍设计方法软件系统有多种设计方式自顶向下,自底向上从事务出发思考(传统的)以事务处理为中心的顺序设计方法从数据出发思考(现代的)面向数据的类体系设计方法(OO)目前我们对于类的设计过多,对事务性处理的设计较少。状态机是对复杂事务进行设计的有效手段最简单的例子字符串识别匹配串A+B*C+AABBBCC√AAABBBx状态:5个事件:7个A/B/C/~A/~BC/~EOS/EOS处理:2个另一个简单例子(1)门禁控制程序刷卡、开门、关门按钮、开门、关门超时报警身份不对提示手动开门、自动关门另一
2、个简单例子(2)7个状态11次状态迁移10种事件响应5个处理方法另一个简单例子(3)设计转换程序的方法-1状态起始、结束、关闭、确认中、开门中、关门中、报警事件启动、停止、关门完毕、开门完毕、按钮按下、刷卡、确认成功、确认失败、开门超时、关门超时处理开门允许、开门禁止、成功提示、失败提示、超时报警另一个简单例子(4)设计转换程序的方法-2状态一个状态一个函数StateClosed/StateOpening/StateAlerting…事件函数中响应该函数所需要处理的事件(以关闭状态为例)OnEventPus
3、hbuttonOnEventRFCardInput处理函数或状态转换过程进行处理(以开门中状态为例)设置允许开门AllowOpen另一个简单例子(5)--说明前面的例子太过简单,但这种设计方式是多种事务处理程序的设计基础,有着广泛的应用。实际上,包括正则表达式等文字匹配的工作都是使用状态机进行处理的,状态机可以依据匹配串进行自动化构建,它可以处理人力所无法承受的设计工作。尝试一下这个:(([[u4E00-u9FA5]&&[^与及]]+?[国省市区县])+公安[部厅局]([[u4E00-u9FA5]&
4、&[^与及]]+?(?:分局
5、派出所
6、[大中总支]队))*)小结(1)用状态机方法进行设计的特征1.全面,极大地减少遗漏2.直观,比文字或代码的表现力强一数量级3.转换,设计转换为程序的过程非常简单4.没有看到设计的人可能看不懂程序可能性很大,尤其是大型状态机设计程序的正确性完全依赖于设计的正确性延时灯状态逻辑有声音亮延时熄灭在很嘈杂的地方灯会灭掉,然后再亮,为什么?提取注释/**/{}//状态机设计的应用范围状态机应用环境适合于具有复杂步骤的事务处理网络协议事件驱动语言处理自然语言/程序语言复杂系统多任
7、务、多事务系统实际上是全范围实用计算机(包括程序)都是状态机状态机设计的要素状态机要素状态定义(S)States事件定义(E)Event状态迁移(T)Transfer事务处理(A)Action初始状态(S0)结束状态(F)Finalized真实例子--网络文件传输保证送达分包发送容错主循环状态真实例子--网络文件传输子状态--单文件发送小结(2)状态机设计与流程图设计的比较更加抽象基本图元素只有三个:状态、迁移、行为适合事务具有多个中间环节自包含分支条件无需表达分支与条件状态机:设计;流程图:实现实际例子(
8、1)--问题记录问题状态实际例子(2)--进程状态操作系统中进程的状态控制实际例子(3)--输入法主状态机此处隐藏了事件实际例子(4)--手机输入法主要状态机DEL/SEL/R/L+--------+con/wov(P2)
9、
10、+-------------+-----------------+^
11、
12、Del(C2)(P5)
13、Del(C2)(P5)^+----+
14、
15、+---+
16、+---+
17、
18、<---+con,wov(P1)+-----------+-->
19、
20、>--+SEP(P10)
21、
22、
23、S
24、>----------
25、-------------------
26、-------------->
27、1
28、>----------------->
29、4
30、>--+
31、(P0)
32、<-----------------------------
33、--------------<
34、
35、>-++----<
36、
37、
38、+-^--+DEL(C1)(P5)
39、+------<+---+
40、
41、+---+
42、
43、CONFIRM(P7)
44、
45、^
46、
47、^
48、+----------------------------------
49、-------+
50、
51、
52、
53、
54、
55、CONFIRM(P7)
56、
57、DEL+-
58、----
59、----------+
60、
61、
62、Digit(P7)
63、
64、(P5)
65、con
66、con/wov(p2)
67、
68、
69、left,right(P6)
70、
71、
72、wov
73、
74、
75、
76、+------------------------
77、-------+
78、(P4)
79、
80、
81、
82、
83、
84、
85、
86、
87、
88、
89、+--------
90、------------------------+
91、
92、Up/Down(P31)
93、
94、
95、
96、
97、DEL(P5)
98、
99、SEP(P10)
100、
101、left/^^
102、
此文档下载收益归作者所有