汽车软件开发必读|自动驾驶软件的静态分析和编码标准合规性
为诸如自动驾驶之类的复杂功能编写代码需要庞大的有才能的团队,这些团队通常对如何确保高质量的代码有自己的看法。但是,要构建一个有效的软件开发流程并非易事,该流程包括诸如静态分析和编码标准合规性之类的质量计划,以使自动驾驶汽车获得成功的认证。
自动驾驶是一个非常有竞争性的空间,而开发人员的速度则是口头禅。谁先将经过认证的产品推向市场,将比竞争对手更具优势,因此,开发人员很容易将静态分析和其他质量措施视为障碍。尤其是因为自动驾驶领域渴望人才,因此即使他们没有安全背景,组织也在雇用精明的开发人员。但是,来自无功能安全文化背景的开发人员并不了解安全关键软件开发所需的所有质量流程。这可能使文化认同成为一个挑战。
获得内部支持
有时感觉要建立内部共识,以质量为导向的实践需要心理学硕士学位或受过培训的谈判员的技能……在过去的项目中,我负责引入静态分析和AUTOSAR C++ 14编码标准合规性,以实现可持续发展。自动驾驶软件非常创新,并且使用现代C++开发了用于自动驾驶软件的软件组件。考虑到这一点,AUTOSAR C++ 14编码标准是自动驾驶软件最合适的标准,因为它支持现代C++,并且是为面向安全性开发而创建的。
为了说服不信服的人,我作了多次演讲,讨论了多个不同方面。但是,即使进行了所有这些讨论和协议,一些开发人员仍然拒绝分析他们创建的所有代码。以下是我重点关注的一些要点,以确保正确的流程到位:
说服最有抵抗力的开发商……
自动驾驶技术还处于早期阶段。创建的许多源代码仅仅是测试新想法的原型。一些开发人员不想“浪费”时间使其符合编码标准,而只是想快速编写并进行测试。我听到的一个典型故事是:“我只想测试这个新算法,如果它可以工作,我将重写代码以使其变得干净。”这听起来很无辜,但事实是,这只是在增加技术债务。
当我们从一个原型过渡到另一个原型时,通常会带走很多代码,从统计上讲,它可能占代码的80%。因此,我们无法使用错误的代码来制作原型,然后再进行修复,因为从一开始,我们就知道我们没有时间这样做。因此,即使某样东西是原型,该代码也必须合规,因为最终产品将包含大量最初作为原型创建的代码。
如果不是现在就专注于现在而不是稍后再做,而是可以现在就专注于避免最终花费未知的时间,则开发人员开始将其视为增强流程而不是放慢进度。如果您可以在不降低速度或创造力的情况下有效地使流程适应开发人员的工作流程,则使用起来会变得更加容易。最后,保持物品整洁干净比最后清理一团糟容易得多。建立一致,可维护的做法来编写兼容的代码,将有助于您日后发现更多麻烦。
该死的遗留代码……
但是,即使您能够尽早成功地引入编码标准合规性流程,也不可避免地已经有一些(大量)代码已经由团队创建,并且已经被继承。当您选择静态分析工具(Parasoft C/C++test)并选择标准(AUTOSAR)时,同时,该团队正在创建大量没有任何合规性政策的代码!因此,还必须为旧代码创建策略。两项重要的政策是:
通过这些策略,您可以处理旧代码,引入新代码并继续保持整洁。
总结
为了在整个开发组织中成功采用静态分析和编码标准合规性流程,您将受益于以下各项:
- 确保每个人都知道您为什么这样做(如果不花时间,您就无法通过认证,也无法在汽车市场上取得成功)
- 如果您不重视质量,则解决延迟发布的成本,并向团队展示当您将质量放到最后时会发生什么
- 使采用尽可能相关且毫不费力。在实施静态分析工具时,请务必谨慎,确保选择正确的规则和检查器,并确保工作流集成到开发人员的现有工作流中。
汽车软件开发必读|自动驾驶软件的静态分析和编码标准合规性
点击“了解更多”申请免费试用
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!