AUTOSAR 提供了开发汽车电子控制单元嵌入式软件的制造指南。此嵌入式软件需要测试才能发挥最佳功能。以下是 Parasoft C/C++test Automotive Compliance Pack 对此提供的帮助。
汽车开放系统架构 ( AUTOSAR ) 组织成立于 2003 年,旨在为制造商提供安全开发汽车电子控制单元 (ECU) 嵌入式软件的指导。AUTOSAR 是丰田、宝马、福特等全球汽车行业巨头的合作伙伴关系,重点是标准化整个行业的软件架构,以管理日益复杂的控制系统,同时提高这种安全关键型软件的质量和可靠性
AUTOSAR 架构
普通的 ECU 可以包含数千个功能。在 AUTOSAR 架构出现之前,当硬件发生任何变化时,每个 ECU 都需要完全重写。在 AUTOSAR 组建完成后,该团队找到了一种使软件独立于硬件的方法,为整个行业创建了创建模块化和可持续应用程序的新标准。更好的是,新标准符合国际汽车安全标准,包括 ISO 14229、ISO 27145 等。
尽管汽车行业软件可靠性协会 ( MISRA ) 已经制定了 C++ 编码标准 MISRA C++:2008,但其规则基于 C++03 (ISO/IEC 14882:2003),而 C++03 并不支持所需的许多关键和安全相关软件方面。因此,AUTOSAR 小组选择了 C++14 (ISO/IEC 14882:2014),并围绕它构建了自己的编码标准,称为 AUTOSAR C++ 14。自 2017 年 3 月以来,该标准每年更新和发布两次。
AUTOSAR C++14 详解
2017 年,AUTOSAR 小组发布了在关键和安全相关系统中使用 C++14 语言的指南。它通常被称为 AUTOSAR C++14,现在是其总体 AUTOSAR 架构平台的一部分。AUTOSAR C++14 的发布旨在取代 MISRA C++:2008,并成为整个汽车行业事实上的编码标准。事实上,这些指南非常强大,可以应用于任何需要嵌入式编程的行业。
C++14 被选中的另一个原因是安全工程师已经开始接受面向对象语言,它使开发人员能够使用更高级的编译器,并更好地访问增强的测试、验证和分析工具。它还允许使用新的开发方法,例如持续集成/持续交付 (CI/CD),它可以在软件开发生命周期中更早地检测到错误。MISRA C++:2008 未能适应任何这些新兴创新。
使用 AUTOSAR C++14 实现新汽车技术
AUTOSAR C++14 指南正用于自动驾驶、车对车或车对基础设施 (V2X) 通信、持续无线 (OTA) 更新、高清显示器和 AI 计算等新汽车技术。虽然 MISRA C++:2008 仍在一些项目中使用,并帮助工程师采用编码标准,但它仍然是一个不完整的标准。这是因为,自 C++ 03 发布以来,随着 C++ 的发展,语言得到了大量改进,而 MISRA C++:2008 却没有。
如果某个组织依赖 MISRA C++:2008,那么迁移到 AUTOSAR C++ 14 对他们来说将是一项艰巨的工作。但这样做也有巨大的价值,因为 MISRA C++:2008 和 AUTOSAR C++ 14 之间的差异解决了自 2003 年以来在 C++ 语言中添加的更改。因此,C++11 和 C++14 中的所有新功能都包含在 AUTOSAR C++ 14 中。所以是的,这有影响,但更新到新标准也有很多价值。
AUTOSAR 架构和编码要求
AUTOSAR C++ 14 有 342 条规则,可帮助用户清晰理解和指导编码要求。它根据规则是必需的还是建议的对每条规则进行分类。“必需规则”是 AUTOSAR C++14 合规性的强制性要求,而“建议规则”则无需遵守,但强烈建议遵守。但是,可以允许偏离规则或指南。尽管如此,必须包括获得每个偏差的签核程序,因为它可以防止开发人员随意偏离而滥用偏差概念。
在考虑采用 AUTOSAR C++ 14 等编码标准时,强制合规的唯一实用方法是使用静态分析工具,该工具还具有复杂的交互式报告系统并可实现高效的日常工作流程。事实上,考虑将扫描过程集成到服务器上的持续集成 (CI) 构建中的解决方案。这种自动化可以节省大量时间和金钱。
此外,如果要清理现有代码库,建议从标准中的规则子集开始,并随着代码清理的进展逐步增加活动规则的数量。这可以防止大量违规或噪音压垮团队,并且可以监控代码库的进度,控制偏差过程,并做出有关扩展规则集的明智决策。
统一的 AUTOSAR-MISRA 标准
自 2017 年以来,AUTOSAR 小组每年发布两次 AUTOSAR C++ 14 指南,与 200 多家汽车公司合作,以保持对新 C++ 语言更新带来的变化的支持。为了加倍展望未来,AUTOSAR 于 2019 年宣布将与 MISRA 合作,合并两个 C++ 规则集并提供单一的通用 C++ 软件开发指南。这些由 MISRA 主导的新指南预计将完全支持 C++17 和 C++20 等现代 C++ 语言版本。
随着 MISRA 和 AUTOSAR 的这次新合并/合作,为 C++ 构建了最新、最好的编码规则和指南,我预计它将被汽车以外的其他行业广泛采用。航空航天、医疗、工业、铁路、电信、能源等行业。软件开发人员非常期待能够交付已经或将要用 C++17 和 C++20 编程语言开发的安全项目。
静态分析有助于创建安全可靠的 C++ 代码
ISO 26262 的一个重要方面是建议使用 AUTOSAR C++14 等编码合规性标准。实现合规性的最佳方法是通过自动化并使用 TUV 认证的工具,例如 Parasoft C/C++test,它还能够支持多种测试技术和功能,例如单元测试、结构代码覆盖率、需求可追溯性等。作为面向安全关键行业的完全集成软件测试解决方案,Parasoft C/C++test 还可以轻松集成到您的 C++ IDE 或 CI/CD 管道中,以配置为尽早检测缺陷并自动实施合规性。
Parasoft C/C++test 汽车合规性包专为汽车行业量身定制,集成了 AUTOSAR C++14、MISRA C++2008和高完整性 (HI) C++ 规则,可帮助任何汽车开发人员扩展测试功能并简化开发团队的测试。开发人员还可以使用 Parasoft C/C++test 在 IDE 中分析代码合规性,同时自动创建报告以通知团队任何状态更新。
作为测试安全关键型应用程序的最完整解决方案之一,Parasoft C/C++test 提供了简化的静态分析解决方案,同时为汽车行业所需的编码标准提供了更多支持。借助可自动确保安全关键型系统合规性的平台,您能够尽早发现缺陷并节省开发过程中的时间,优先更新以首先解决重大问题,并自动实现合规性。