沃尔沃汽车公司(VCC)是世界上最知名与最受人尊敬的汽车品牌之一。 该公司在为全球客户提供最新技术和安全性能方面享有很高的声誉。 在瑞典哥德堡郊区的VCC研发中心里,数千名工程师组成的工作团队致力于为下一代乘用车创造新技术。无论是应用于电动、燃油还是混合式动力系统,沃尔沃汽车研发活动的重点是提高动力总成部件(发动机,动力传动系统,齿轮箱)的性能。 因此,汽车动力系统应用的控制软件起着至关重要的作用。

扩大沃尔沃汽车内部软件开发的规模
沃尔沃汽车公司(VCC)在大约20年前引进了基于模型的内部软件开发,主要用于发动机和动力传动系统的控制。 基于模型的开发的优点是,现场工程师的专业知识可以与自动化的高质量软件开发相结合。 未来控制软件的功能模型将由功能开发人员的人编写,他们是其各自领域的专家。 他们专注于机电一体化系统及其功能行为,在软件生成工具链的支持下创建易于阅读,可测试和可维护的软件模型,包括控制器代码。VCC驱动系统和动力总成部门始于2002年,当时有一个大约由10名软件开发人员组成的不大的团队和一个简单的基本流程。 当时手动批处理(Bat)文件被用于生成代码和软件建构流程中。
在过去的几年里,由于来自多种不同车辆项目的需求不断增加,如不同类型的动力传动系统和燃烧控制功能的扩展,控制器软件中加入了越来越多的功能。 所需功能的复杂性和绝对数量也呈指数级增长。 这导致越来越多的验证和确认步骤需要插入到开发链中。目前这个开发团队已发展成100多名行业专家和功能开发人员的团队。 随着团队规模的扩大,将不同的软件组件集成到一个工作系统中,并减少需要在软件存储库中进行跟踪的故障数量成为了一个挑战。 而新软件产品的每一个版本的发布也变得越来越具有挑战性。 当时Apache SVN被用作管理开发不同软件版本的主要工具。

沃尔沃汽车向持续集成的转变
2014年,沃尔沃汽车的高层技术管理层决定引进先进软件行业的最佳实践、工具和方法。 在当今的软件行业里,持续集成(CI)和每日构建被用于将软件系统中的不同组件轻松集成到成熟的软件系统中,并使已有的保留功能不会被新的特征影响。 此外,每个开发人员会收到关于他们对软件系统的贡献的快速反馈,且资源密集型的测试过程能够一夜之间在一个更大的服务器上完成。 通过使用回归测试、每日构建和持续集成,人们可以有效地避免一场“集成噩梦”, 即要等到发布日那一天才能将其开发的各部分合并到预发布分支(release branch)上时的通常情况。 这些重要的CI原则被引入到VCC整个电子控制模块系列中。
2018年,他们又额外引进了基于OpenStack ZUUL的新CI系统。 ZUUL的座右铭是:“不要合并损坏的代码。”因此,只有经过测试和分析的代码才被允许合并到主分支(master)上。 ZUUL有许多优点,但最重要的一个是预测合并步骤,它允许大规模并行化。 ZUUL建立在变更管理系统GIT的基础上,这是一种快速、可扩展的分布式版本控制系统。 此外,GIT的插件Gerrit用来准备协作代码审查。 因此,ZUUL是大脑, 它听取Gerrit里的事件并将任务分发给Jenkins。 这个最新引进的、基于CI的开发链被称为沃尔沃汽车ECM CI链。 从软件实现开始,每一个新的提交都会自动触发一组集成和回归测试。 开发人员提交的变更已通过运行对构建的自动测试进行了验证。 这种新的开发方法完全遵循项目前期加载质量保证流程的理念。 另外,将后期集成问题的数量降低到绝对最低值的主要目标也很快得到了实现。

沃尔沃汽车的工具软件部署
到目前为止,VCC关注的重点一直是用于版本管理、代码生成和最终代码质量的主要技术。 但是,在基于模型的设计中,最终代码的质量取决于为自动代码生成提供基础的软件模型的设置。 功能模块是最核心的工件,而对软件模型的全面验证是保证最终代码质量的关键。 出于这个原因,沃尔沃汽车的动力总成部门开始寻找先进、实用的模型质量指标和质量工具,以弥补在这方面的不足。
2017年,VCC评估了一套由Model Engineering Solutions,一家位于柏林的软件模型质量专业公司设计的模型质量工具。 VCC决定逐步将模型结构检查工具MES MXRAY®和建模规范检查工具MES Model Examiner®引入到现有的CI工具链。 MES工具软件能够计算质量指标并分析每个通过CI工具链的模型是否符合建模规范的标准。 在开发流程中,收集的指标充当了质量门禁的作用,如果软件模型的质量指标未超过阈值,那么它只能由开发人员才能成功提交。 分析的结果将报告给各功能设计人员,他们对其模型的更改负全部责任。单击链接将会弹出更多的详细结果,高效地支持开发人员修复模型。

由报告生成的软件指标
在MES模赛思公司的支持以及MES专家的指导下,VCC驱动系统和动力总成部门对他们的项目进行了调查并选出了合适的模型质量规范。 于是,我们按照相关的具体建模风格需求编制并测试了常规开发项目与沃尔沃汽车驱动系统中安全攸关项目的建模规范集。
在ECM CI链中,每次单个提交都会触发一组自动化测试,包括MES MXRAY的复杂性分析和MES Model Examiner®的建模规范合规性检查。 最后,例如建模规范合规性、复杂性、单元测试结果和代码审查结果会以汇总反馈的形式提供给开发人员,并提供详细报告的链接。 公司的总目标是建立一个学习圈,并在此过程中激励早期和自我问责的错误预防。
ECM CI的设计涵盖了从模型的首次提交到自动生成代码的审查的所有流程步骤。 它还可以加入那些影响工具链中的检查、测试配置和工作流的配置设置。

使用CI驱动开发链取得的成果
尽管引入新的CI驱动工具链需要花费一些时间和精力,但它已经展现了许多优点。 首先,它显著改善了软件开发团队之间的协作方式。 验证和质量保证的主要目标得到了实现、提高了生产率,并且显著减少了繁琐的手工工作量。 最大的提升来自MXRAY,因为复杂性的降低有助于对功能的更好理解,进而可以快速稳健地进行动力系统的参数调优(校准)。 复杂性的降低会带来模型的重构,并使单元测试的编写更加容易。 根据沃尔沃汽车驱动系统的ECM 软件架构师 Andreas Wikerstål博士的说法,ECM CI链“为我们提供了必要的工具组合,以应对不断增长的基于软件的功能的数量,同时保证了软件的稳健性和质量不变。 在功能模型层级,MES工具允许我们在开发流程的早期阶段进行度量并提高质量。 这为代码创建和集成的最后关键阶段节省了大量时间与金钱。”

向全集成CI链迈进
在未来几年,沃尔沃汽车的目标是逐步扩展其基于模型的设计流程,并覆盖所有的开发项目。 越来越多的用户将使用工具链,其中MES Model Examinar® 和MES M-XRAY将发挥不可或缺的作用。 沃尔沃汽车将全面致力于ECM CI工具链的持续扩展,并使其剩余的半自动步骤完全实现自动化。 沃尔沃汽车驱动系统的CI/CD产品负责人Johannes Foufas自信地说:“我们目前正在研究向ZUUL v3的方向迈进,,因为该产品将为我们提供in-repo配置,实时配置更改,对多节点作业的本机支持以及Ansible工作内容。 我们还将努力移除所有手动步骤,并根据GIT标签仅保留同行评审,产品负责人批准和发布步骤。 如果可能的话,其它的所有步骤都应该实现自动化。” 未来,软件CI工具链的创建将自动触发工具链中的下一步,且不受任何用户的干扰。 此外,更加详尽的建模规范将被逐步引进,以进一步提升进度,提高建模规范的合规性。

沃尔沃汽车:通过基于模型的开发工具实现汽车软件模型结构度量相关推荐

  1. 浅谈软件开发工具CASE在软件项目开发中发挥的作用认识

    浅谈软件开发工具CASE在软件项目开发中发挥的作用认识 内容摘要:阐述了CASE工具作为 一种开发环境在软件项目开发中所起到的开发及管理作用.CASE工具实际上是把原先由手工完成的开发过程转变为以自动 ...

  2. sql自动生成工具_可自动生成代码,5款基于AI的开发工具

    如今,对机器学习潜力感兴趣的程序员都在讨论,如何使用人工智能和基于人工智能的软件开发工具构建应用程序.例如PyTorch和TensorFlow之类的解决方案. 除此之外,机器学习技术正以另一种有趣的方 ...

  3. 第七十七期:可自动生成代码,5款基于AI的开发工具

    如今,对机器学习潜力感兴趣的程序员都在讨论,如何使用人工智能和基于人工智能的软件开发工具构建应用程序.例如PyTorch和TensorFlow之类的解决方案. 作者:Sandra Parker 如今, ...

  4. python开发工具下所有软件都打不开_Python 开发工具链全解

    可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码.在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意.有些人在 ...

  5. 如何安装类Excel开发工具的服务器软件?

    本文主要介绍如何安装类Excel开发工具-活字格的服务器软件. 1. 活字格安装包介绍 首先,在活字格的官方网站中的右上角点击立即试用,然后输入你的邮箱,登录邮箱,点击下载链接就可以下载活字格的安装包 ...

  6. 开发提高工作效率的开发工具和办公软件

    最近一段时间比较迷恋好工具,俗话说,磨刀不误砍柴工,下面是浏览到的工具,其中百分之80都用过,而且经常用,自己没有时间整理,首先感谢原创的整理,下面中也有我做的些简单补充: eclipse(集成开发环 ...

  7. 大模型高效开发的秘密武器——大模型低参微调套件MindSpore PET篇

    人工智能进入"大模型时代".大模型具备更强泛化能力,在各垂直领域落地时,只需要进行参数微调,就可以适配多个场景.因此,发展大模型已成为产学研各界共识. 在大模型开发方面,昇腾推出了 ...

  8. intel fpga 开发工具Quartus Prime 软件的安装,使用详细教程

    文章目录 INTEL (altera) 系列FPGA的安装使用详细教程 INTEL (altera) 系列FPGA的安装使用详细教程 详细教程点击此文档 : 此文档对Quartus 18.1开发工具的 ...

  9. 基于windows桌面开发的白板书写软件

    开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 电子白板软件,支持笔迹书写.擦除.形状等功 ...

  10. matlab导入excel数据算方差,基于MATLAB与EXCEL工具的均值-方差模型

    年 月第 卷 第 期 阴 山 学 刊 基于 与 工具的均值一方差模型 杨 尚 包头师范学院 数学科学学院, 内蒙古 包头 摘 要 通过介绍 与 工 具在证券投资组合模型之一 马柯维茨的均值一方差模型 ...

最新文章

  1. 异常检测概览——孤立森林 效果是最好的
  2. mybatis 添加语句返回对象_Mybatis底层源码分析
  3. RFID和安防究竟有什么关系?
  4. Rayman的绝顶之路——Leetcode每日一题打卡21
  5. 文件或目录损坏且无法读取怎么办?数据恢复用这招
  6. 体验了下人民搜索,写个体验报告
  7. 【Android Studio】Android Monitor找不到手机问题-无法显示运行程序问题解决
  8. html元素的默认样式,CSS重置,常见元素的默认样式
  9. 超算优化重在存储,DAOS助力瑞金打造先进的生信大数据平台
  10. SAP 选择屏幕下拉框实现
  11. Stm32(寄存器)通道一--输出占空比50%的PWM
  12. ffmpeg 音频解码一
  13. Spark生态系统和运行架构
  14. Windows CMD命令添加开机启动项
  15. 江湖笑(2006[神雕侠侣]片尾主题曲)铃声 江湖笑(2006[神雕侠侣...
  16. 浅谈win10固定到任务栏别样方法
  17. Android设备扫描机制详解
  18. 电脑蓝牙打电话-总结(五、玖云33e9cloud)
  19. return false和 return true 的作用是什么
  20. 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代

热门文章

  1. android删除未知字符,如何删除Android Studio中所有配置的未使用字符串资源?
  2. 请简要概括linux与windows在文件系统方面存在的不同点,简要回答下列与网络操作系统、网络安全和数据存储相关的问题,将解答填入答题纸对应栏内。br 【问题1】(10分)br (a)Win...
  3. cdc2016年cypher资源_CDC最新Cypher!Ty.简直叼爆
  4. @param注解什么意思_你对Java注解真的理解吗?
  5. How to monitor mongodb replica set using prometheu
  6. CISCO路由器DHCP 配置
  7. 新手降NAT网络第十步曲,小编提供思路。
  8. spring + mybatis + 多数据源整合事务
  9. 传微软PK谷歌 将于2014年推出智能眼镜
  10. Delphi Access violations 问题的解决之道[转]