- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有限状态机及其扩展讲述
* (2) Statecharts中的迁移 迁移上的条件、事件和动作 迁移的输入称为触发(trigger),触发可以是事件或者(和)条件。迁移的输出称为动作(action),动作可以是产生新的事件或执行一个过程或函数等。 输入是状态之间迁移发生的原因,只有当一个迁移的输入事件出现或者(和)迁移的输入中条件满足时,该迁移所联系的状态才可发生转移。动作的执行被认为是瞬时的。触发和动作以“事件[条件]/动作”的形式标注在迁移弧旁。 S1 E[in(S1)]/R [t=2]/F S3 S2 T1 T S R T2 R F /E F/R * ① 迁移上的条件、事件和动作 预定义的与状态、数据项、时间有关的条件、事件和动作 (P36) 条件:in(S) 表示是否处于状态S中,如是则为真,否则为假; ac(A) 表示活动A是否处于活动状态,如是则为真,否则为假; hg(A) 表示活动A是否处于挂起状态,如是则为真,否则为假; 事件:en(S) 表示进入状态S;ex(S) 表示退出状态S; ns表示正在进入当前状态; xs表示正在退出当前状态; st(A)表示活动A被启动;st表示当前活动被启动;sp(A)表示活动A被停止; tr(C)表示条件C变为真;fs(C)表示条件C变为假; rd(X)表示X被动作rd!读;wr(X)表示X被动作wr!写;ch(X)表示数据项X的值发生改变; tm(E,N)表示事件E发生后,已过了N个时间单位。 动作:tr!(C) 表示对条件C赋值真; fs!(C) 表示对条件C赋值假; st!(A)表示启动活动A;sp!(A)表示停止活动A;sd!(A)表示挂起活动A; rs!(A)表示重新开始活动A; rd!(X) 表示读数据或条件X;wr!(X) 表示写数据或条件X; 事件、条件和动作可进行逻辑and ,or ,not等运算。 如:E1 and E2表示事件E1与E2同时发生;C1 or C2表示C1和C2的或逻辑运算。 ② 迁移与状态的连接 迁移描述了简单状态和简单状态、简单状态和递阶状态、递阶状态和递阶状态之间的状态转移关系。 迁移用有向弧图示,有向弧可以从一个状态的边界引出,终止于另一状态的边界,也可以穿过先辈状态的边界。 当一个迁移没有指明其源状态时,则称之为缺省迁移。其所指向的状态,称为缺省状态。缺省迁移用圆点箭线弧表示。 缺省迁移可以指向一个状态,也可以穿过先辈状态的边框直接指向某一子状态。 当迁移指向一个与状态时,则相当于指向其所有的子状态;当迁移指向一个或状态时,则相当于指向其缺省的子状态。当退出一个状态时,则相当退出其所有的子状态。 R F S2 S22 S21 S1 R F S2 S22 S21 S1 U R F S S22 S21 S1 T T2 T1 U * ③ 复合迁移 为了简化图形中迁移的有向弧线,Statecharts中引入了一些辅助符号,从而得到状态之间转移关系的复合迁移。 条件连接符 也称为C-连接符,用于条件的连接。Statecharts规定始于C-连接符的条件分支可以多个,但是这些条件分支必须是异或的。 S1 S3 S2 [C1] E C [C2] S1 S3 S2 E[C1] E[C2] * ③ 复合迁移 --开关连接符 开关连接符,也称为S-连接符,用于事件的连接。 S1 S3 S2 E1 A S E2 E3 S1 S3 S2 A?E1 A?E2 A?E3 * ③ 复合迁移--分叉(汇合)连接符 迁移的触发和(或)动作的相同部分,可以通过分叉(汇合)连接符形成一个单一的弧线进入(离开)连接符。 分叉(汇合)连接符适用于条件连接符和开关连接符所不能描述的情形。 S1 S3 S2 R /A S S1 S3 S2 [C1] E F S1 S3 S2 SET S1 S3 S2 /A [C1] E * ③ 复合迁移 --分叉(汇合)结构 分叉(汇合)结构是进入(离开)与状态的子状态迁移的一种描述方式。 此类结构下复合迁移所联系的状态转移,要求迁移上所有的触发同时满足,且动作也都同时执行。 U S1 S3 S S2 S4 A E1/A1 [c2]/A2 U S1 S3 S S2 S4 A [c1]/A1 E2/A2 * ③ 复合迁移 --图形连接符 图形连接符可以实现迁移的异地连接。用椭圆符号并标注相同的名称来图示。 Statecharts规定每个图形连接符出现与所连接的迁移必须具有相同方向的弧线(离开或者进入)。 S1 INT S S2 S3 A [E1]/A1 INT R INT * ③ 复合迁移 --历史连接符 历史连接符规定系统进入一个状态组中的一个最近访问历史状态,用
文档评论(0)