图片:软件V-模型中的软件设计和软件测试阶段

带您了解基于模型的开发(MBD)

随着汽车ECUs的功能越来越先进和复杂,模型及软件的复杂程度也在成倍增加,行业对汽车软件模型的质量、可靠性和安全性的要求变得愈加严格。基于模型的开发(MBD)是汽车行业高品质嵌入式软件开发的最佳方法。本文从MBD的原理开始,阐明MBD的重要性和基本原则,帮助您了解如何通过应用MBD方法来轻松实现高质量的建模,并最终助力安全关键型软件的开发。

图1. 基于模型的开发(MBD)
图1. 基于模型的开发(MBD)

什么是基于模型的开发(MBD)?

基于模型的开发(Model-Based Development),简称MBD,是汽车软件开发领域的成熟方法。MBD强调软件模型在整个开发过程中的中心工件位置,并通过建立模型来实现软件开发过程的自动化。正确实施的MBD能够显著提升开发效率、降低开发成本,并显著提高代码质量、加快安全关键型软件的开发进度。

如图1所示,在MBD中,模型是整个开发过程的基础,并作为需求获取、算法设计、软件实施及测试和验证的原型。代码由模型自动生成,旨在用于构建最终集成在目标系统中的软件。

对于MBD而言,其重要原则有:

  • 抽象表示:通过简化复杂软件系统的表示,使模型更易于理解和管理。

  • 通用语言:将模型作为交流的通用语言,从而促进协作。

  • 单一来源:对于模型的一致性特点来说,将模型作为其单一来源来反映软件的变化,以此避免误解和不一致的出现。

  • 追溯性:MBD可促进整个开发过程中的双向可追溯性,确保模型与最初需求的一致性。

  • 迭代开发:MBD支持开发人员在多次迭代下不断完善和改进模型,从而支持模型的持续改进,以适应开发需求的不断变化。

  • 可重用性:模型可在同一项目或跨项目重复使用,从而节约开发时间,并促进一致性。

  • 质量保证前置:将模型的验证和测试活动前置到模型的早期开发阶段,从而实现尽可能早地减少错误,有效提升模型质量。

  • 工具支持:MBD中,使用专业的工具帮助模型创建、调整和分析,可以有效促进模型的高效实施,不可或缺。

  • 自动化:模型自动生成代码可有效提高建模效率,并减少模型错误。

 

这些原则对于充分发挥MBD的优势非常重要,接下来,本文将讨论MBD原则如何保证高质量模型的建立。

图2. 质量保证前置助力模型设计质量提升
图2. 质量保证前置助力模型设计质量提升

MBD是实现高质量建模的关键

MBD方法的应用是实现高质量建模的关键,而想要实现高效MBD助力软件开发,就必须确保模型质量。那么,什么样的模型可以被认为符合“高质量”的定义?

首先,高质量的模型应当确保模型独特统一的观感,有良好的可读性和可维护性,并支持模块化和可测试性。同时,高质量模型应当遵循最佳实践的建模风格,避免易出错的模型范式,并能改进通过模型生成的代码。

同时,前置质量保证对持续改进软件的整体质量不可或缺。在软件V流程中,对于模型而言,其设计质量与功能质量同等重要。并且,设计质量是模型后期能够高效实现功能质量的关键。现实场景中,如果开发人员在软件开发后期才发现模型的错误或问题,想要追根溯源修正模型,将会耗费大量的时间和精力。

作为MBD的基本原则之一,质量保证的前置能够使模型在代码生成前的早期设计阶段(软件V模型左侧)即实现验证和相关错误的识别和修复,并持续改进整体质量。而在模型开发早期就进行这样的优化对于提升后期测试阶段的模型质量和测试效率至关重要。

因此,质量保证前置对于实现高质量的建模必不可少。实际应用中,开发人员可以通过使用静态测试工具,在软件架构设计和软件单元设计与实现的步骤中进行迭代测试,从而有效实现前置的质量保证。

图3. ISO 26262:2018对模型架构设计的要求(来源: ISO 26262:2018)
图3. ISO 26262:2018对模型架构设计的要求(来源: ISO 26262:2018)

实现符合ISO 26262标准的MBD最佳实践

在安全相关的软件开发中,确保模型的合规性是安全关键型软件开发的又一重点。功能安全标准ISO 26262中明确推荐将MBD方法应用在安全关键型软件的开发当中,并要求模型设计应具有一致性(Consistency)、可理解性(Comprehensibility)、适用性(Suitability)、正确性(Correctness)、简洁性(Simplicity)、鲁棒性(Robustness)和可验证性(Verifiability)。在ISO 26262:2018的第6部分:软件级产品开发中,为实现以上模型优质属性,该标准对模型的架构提出了详细要求,并要求模型遵循建模规范。

对于模型的架构设计,ISO 26262标准明确在ASIL等级A-D下,强烈推荐模型执行低复杂度,并限制软件组件的大小和复杂度:

限制模型复杂度的目标是简化模型结构,降低复杂度,使开发人员更易于理解,从而降低出现错误的概率,并提高模型的可维护性。限制软件组件的大小能够帮助改进模型的结构表示。通过将模型的部分输出为库(Library),模型的结构变得更加灵活,开发人员能够快速定位并专注于模型需要进行测试的部分,并且不再需要重复测试无关或克隆的模型部分。模型的模块化能够有效提高模型的可测试性。总而言之,模型结构质量是模型质量的重要方面,开发人员可通过对模型指标(Model Metrics)的检验分析了解模型结构质量,进行修改,并最终实现高质量建模。欢迎查看MES模赛思的文章:《Simulink模型指标分析与模型重构的最佳实践》了解更多关于模型指标分析的详细信息。

ISO 26262同样要求模型遵循建模规范。源自最佳实践,建模规范能够提高模型的鲁棒性,可读性和一致性,并避免错误发生。

图4. MXAM模型指标分析结果报告视图
图4. MXAM模型指标分析结果报告视图

MBD工具实际应用

前文已经介绍,为实现符合ISO 26262标准的高质量建模,开发人员应通过对一系列模型指标的分析检测并控制模型复杂度,同时应用建模规范确保实现高质量建模,并保证模型完全符合行业标准。

在这样的MBD过程中,专业建模工具的使用可以有效促进模型的高效实施。以MES Model Examiner (MXAM)为例,如图4所示:

图5. MXAM建模规范分析结果视图
图5. MXAM建模规范分析结果视图

MXAM的报告页面通过不同颜色区分不同模型指标的分析结果,直观且明确。例如上图中的黄色模块,表示模型该模块出现复杂度问题,需要进行优化操作。在MXAM中,用户只需点击报告中出现问题的模块,并选择”Open Subsystem“,即可到达模型出现问题的模型子系统,进行相关操作。对于模型优化,MXAM同样支持运用简便的方法对模型进行优化,如使用MXAM的功能”Auto layout(自动布局)“进行快速模型重构,从而高效改进模型,提高效率。

应用建模规范对实现高效MBD的重要性不言而喻。MXAM全面支持来自MAB、MISRA、dSPACE、MES等等的建模规范,并支持用户自定义建模规范。在完成项目配置后运行分析,即可快速查看模型分析结果,并进行模型的修复和批注。如图5所示:

从该建模规范分析的结果可以看出,模型子系统没有通过相应的建模规范,需要执行修复操作。只需点击链接,MXAM的交互式报告页面即可指导用户直达模型出现问题的部分。对于修复选项,MXAM支持引导手动修复,也可进行自动化修复。

由此可见,MXAM能够对模型进行模型指标和建模规范的快速分析检查,并支持快速修复,为MBD中实现符合行业标准的高质量建模提供有力保障。

综上所述,基于模型的开发(MBD)是汽车行业高品质嵌入式软件开发的最佳方法。正确实施的MBD方法可以显著提高代码质量、降低开发成本、并有效加快安全关键型软件的开发进度。MBD中质量保证前置的原则对于实现高质量的模型必不可少,而保证模型符合如ISO 26262的行业标准更是重中之重。模型指标(Model Metrics)能有效控制模型复杂度,建模规范的应用则能有效提高模型的鲁棒性、可读性和一致性,并避免错误发生。MBD中,开发人员可以通过专业的模型静态测试工具对二者进行快速检查和评估,并快速修复,以保证模型质量,同时节省大量的时间,有效提高开发效率。

网络研讨会回放

想跟随我们的专家了解更多MBD相关知识?点击这里查看中文网络研讨会:高质量建模:符合ISO 26262标准的MBD最佳实践的回放和PDF演示文稿。

本次网络研讨会上,我们的工程师为您全面介绍使用MBD方法进行软件开发的优势、所面临的挑战及最佳实践,并向您实际演示MXAM在MBD方法中的重要作用。

您有任何疑问吗?

Elena Bley
Elena Bley
Senior Manager Marketing & Webinars

*必须填写

Please calculate 4 plus 9.