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

1元 10元 50元





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



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
状态机和人机界面的联合仿真
 
作者:王玉,俎涛(火龙果软件工程)
  4914  次浏览      25 次
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进行系统设计与建模  
  • 企业架构建模
  • 系统架构建模方法与案例
  • 领域驱动的建模与设计
  • 基于模型的设计
  • 业务建模与业务分析
  • 基于模型的设计

  • MBSE工具链 :
  • 建模工具:EA
  • MBSE平台:iSpace
  • 模型共享:WebEA
  • 文档生成:DocGenerator
  • 模型仿真:Simulator
  • 质量管理:inspector

  • 咨询方案:
  • MBSE(基于模型的系统工程)
  • 基于UML的模型驱动的开发
  • 基于模型的工程管理
  • 基于Sys ML进行系统分析设计
  • 基于模型进行系统分析设计
  • 欢迎联系我们: 俎涛 Zutao@uml.net.cn

       
    4914 次浏览       25
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
    UML图解:对象图(object diagram)
    UML图解:顺序图( sequence diagram )
     
    相关文档

    UML统一建模语言参考手册
    网上商城UML图
    UML建模示例:JPetStor
    UML序列图编写规范
    EA中支持的各种图表
    EA中的界面原型建模
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于UML和EA进行系统分析设计
    基于模型的需求管理
    业务建模 & 领域驱动设计

    最新活动计划
    QT应用开发 11-21[线上]
    C++高级编程 11-27[北京]
    LLM大模型应用与项目构建 12-26[特惠]
    UML和EA进行系统分析设计 12-20[线上]
    数据建模方法与工具 12-3[北京]
    SysML建模专家 1-16[北京]
     
     
    最新文章
    在EA中内嵌文档- Artifact
    EA中模型视图
    EA中的实体关系图
    使用EA进行风险建模
    EA中的项目词汇表
    EA的模型导出或导入csv文件
    自定义表格(Custom Table)在EA中的使用
    Gap Analysis Matrix(差距分析矩阵)
    更多...   
    MBSE工具
    MBSE平台
    建模工具 EA
    模型库-Model Center
    需求管理-ReqManager
    自动建模-Modeler
    多级仿真-Sys Simulator
    代码工程-Code Engineer
    文档生成器-DocGenerator
    更多...   
    成功案例
    广汽研究院 SysML+EA+软件分析设计
    高合汽车研发部门 建模工具EA、WebEA、学习视频
    国汽智联 建模工具EA、模型库、WebEA和iSpace
    亿咖通 MBSE工程体系与工具链咨询
    中航无人机 MBSE工具链
    吉利汽车 购买EA工具
    华科汽车零部件 购买EA工具
    东风岚图汽车 购买EA工具 以及EA定制开发
    更多...