博客 知识分享

MXAM – 静态测试工具的最佳选择

前言

在汽车与自动化行业,基于模型的开发过程中,从业者希望能够在保证建模效率的同时确保模型质量。此时,合理使用建模工具变得尤为重要。合适的工具不仅能够通过建模规范检查分析测试模型的质量,还能根据分析结果对模型进行自动改进。本篇文章为您介绍广受业界认可的静态测试工具MES Model Examiner® (MXAM) 。从MXAM在静态测试中的应用角色到实际演示与10.0版本功能更新,本文带您透彻了解MXAM如何能轻松帮助您实现优质建模。

基于模型的开发中静态测试的应用与MXAM

MXAM是用于对Simulink®、Stateflow®、Embedded Coder®和TargetLink®模型进行全面静态分析的专业工具,主要应用于软件V型开发流程的左侧设计阶段,覆盖从架构到单元设计和实现的全过程。

基于模型的开发(MBD)依赖基于需求的,测试驱动的工作流来持续地确保质量。软件V型开发流程由左侧的设计阶段和右侧的测试阶段组成。功能质量和功能的适用性是右侧测试阶段的主题,而设计的适用性和设计质量则是设计阶段关注的重点。设计质量和功能质量同样重要,因为模型设计的适用性能够有效促进功能的适用性。

那么,模型设计质量应如何保证? 模型静态测试能够帮助工程师保证模型设计的适用性:不仅可以改进已在开发过程中的模型,还可以通过质量保证前置帮助模型在代码生成前确保质量,生成代码的质量得以有效提升。实际应用中,MXAM支持高度自动化的静态分析并致力于Simulink和TargetLink模型的可读性,鲁棒性,避免模型错误以及改进生成代码。

图1是一个Simulink模型的次级子系统。可以看出,模型目前存在违背建模规范的多项错误。例如第1处,模块命名应位于模块下方,而不是上方。再比如第2处,对于常值模块而言,其命名不应使用具体的、非0和1的数字,而应当设置为参数进行表示。对于模型的可读性来说,图1的信号流未对齐(第3处)。模块的命名应当被清晰识别,而第4处显然不符合建模规范的相关要求。第5处的输入端口隐藏在了系统布局内。此外,出于避免模型错误的出现,第6处的乘积模块不应存在超过两个输入端口…等等,这些问题严重影响了该Simulink模型的可读性和设计质量。图2展示了该模型经过MXAM修改优化后的结果:所有在之前讨论过的错误都被一一准确修正,模型的可读性得到了显著提升。

 

由此可见,评估模型的建模规范合规性在保证模型质量的实际应用中至关重要。此环节主要评估模型的布局,数据和控制流,数据类型,及其配置情况。模型的布局要求确保模型元素之间的关系和连接方式符合设计规范。模型的数据和控制流要求检验可能的逻辑错误及路径偏差。模型中的数据类型定义必须正确且一致。模型的配置情况则要求模型的配置参数符合设计规范。

这样的评估需要遵循相关的模型设计原则或标准,例如MISRA,MATLAB Simulink,或相应建模规范文件等等,设计原则的具体应用主要通过对根据相应规范而设置的模型指标的检验评估实现。例如汽车功能安全行业标准ISO 26262 – 6: 软件级别产品开发中对汽车软件架构所提出的具体建议和原则。其中,模型的复杂度,大小,和非相干度是检验模型是否符合相应建模规范的重要指标。模型的复杂度分析旨在发现模型中可能导致问题的复杂结构或关系,及时优化并简化模型,确保模型合规。模型的大小意在评估模型子系统,接口等等的规模,确保模型的可理解性和可维护性。模型的非相干度要求减少模型中的非相干性,以此确保模型各部分之间的关联适度。

模型指标的检验分析可以通过静态测试的方式在模型开发中及早实现,提高模型的质量,并保证软件系统运行的稳定性和安全性。在模型开发过程的敏捷工作流中,建立模型之后,根据建模规范或行业标准的要求分析模型指标,再生成清晰且全面的分析报告,并根据报告结果对模型进行修复,最终实现并输出优质的模型。

在模型开发过程中执行静态测试,可通过敏捷工作流实现。如图3所示,敏捷工作流中,首先建立模型,再根据业界标准和建模规范进行模型分析,得出清晰全面的分析报告,最后根据分析报告的结论快速解决和修复模型遇到的问题,最后实现质量门的通过,轻松实现优质建模。在这一过程当中,MXAM和MoRe (MES Model & Refactor® (MoRe), 现已集成在MXAM中) 两大工具,分别在敏捷工作流的不同阶段为建模工作提供有力支持。

图3:MXAM与MoRe为模型开发过程中敏捷工作流的不同阶段提供支持
图3:MXAM与MoRe为模型开发过程中敏捷工作流的不同阶段提供支持

通过启动模型分析,MXAM可以向用户展示模型根据建模规范一致性的分析结果报告,如图4所示的分析结果视图。

图4:MXAM分析结果视图
图4:MXAM分析结果视图

从展示形式来说,如图5所示,MXAM中的报告视图可展示为不同的导览方式,如规范文档导览(Document Navigation)和模型工件导览(Artificial Navigation)。规范文档形式下,在报告和文档的每个级别都显示聚合的分析结果:模型名称分析完成的时间。在工具栏中,还可以通过选择树查看分析结果。工件导览是以模型结构树的形式显示相应系统或子系统对应的模型聚合分析结果。

图5. MXAM报告视图的不同导览方式
图5. MXAM报告视图的不同导览方式

内容而言,图6显示了模型的合规报告视图右侧显示了模型的合规分析结果列表(Findings),模型架构分析的相应指标(Metrics),模型合规性的注释列表(Annotations),模型分析的配置详情(Analysis Configuration)和模型分析指标的摘要(Metrics Summary)

图6. MXAM合规分析结果
图6. MXAM合规分析结果

用户还可以通过菜单(Menu)或过滤选项(filter)选择并查看相应的分析结果。分析结果的详细信息可以在详情结果视图(Finding Details)查看。如图7所示,用户可以查看到违反相关建模规范的详细信息和结果描述。

图7. MXAM违规项的详细信息
图7. MXAM违规项的详细信息

比如出现错误的具体路径(Path)和具体模块(Name),和出现这条错误报告的具体原因。用户可以通过路径及模块名称上的超链接直接到达模型中该错误所在的位置。修复选择(Repair Finding)可以帮助用户一键修复错误。

对于建模规范来说,此处以建模规范mcheck_misra_slsf_030_c为例,在详情页中(如图8所示)可以找到关于这一建模规范的详细描述,包括检查项通过该建模规范或不通过的评判标准(Pass-Fail Criteria),以及相应的解决方案(Solution)和修复的具体描述(Repair Action)。

最终的检查报告可以HTML-、 PDF-、 EXCEL-、XML-以及MXAM自带的mxmr格式快速导出。

图8. MXAM建模规范详情页
图8. MXAM建模规范详情页

MXAM v10.0: MoRe的集成与功能升级

MoRe现已成为MXAM的一部分。

在前文中已提到,MXAM能够在模型敏捷开发流程的多个阶段提供强有力的支持:加速模型分析流程,快速生成报告,并辅助自动修复。同样来自MES模赛思的MATLAB Simulink扩展建模辅助工具MES Model & Refactor® (MoRe)能够为敏捷开发流程中的建模和修复提供高效帮助。

MoRe能将您日常建模中的步骤自动化,省去大量重复单调的操作,帮助您在建模时专注于重要步骤,节约时间,全面提高工作效率。现在,在MXAM全新版本v10.0之下, MoRe已集成在MXAM中。MXAM的功能变得更为全面,全力支持您基于模型的开发过程。

如图9所示,这是普通的MXAM安装程序。用户可以在此处选择许可证文件,而MoRe的标志已在此标注。接下来用户可以继续正常的下载步骤,MoRe的下载会自动随MXAM同步进行。

图9. MoRe的安装已集成在MXAM下载器中
图9. MoRe的安装已集成在MXAM下载器中

进入MATLAB界面后,MXAM和MoRe即可马上使用。如图10中的Simulink 模型所示,"MES MoRe"选项已经显示在菜单中,可以直接调用MoRe的相关功能。

图10. MoRe的轻松调用
图10. MoRe的轻松调用

MoRe最新版本的所有功能均包含在内,集成在MXAM中和MoRe独立工具使用的体验相同。不仅是自动布局,MoRe同样可以从多角度帮助模型进行快速优化。不论是从将Goto/From模块转换为信号线,或是命名问题, MoRe都可以辅助您改进模型,并节约大量时间。

新增可选扩展全局参数及建模规范。

新版本中,MXAM 对Embedded Coder AUTOSAR运行实体中的参数进行了扩展。在使用Embedded Coder进行模型开发时,如果静态测试包括了自动生成的模型部分,则会导致大量的时间和资源浪费。MXAM v10.0对分析参数进行了扩展(见图11)。如果将此参数设置为“True“,那么MXAM只会对运行实体子系统中的模型元素进行分析。

图11:MXAM v10.0新增参数:  "Global.AnalyzeAutosarRunnablesSubsystemsOnly"
图11:MXAM v10.0新增参数: "Global.AnalyzeAutosarRunnablesSubsystemsOnly"

在开发AUTOSAR模型的过程中,工程师一般通过ARXML文件开始进行模型生成和框架的构建,因而模型会自动生成很多层级以及其他文件。而模型的自动生成部分并非必须进行静态测试,因其必须遵循AUTOSAR提供给您的内容,模型结构固定,对固定部分进行静态测测试会耗费大量不必要的时间和精力。这个新的全局参数能够帮助工程师实现只分析 AUTOSAR运行实体中的模型和函数,这样开发工程师就可以将模型分析专注于实际应用和可以进行更新修改的模型部分,从而节约大量时间。

而对于建模规范而言,MXAM新版本的更新完全围绕主题“功能安全“展开。

建模规范mes_slsf_1500: 确保可重用模型组件具有已解析并启用的链接。本建模规范完全专注于功能安全。在工程师应对可重用模型组件时,应当确保所有链接已解析,如果其中有尚未解析的链接,将模块用未启用的链接进行连接可能会导致潜在的问题。使用本建模规范可以确保模型引用可用且已更新,同时提高了可测试性,确保模型在进入下一个质量保证阶段前一切就绪。

另一项更新来自mes_slsf_2200: 避免舍入模式(Rounding Mode)。绝大多数 Simulink中的计算模块都可以设置特定的舍入模式。此时,确保代码生成的舍入模式都被明确定义十分重要。本建模规范能够避免模型将舍入模式设置为“Simplest”,并且对应的MES检查项中也有对应的检查参数可供使用。

本次更新还包括建模规范mes_slsf_3500: 禁止在Stateflow图中使用用户定义的事件。基于事件的建模可能会导致模型难以维护,出现隐藏控制流和可能的无限递归。同步问题也可能发生,且Stateflow的早期返回逻辑可能导致不良后果。此建模规范可确保模型不会在Stateflow图中使用用户定义的事件,从而防止隐藏控制流出现在模型之中。

除此之外,新版本还添加了对三个版本的TargetLink用户的相应变量类别和全新的MES检查。

如您想了解并体验MXAM v10.0全新版本,欢迎您申请免费试用,了解更多。

相关视频

Go back