如何用状态图进行设计07

图12 两个控制线程

可视化同步

可视化同步提供用图形表现独立线程之间相互交互的方法。可视化同步功能强大,因为基于消息的文本无法传递到底使用了哪种机制等信息;准确的行为只能从状态图中获得。例如,让我们修改图12 中的设计,当冰激凌线程完成了happy sale,强制热狗线程找钱。修改后的状态图如图13 所示。

可视化的Switch/Case(决策多边形)

在传统的有限状态图中,一个条件,例如X,只能是两个可能结果之一。一般为True 或False。而在具有可视化Switch/Case 功能的BetterState 的流图中,它可以是一个决策多边形,可以有多个结果,没有二选一的限制。理论上它可以支持任意数量的结果。

可视化Switch /Case 表现为两个或多个目标状态中做选择。可视化Switch/Case 中表达式的值决定能否发生转换。根据表达式的值,状态图转换为多个结果状态中的一个。

在扩展状态图中的任何状态,任何层次,设计者都可以增加一个可视化的Switch/Case ,它以图的方式表现了C / C++ /Verilog 中的switch 语句,Visual Basic 中的 Case Select 语句,和VHDL 中的Case 语句。

图13 Be Happy状态和Charge Money状态同步

图14 是一个使用了可视化Switch/Case 的例子。我们将在状态图中使用可视化Switch/Case 来描述我们在雨天的行为。在图中,我们的行为将根据雨的大小而改变。如果雨下得很大,我们就回家;如果雨不大,我们就打开伞继续营业;如果是毛毛雨,我们就当作没下雨,一切照旧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值