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

今日头条

1141人已加入

描述

梅赛德斯-奔驰北美研发中心(MBRDNA)运用MES Model Examiner工具软件来提升其基于模型的软件设计流程。

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

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

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

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

MBRDNA决定建立一个全面的软件模型重构项目,以应对这种不断增加的测试和跟踪工作。

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

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

寻找合适的工具 

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

重构技术的应用

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

系统地将过于复杂的子系统分解为一组不太复杂,功能相关的子系统。

使用MXAM的克隆检测功能来检测模型中重复使用的冗余元素/代码块(blocks)(例如:多项式(Polynoms)的代码块 ),并将这些冗余元素添加到MBRDNA特定的代码块库(block library)或引用的模型中。这样做的目的是避免出现须单独进行检查和测试的冗余模型组件。

使用MXAM收获的积极成果

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

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

作为度量整体软件模型的可理解性和可读性的指标,整体复杂度已降低约10%。这意味着为理解、维护、测试和实施重构软件模型所需的工作量大幅减少。

局部复杂度的测值也有了显著的降低,而且对于一些软件模型,复杂子系统的数量减少到了零。

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

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

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

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

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

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

关于MES模赛思: 软件质量在控制之中

模赛思软件技术有限公司(Model Engineering Solutions),简称MES)是一家高科技软件公司,专为软件项目的质量保障提供解决方案。MES为客户基于模型的软件开发提供技术支持,使其符合IEC 61508、ISO 26262或ASPICE等行业标准。

MES模赛思成立于2006年,总部位于德国柏林。Hartmut Pohlheim博士作为基于模型的开发领域最著名的专家之一,自2008年起任公司常务董事。MES的主要客户包括整车厂如戴姆勒、大众、丰田和吉利等以及博世、西门子和三星等行业供应商。在汽车行业中,除少数几家公司外,全球数十家顶尖制造商及供应商均在他们的开发环境中使用MES的解决方案。为支持其全球客户,MES已在美国和中国建立了子公司,并与全球分销商网络紧密合作。

MES的产品包括4种质量工具软件:MXAM、MTest、MoRe和MQC,它们共同构成了一个工具链,全面保障基于模型的软件开发过程中所有阶段的质量。通过MES Jenkins Plugin,该工具链也可以在持续集成环境中使用。工具链主要应用平台为MATLAB® Simulink®。除了MES质量工具外,MES测试中心和MES学院的专家们还为全球客户提供关于质量保证和开发流程优化的定制咨询服务及培训课程。

MES是dSPACE 公司的战略合作伙伴和MathWorks及ETAS的产品合作伙伴。MES学院与SAE International有合作关系。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分