您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
   
 
     
   
 订阅
  捐助
状态机和人机界面的联合仿真
 
作者:王玉,俎涛(火龙果软件工程)
592次浏览     评价:  
2021-1-22
 

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次,转移至登陆失败活动,然后转移到结束状态,事件结束。

    如下是基于状态机的用户界面仿真的运行效果截图:


    至此,通过用户界面原型的交互动作事件,驱动状态机的仿真,用户界面仿真的交互事件可以让仿真更加贴近实际工作场景,有利于分析人员和用户代表对于方针的理解,有助于提高状态机的验证效果,提高复杂动态逻辑的分析设计能力。

    如果您希望了解更多信息:

    • 欢迎访问建模者频道 http://modeler.org.cn/
    • 也欢迎直接联系我们 zhgx@uml.net.cn ,010-62670969

    下载 pdf版: 状态机和人机界面的联合仿真

    本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp

     

    后记

    希望您读了此文后有所受益。

    如果您有经验乐于分享,欢迎投稿给我们。

    如果您对我们的培训、咨询和工具感兴趣:

  • 课程:基于UML和EA进行分析设计
  • 课程:MBSE(基于模型的系统工程)  
  • 课程:基于模型的需求管理)方法与实践
  • 课程:基于SysML和EA进行系统设计与建模  
  • 课程:企业架构建模
  • 课程:系统架构建模方法与案例
  • 课程:领域驱动的建模与设计
  • 课程:基于模型的设计
  • 课程:业务建模与业务分析
  • 建模工具:EA
  • 基于模型的需求管理工具:iSpace
  • 咨询方案:MBSE(基于模型的系统工程)
  • 咨询方案:基于UML的模型驱动的开发
  • 欢迎联系我们: 俎涛 Zutao@uml.net.cn

       
    592 次浏览     评价: 订阅 捐助
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
     
    相关文档

    UML统一建模语言参考手册
    网上商城UML图
    UML建模示例:JPetStor
    UML序列图编写规范
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于UML和EA进行系统分析设计

    最新活动计划
    图像处理算法方法与实践 3-3[北京]
    从需求过渡到设计 3-8[北京]
    基于UML和EA进行系统分析设计 3-18[北京]
    simulink信息处理 3-19[北京]
    机器人软件开发技术 2-25[北京]
    云计算、微服务与分布式架构 3-26[北京]
     
    最新文章
    iPerson的过程观:要 过程 or 结果
    “以人为本”的工程哲学
    企业架构、TOGAF与ArchiMate概览
    UML 图解:顺序图( sequence diagram )
    UML 图解:对象图( class diagram )
    最新课程
    基于UML和EA进行系统分析设计
    UML+EA+面向对象分析设计
    基于SysML和EA进行系统设计与建模
    UML + 嵌入式系统分析设计
    领域驱动的建模与设计
    更多...   
    成功案例
    某电信运营供应商 应用UML进行面向对象分析
    烽火通信 UML进行面向对象的分析设计
    西门子 UML与嵌入式软件分析设计
    航天科工某子公司 从系统到软件的分析、设计
    深圳某汽车企业 模型驱动的分析设计
    更多...