嵌入式系统 | 基于SCADE Display模型的验证

在上期#嵌入式系统Ansys SCADE系列专题内容中,我们为大家带来了《基于SCADE Suite模型的验证》的介绍,本次主题将针对基于SCADE Display模型的验证做相关分享,分别从基于SCADE Display模型的基础验证活动、认证级测试环境QTE,以及基于SCADE Display的含Suite模型的白盒联合仿真等方面做阐述。


1

基于SCADE Display模型的基础验证活动

由于SCADE Display同样是使用基于模型的开发和验证方式,所以使用SCADE Display后,验证手段也是在评审、分析和测试的基础上多了模型仿真。绝大部分验证活动概念相关的内容可参考《基于SCADE Suite模型的验证》第一章节的内容,本文不再赘述。下面先介绍大规模自动化验证前的测试活动。

1.1 模型检查与模型更正

模型检查是模型仿真测试的基础。但不同于SCADE Suite有一系列必需检查的严格的语法语义规则,SCADE Display模型检查的规则是可定制的,规则主要涉及两大类:1. 检查是否满足常用图形设计建模要求,例如圆、弧的半径不应为0,一些命名规则定义等;2. 检查是否满足通用的图形绘制性能要求,例如没有多余的坐标转换,遮罩数量要有限制。通过工具栏菜单Project->Project Properties->Design Checker Rules application可以启用或者禁用需要的规则。

嵌入式系统 | 基于SCADE Display模型的验证的图1

图表1: SCADE Display模型设计规则的定制选择

选定这些规则后,用户可以通过图形化方式(菜单Project->Checker->Check layer)或命令行方式来调用模型检查功能,检查对象可以是当前层,也可以是选定的部分元素组成的上下文环境。

嵌入式系统 | 基于SCADE Display模型的验证的图2

图表2: SCADE Display检查模型是否符合定制的设计规则

检查无误,会返回正确的提示。

嵌入式系统 | 基于SCADE Display模型的验证的图3

图表3 SCADE Display模型定制规则检查无误

检查有误,则会弹出专门的对话框,提示错误对象、错误原因和推荐的修改方法。

嵌入式系统 | 基于SCADE Display模型的验证的图4

图表4 SCADE Display模型定制规则检查有误,并提供修改建议

 

模型更正是包含模型检查的活动,区别在与1.模型更正无法以命令行方式调用;2.模型更正提供一键遵循推荐方法改正的功能;3. 模型更正后可能会引入新的警告或者错误。通过菜单Project->Corrector->Correct layer启动模型更正后的,SCADE Display先进行模型检查。

嵌入式系统 | 基于SCADE Display模型的验证的图5

图表5 SCADE Display更正模型是否符合定制的设计规则

检查无误,会返回正确的提示。

嵌入式系统 | 基于SCADE Display模型的验证的图6

图表6 SCADE Display模型更正检查无误

 

检查有误,则会弹出专门的对话框,提示错误对象、错误原因和推荐的修改方法,如果用户愿意根据推荐的方法修改,支持单击Apply按钮一键修改应用。

嵌入式系统 | 基于SCADE Display模型的验证的图7 图表7 SCADE Display模型定制更正检查有误,并提供修改建议和修改操作

 

SCADE Display认证级的代码生成器也含有检查模型的功能,因此也可以使用代码生成器对模型的正确性进行检查。该功能是在命令行方式中使用ScadeDisplayKCG命令的check选项。

嵌入式系统 | 基于SCADE Display模型的验证的图8

图表8 SCADE Display代码生成器进行模型规则检查

1.2 模型非交互式仿真

如果用户使用SCADE Display设计的是非交互式的人机界面,则可以使用提供的Animation功能进行模型仿真,观察图像随着输入参数的变化而变化。

视频1: 基于SCADE Display模型的非交互式仿真


1.3 模型交互式仿真

如果用户使用SCADE Display设计的是交互式的人机界面,则可以使用提供的Simulation功能进行模型仿真,观察图像随着输入、输出参数的变化而变化。值得一提的是,该仿真器还可以自动捕捉鼠标、键盘两个外设的信息,进行交互式仿真。

视频2: 基于SCADE Display模型的交互式仿真


1.4 生成独立可执行程序

如果用户在SCADE Display模型中已经嵌入了控制逻辑代码(可以是手写编码,也可以是SCADE Suite设计,或是两者的混合),则可以使用SCADE Display提供的Standalone功能一键编译生成独立可执行程序,独立可执行程序包括基于Windows操作系统和基于Android操作系统两个方式。不过,生成基于Android操作系统的独立可执行程序,需要预先安装Android Studio IDE, Android Software Development Kit (SDK)Android Native Development Kit (NDK)三款软件包。

视频3: 使用SCADE Display生成Windows独立可执行程序


2

认证级测试环境QTE


嵌入式系统 | 基于SCADE Display模型的验证的图9

图表9: SCADE认证级测试环境工作流

 

2.1 测试用例的创建

基于SCADE Display模型的测试用例的基本语法规则可以参考《基于SCADE Suite模型的验证》中的2.1章节。在此基础上,为测试图形相关的模型,新增了图形像素比对相关的测试语法,其内容如下

SSM::check image {"<refimg>"} sustain=forever|<integer> filter={"<filterimg>"} cmd={"<cmdimg>"}

 

该命令用于比对当前周期的图像与预先保存好的图像的像素差


  • refimg是必须有的参数,定义预先保存好的图像的相对路径,如果是使用SCADE Display Simulation工具生成的测试用例,则该参数缺省的相对路径为images/references/

  • sustain参数是可选的

    如果sustain值等于forever,则每周期都比对当前图像与参考图像的像素差,直至测试执行完毕。

    如果sustain值等于integerinteger必须是大于0的整数,即执行integer周期的当前图像与参考图像像素差的比对

    如果没有写sustain参数,则仅在下一个周期执行一次当前图像与参考图像的像素差比对

  • filter参数是可选的,过滤功能是指图像比对不是全部区域,而是在特定区域的图像比对,通常过滤图像的格式为.png过滤区域分两种情况,区域内的过滤(include),使用白色图片(R=255,G=255,B=255);区域外的过滤(exclude),使用黑色图片(R=0,G=0,B=0)

 

  • filterimg值,定义预先保存好的待过滤区域图像的相对路径,如果是使用SCADE Display Simulation工具生成的测试用例,则该参数缺省的相对路径为images/filters/


  • cmd参数是可选的,支持使用类似ImageMagick的第三方软件进行像素比对操作,具体内容此处不展开介绍了。

嵌入式系统 | 基于SCADE Display模型的验证的图10

图表10 SCADE Test中关于SCADE Display模型图形像素比对操作的测试用例

 

如果完全由用户自己手工编码来设计基于SCADE Display模型的测试用例,既耗时费力,又不直观。推荐使用SCADE Display提供的Simulation功能中测试场景记录功能来定义测试用例原型,再基于该原型进行修改编辑形成最终的测试用例。操作方法为右键单击测试规程中的Record记录,然后在弹出菜单中选择Insert->Scenario Generated from Simulation…按钮,接下来的操作参考1.3节的内容即可。

嵌入式系统 | 基于SCADE Display模型的验证的图11

图表11 SCADE Test中使用SCADE Display的Simulation功能自动保存用户测试操作

2.2 执行在主机上的功能测试和像素对比

使用SCADE QTE在主机上进行功能测试的结果如下图,既有图形化的报告,也有文本化的报告。可以从结果报告中看到测试用例编号,待测变量名称,实际输出,期望输出,精度约束等信息。

嵌入式系统 | 基于SCADE Display模型的验证的图12

图表12 使用SCADE QTE在主机上执行SCADE Display模型功能测试和像素比对后的文本报告


嵌入式系统 | 基于SCADE Display模型的验证的图13

图表13 使用SCADE QTE在主机上执行SCADE Display模型功能测试和像素比对后的图形报告

视频4: 使用SCADE QTE在主机上执行SCADE Display模型功能测试和像素比对


2.3 执行在主机上的模型覆盖分析

使用SCADE QTE在主机上进行模型覆盖分析结果如下图,可以便捷地通过颜色来区分覆盖分析的完整度,绿色是完全覆盖,红色是未覆盖,紫色是不可覆盖且没有解释。

嵌入式系统 | 基于SCADE Display模型的验证的图14

图表14 使用SCADE QTE在主机上执行SCADE Display模型覆盖分析后的全局报告

嵌入式系统 | 基于SCADE Display模型的验证的图15

图表15 使用SCADE QTE在主机上执行SCADE Display模型覆盖分析后的部分设计画面的结果报告

视频5: 使用SCADE QTE在主机上执行SCADE Display模型的覆盖分析 


2.4 基于目标机上的测试

如果需要在目标机上进行软硬件集成测试时,SCADE QTE支持将主机上测试完毕后得到的测试用例转换为可连接目标机的第三方程序对应的测试用例,以便用户能简单快捷地进行目标机上的测试。对SCADE Display模型的测试用例,现在可支持向IBM RTRT等软件的测试用例转换。


3

基于SCADE Display的含Suite模型的白盒联合仿真


最后,可以将SCADE Suite模型设计的控制逻辑嵌入到SCADE Display中做复杂的人机界面行为的设计。然后通过SCADE Display的Simulation功能进行含Suite模型的白盒联合仿真。

视频6: 基于SCADE Display的含Suite模型的白盒联合仿真

 

参考文献

[1] Leanna Rierson.安全关键软件开发与审定——DO-178C 标准实践指南[M].崔晓峰译.北京:电子工业出版社,2015.

[2] 蔡喁,郑征,蔡开元,等.机载软件适航标准DO-178B/C 研究[M].上海:上海交通大学出版社,2013.

[3] DO-178C.Software Considerations in Airborne Systems and Equipment Certification[S]. December 13, 2011.

[4] RTCA (Firm). SC-205, EUROCAE (Agency). Working Group 71. Model-based Development and Verification Supplement to DO-178C and DO-278A[M]. RTCA, Incorporated, 2011.


(1条)
默认 最新
受教了
评论 点赞
点赞 1 评论 1 收藏
关注