1.什么是状态机联合人机界面仿真
首先我们说一下仿真,仿真就是根据现有的模型和特定的条件对具体的过程进行模拟,从而得到一个预期结果。仿真可以帮助我们评估项目的可行性、检测未来可能出现的问题等等,至于具体的仿真内容在这里就不多说了,大家感兴趣的可以查看我们网站的另一篇文章进行了解《EA模型的仿真—验证未来》。
接下来我们就说一下联合用户界面仿真可以做什么:就是在仿真过程中对于人机交互的事件,采用界面原型的方式输入数据、触发相应的事件给状态机,实现面向用户的仿真交互。
下面就是一个采用状态机和人机界面联合方针的示意图:
在执行仿真时,状态机模型通过编写的命令访问用户界面模型,以此来达到其与动态模型的交互。
2.为什么需要用户界面支持仿真交互
模型的仿真可以即时的了解模型的行为过程,直观的跟踪具体的执行情况。
使用和真实界面一致的用户界面原型可以让仿真和实际工作场景更一致,让仿真各种场景更方便。在基于界面进行交互的仿真过程中,可以:
用界面的交互驱动状态机的事件,
通过界面显示对象属性的变化,
实现状态逻辑的可视化验证,
实现基于模型的用户场景验证。
3.用户界面原型建模有什么
EA目前支持Win32用户界面的动态仿真交互,所以下面我们就介绍下EA中支持用户界面设计和仿真的Win32 UI控件和进行配置UI控件行为的标记值。
元素列表 |
说明 |
|
Dialog: 对话框
Button:按钮
Check Box:多选框
Edit Control:编辑框
Combo Box:组合框
List Box:列表框
Group Box:分组框
Radio Button:单选按钮
Static Text:静态文本
Slider Control: 滑动条控件
Spin Control:数值调节控件
Progress Control:进度条控件
List Control:列表控件
Tree Control:树形图控件
Tab Control:选项卡控件
Rich Edit Control:富文本编辑控件
Label:标签
|
接下来介绍一下配置UI控件行为的标记值
标记值 |
说明 |
Columns |
主要适用于列表控件,用于定义列表的列名和宽度。 |
OnClick |
按钮的点击事件,当按钮被点击的时候触发,可以用于响应按钮上OnClick
事件执行命令。 |
OnCheck |
复选框选中事件,当复选框被选中事后触发。 |
OnChangeSelection |
单选按钮的选择事件,当选项改变的时候被触发。 |
Range |
主要适用于滑动条控件,数值调节控件,进度条控件,用于识别控件最大及最小值。 |
Tabs |
主要适用于选项卡控件,用于定义选项卡的名称。 |
4. EA中如何实现状态机和界面原型联合仿真
进行状态机联合用户界面原型的仿真的操作方法如下:
第一步,创建体现用户交互行为的动态模型,我们以状态机为例
具体的操作过程如下:
1.
创建一张新的图
2. 图类型选择UML
3. 选择Behavioral行为模型
4. 最后选择State Machine状态机图,随后点击OK。 |
第二步, 创建Win32用户界面模型
注意:创建的Win32模型时必须与状态机模型处在同一分支中。
具体的操作过程如下:
1.
创建新的模型图
2. 在图类型中找到交互设计
3. 选择Win32 UI模型
4. 图类型中选择UI Win32,随后点击OK即可创建完成。 |
第三步,编写命令对相关元素属性配置,进行仿真
为了让动态模型与用户界面进行交互,在模型中通过使用命令产生交互。
例如,UI模型中的登陆按钮的配置
1.
打开Login按钮的属性框
2. 添加Tagged Value属性
3. 设置验证登录信息的事件 |
5. 用户界面仿真实例
下面我们就以用户登陆为例介绍用户界面仿真过程。
在进行仿真之前,首先创建的是描述登录过程的状态机模型:
如下是用户界面建模中状态机元素的说明字典:
元素 |
说明 |
Initial |
开始状态。 |
State
|
状态,对象某个特征的持续阶段。 |
Choice |
选择,根据条件选择下一个状态。 |
Final |
结束状态。 |
如下是用户界面建模中的类之间的关系目录:
起点类 |
关系 |
终点类 |
起点 |
Transition |
登陆 |
登陆 |
Transition |
登陆判断 |
登陆判断 |
Transition |
登陆成功 |
登陆成功 |
Transition |
终点 |
登陆判断 |
Transition |
失败 |
失败 |
Transition |
Choice |
Choice |
Transition |
登陆 |
Choice |
Transition |
登陆失败 |
登陆失败 |
Transition |
终点 |
然后建模登陆相关的用户界面原型:
如下是用户界面建模中用户界面模型元素的说明字典:
元素 |
说明 |
Screen |
屏幕,直接展示给用户浏览的界面窗口。 |
Static
Text |
静态文本,提示信息。 |
Edit
Control |
编辑控件,编辑传递的参数内容。 |
Button |
按钮,通过添加”
OnClick”响应事件,触发触发器向动态模型发送的信号。 |
用户界面和状态机模型搭建好之后,还要对其相关元素属性进行配置,例如登陆时传递参数所需的触发器和可用于广播的信号。
具体的交互过程:
1.
仿真开始,通过开始状态转移到登陆状态,而登陆状态中包含了用户界面的的显示和隐藏事件;
2. 进入登陆状态后打开用户登陆的用户界面;
3. 在用户界面中输入用户名和密码,通过Login按钮触发触发器将输入的用户名和密码作为参数传递到动态机模型中;
4. 将接收到的参数在登陆判断元素中进行判断;
5. 参数正确,活动转移到登陆成功状态,然后转移到结束状态,当前事件结束;
6. 参数错误,活动转移至失败状态,然后转移到Choice进行判断;
7. 在Choice元素中判断密码的输入错误次数,小于3次,从新转移至登陆状态,然后再重新进行刚才的活动;
8. 当密码输入错误大于3次,转移至登陆失败活动,然后转移到结束状态,事件结束。 |
如下是基于状态机的用户界面仿真的运行效果截图:
至此,通过用户界面原型的交互动作事件,驱动状态机的仿真,用户界面仿真的交互事件可以让仿真更加贴近实际工作场景,有利于分析人员和用户代表对于方针的理解,有助于提高状态机的验证效果,提高复杂动态逻辑的分析设计能力。
如果您希望了解更多信息:
下载 pdf版:
状态机和人机界面的联合仿真
本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp
后记
希望您读了此文后有所受益。
如果您有经验乐于分享,欢迎投稿给我们。
如果您对我们的培训、咨询和工具感兴趣:
|