状态机图仿真的模型样例(基于EA) |
模型
from:EA-Example |
作者:俎涛
王玉 (火龙果软件工程) |
|
1.
状态机图简介 |
状态机图是SysML核心图之一,同时也是SysML和UML共有的图,用于描述对象在整个生命周期中的状态变化,其中核心元素
有State, Transitions,Initial和Final等。
下面是一个播放器播放歌曲过程的状态机图示例: |
|
状态机的仿真正是适用于系统的动态建模仿真,它可以更好的展现一个状态在在其生命周期中的各种变化。 |
如下是状态图的核心元素说明: |
元素 |
说明 |
State |
状态,对象某个特征的持续阶段。 |
State Machine |
状态机,描述对象在其生命周期内处于各种状态的图,一般状态机依附于一个类,描述这个类的状态及其转换。 |
Initial |
初始状态,状态图的起始点,只能作为转换的源不能作为目标。 |
Final |
最终状态,状态图的最终点,只能作为转换的目标不能作为源。 |
Heat Maps |
热点图,网格形式的图表,常用于说明战略和决策。 |
History |
历史状态,离开一个复合状态后,标记离开的子状态为历史,下次进入从历史状态开始。 |
Synch |
同步,多个并发工作流同时进行。 |
Choice |
选择,对象的在其他事件的作用下,根据获取的不同条件进入不同的目标状态。 |
Junction |
会合点,将两次转换汇合成一次。 |
Entry |
入口,对象在进入某种状态时要执行的动作。 |
Exit |
出口,对象在退出某种状态时要执行的动作。 |
Transitions
|
转移,两个状态之间转换的关系。 |
Object Flow |
对象流,两个活动之间进行对象或数据的传送的情况。 |
Object |
对象,类的实例。 |
Event |
事件,通过外部作用触发对象状态改变的现象。 |
Signal |
信号,对象之间通过信号进行通信。 |
Trigger |
触发器,触发事件改变对象状态。 |
|
2.State
Machine Simulation概览 |
如下是一个状态机的模型示例: |
|
这个模型样例有什么呢? |
|
各个包的内容说明如下: |
包 |
内容 |
Operating
States |
操作状态示例:描述一个简单音频播放器基本工作过程的状态转换的状态机。 |
Nested Traces |
嵌套状态机示例:模型描述的是在进入和退出嵌套状态时状态机的进入和退出行为的仿真。 |
Traffic
Lights |
交通灯控制器示例:包含了一个可执行状态机,该状态机描述了行人在经过人行横道时交通灯状态的切换。 |
Music Player |
音乐播放器示例:其中包含了多种不同的状态机,通过使用触发器和活动用以支持播放器播放指定歌曲或播放列表中的歌曲的行为。 |
Customer
Login |
用户登录示例:描述了使用触发器来执行用户名和密码进行登录尝试的状态机。 |
|
|
下面对各个状态图实例做个简要介绍。 |
基本的状态图 |
其中包含一个信号: |
|
状态图的具体内容如下: |
|
此模型具体描述了一个简单音频播放器从闲置状态到播放状态再到中断、暂停播放的状态转换过程。 |
具有嵌套状态的状态图 |
|
此模型主要是描述了由A状态到D状态转换过程中,在B、C两个嵌套状态中状态与子状态之间的进入和退出事件以及转换上操作和使用。 |
在状态机中对属性进行处理 |
如下是具有属性的对象
TrafficLightController: |
|
如下是本类的状态机,在其中对属性通过进行了处理。
|
|
本模型描述了用于人行横道的交通信号灯在不同状态的切换过程。
|
一个对象具有多个状态机
|
|
此示例中共包含了四个状态机图,分别是:
PlayerState(播放器状态):是此模型的核心行为,通过On状态中被划分为两个并发区域控制播放器的行为。第一个并发区域:Play
State,它控制歌曲的加载和播放;第二个并发区域:Repeat Mode,即重复模式,控制播放器重复播放歌曲的行为。
Play Song(播放歌曲):播放当前列表中的的歌曲,并且根据重复模式的并发状态,可能重复播放。
Play List(播放列表): 查找当前指定的播放列表,允许定义新的歌曲添加至播放列表。
Load Library(加载音乐库): 当音乐播放器打开时,将调用此活动加载全部音乐。
|
具体图例如下: |
|
通过用户界面触发事件进行状态机仿真 |
模型中共包含两部分内容: |
1. 用户界面模型 |
|
2.描述登录过程的状态机模型 |
|
本状态机模型包含了登录过程中遇到的各种状态,在仿真进行时通过触发触发器访问用户界面模型,然后将用户在界面的输入的数据通过信号传递回状态机模型进行判断,以此达到模型间的交互仿真。 |
如下是基于状态机联合用户界面仿真的运行效果截图: |
|
下面提供在线模型样例,您可以通过浏览器了解如上状态机的详情,里面附有文字说明。 |
|
浏览:
状态机图仿真的模型框架(基于EA)模型库 |
|
4586 次浏览 27 次
|