Success Stories Success Stories
Mercedes Benz logo

 

安全性与效率的提升在梅赛德斯-奔驰软件设计流程中实现

梅赛德斯-奔驰北美研发中心(MBRDNA)是如何运用是如何运用来自MES模赛思的模型度量指标*来提升其基于模型的软件设计流程的。

作为世界上最著名的汽车制造商之一的研发部门,MBRDNA的开发团队一直以来在不断寻找最高效和最有效的方法和流程,为其开发用于尖端汽车功能的安全软件,如E-Drive控制器。 但是,向现有的软件程序里添加功能,同时又要保持它的可理解性、可维护性和可测试性是一项挑战。 为实现这一目标,即便使用软件模型,也需要先进的工具和流程作为辅助,才能实现这一目标。

控制软件的持续改进:重构的必要性

插电式混合动力汽车系列。 资料来源:MBRDNA
1 插电式混合动力汽车系列。 资料来源:MBRDNA

MBRDNA尤其希望提升其E-Drive组件的控制软件的性能。 在美国密歇根州雷德福(Redford, MI)的团队已将基于模型的开发作为其设计嵌入式控制软件的主要开发方法。作为它的一部分,软件模型是开发过程中的基本工件–对功能完整性和预期功能覆盖率的验证主要在软件模型层级进行。 作为对流程的持续改善的一个方面,现有的用于生产的软件模型会定期进行改进,以合并越来越多的功能。 MBRDNA的E-Drive软件模型是电子驱动系统控制器的基础。 它管理着如电子驱动器的扭矩和牵引力等功能。 该控制器软件还用于48V系统,纯电驱动系统和燃料电池项目等领域。

MBRDNA的策略是首先实现软件的基本功能。 随着更加复杂的需求和其他项目利益相关者, 如新开发人员、测试人员和校准人员的参与,MBRDNA确定了“管理复杂度”的必要性,以便使复杂的软件模型相对容易理解,并促进团队之间的有关直接沟通。 软件模型变得越来越大,这成为审查基本模型的主要原因。软件模型功能测试团队经常需要特别投入额外的精力来测试软件模型及其包含的软件单元。

开发一个软件模型重构的系统方法

MBRDNA首先定义了一组软件模型重构的目标。 其主要目标的是通过降低模型的复杂度来提高模型的可测试性和可理解性。 MBRDNA希望降低子系统级别和整个软件模型集成级别的复杂度。 MBRDNA遵循ISO 26262安全标准,因此他们必须确保单元和模型的结构良好且不包含过于复杂的部件,因为这经常会导致测试出现问题。 过于复杂的部件必须分解成不太复杂和较小的单元–最好是每个子系统只包含一个专用功能。 另一个目标是识别潜在的库元素,这将进一步降低模型的整体复杂度。 MBRDNA的做法是将自动化水平推向最高。 为此,MBRDNA开始着手寻找模型架构增强工具来支持和监控重构结果。 作为确定的软件模型设计流程的一部分,他们的长期打算是验证此类工具是否有助于体系架构的持续监控和优化。

寻找合适的工具

来自MES模赛思的模型度量指标*被选中支持模型重构项目。 这些度量指标可计算每个子系统的软件模型的本地复杂度,并提供有关整体模型复杂度的信息。 此功能还向用户指出所谓模型的热点。 热点是模型的子系统,应该被修改和重构。 为了进一步优化此功能的功效,MBRDNA利用他们的灵活性,为他们的特定环境进行了个性化定制。 MBRDNA在MES模赛思模型指标*的配置中特别添加了特定功能代码块并定义了自定义缩放因子。 鉴于这种简单的可配置性,一系列度量指标可被提供,精确地识别MBRDNA模型中有问题的部分。 该功能还可进行定性和定量分析。 定量分析包含软件模型的全局整体复杂度分析。 该信息在“重新架构流程”和软件进一步模块化的过程中是必要的,其中整体复杂度用于确定哪个超大型软件模型应该被分解成多个软件模块。 定性分析为MBRDNA提供有关特定软件模型中容易出错的热点的信息。 因此MBRDNA对本地子系统的复杂度,以及如何以智能的方式限制复杂度的方法特别感兴趣。

重构技术的应用

根据MES工具提供的度量指标,MBRDNA开发并采用了一系列技术来重构被识别的软件模型部件:

  • 系统地将过于复杂的子系统分解为一组不太复杂,功能相关的子系统。
  • 使用 MXAM/MXRAY* 的克隆检测功能来检测模型中重复使用的冗余元素/代码块(blocks)(例如:多项式(Polynoms)的代码块 ),并将这些冗余元素添加到MBRDNA特定的代码块库(block library)或引用的模型中。这样做的目的是避免出现须单独进行检查和测试的冗余模型组件。

使用MES模赛思模型度量指标*收获的积极成果

Humphrey Achiri - MBRDNA高级开发人员
Humphrey Achiri,
MBRDNA高级开发人员

使用来自 MXAM/MXRAY 模型度量指标*的分析高度精确地指出了软件模型中易出错的热点。根据MBRDNA的高级开发人员Humphrey Achiri的说法,“这大大提高了我们软件模型的整体可读性、可测试性和可维护性。” 此外,梅赛德斯-奔驰的校准工程师们指出,它使得“在车辆测试期间,其测试轨道上的时间是一个限制因素,而它使得定位到最终软件这件事变得更加容易。”对梅赛德斯-奔驰的测试工程师们来说,设计MIL和SIL的测试用例也变得更加方便了(即易于进行基于需求的测试),因为单个需求与特定子系统中的实际实现更加一致。 另外,由于单个子系统不太复杂,因此软件的文档也变得更加简单

MBRDNA目前已经能够实现其主要目标,即提高新一代混合动力汽车和纯电动汽车软件模块的可读性、可测试性和可维护性。 鉴于复杂的单个子系统的减少,软件的文档也得以简化。 通过重构取得的数值结果包括:

  • 作为度量整体软件模型的可理解性和可读性的指标,整体复杂度已降低约10%。这意味着为理解、维护、测试和实施重构软件模型所需的工作量大幅减少。
  • 局部复杂度的测值也有了显著的降低,而且对于一些软件模型,复杂子系统的数量减少到了零。

在软实力方面取得的成果:

  • 来自需求工程团队的评论:“哇–这些软件模型现在更容易理解和使用。” 因为该模型与MBRDNA的48V系统、纯E-Drive系统和燃料电池项目具有额外相关性,因此对其复杂度的管理也被证明有益于版本管理。

此外,自动生成的代码没有改变,这是因为模型中描述的功能未被修改。

鉴于取得的积极实际成果,开发流程的提升以及有利的内部反馈,MBRDNA为安装MES工具软件并改进整个软件模型所做的努力是一项很好的投资。 重构项目的反馈和具体的实际效果都非常好。

对MBRDNA复杂度管理的前景展望

Alexander Dolpp,MBRDNA的E-Drive软件总监
Alexander Dolpp,
MBRDNA
的E-Drive软件总监

未来,来自 MXAM 的模型度量指标*将为MBRDNA模型的持续优化和重构提供支持。 通过使用MES工具,在MBRDNA开发与重构控制器功能的大型软件模型流程指南里将列出一组检查和度量指标作为团队在监控整个开发流程的模型体系架构方面的最佳实践。 MBRDNA还计划将该工具集成到基于Jenkins技术的高度自动化持续集成构建流程中。 借助额外的MES模型度量指标,例如不连贯不相关性和接口界面效率指标,“可以进一步简化持续模型改进的流程”,MBRDNA的E-Drive软件总监,Alexander Dolpp总结道。

 

* 模型度量指标最初是 MES M-XRAY (MXRAY) 的一部分。现在,MXRAY 功能已集成到 MES Model Examiner (MXAM) 中,并将在此基础上进行进一步开发。