在我们日益自动化的世界中,确保嵌入式软件代码幕后发生的事情的安全性和可靠性已达到新的关键水平,尤其是在最近一些引人注目的和潜在的灾难性故障之后。这包括日产的安全气囊部署故障和丰田的普锐斯召回。由于软件缺陷。这些是从众多编码灾难中挑选出来的一些例子,这些例子在我们对自动化的集体推动中仍然很明显。
那么是谁的错呢?是因为懒惰的嵌入式软件工程师没有能力编写安全关键代码吗?是他们的上级没有确保各个输出不会协同工作或没有经过适当的测试吗?是他们的公司没有在工具上进行足够的投资以实现适合安全关键应用的测试水平吗?通常,以上都是。
今天的代码分析工具提供了前所未有的覆盖和审查水平,这在几年前根本不存在,它应该让您关心的是,有多少年甚至几十年前编写的代码今天仍在这些安全关键应用程序中使用。这种遗留代码的持续实现被称为“经时间证明”,这本身就是一个有趣的论点。软件代码的独特之处在于,与机械或电子硬件不同,它在逻辑上不会遭受退化,以确保在未来的某一天,我们使用或拥有的每一台设备都注定会停止运行。然而,在没有适当外部分析的情况下证明嵌入式软件完全依赖于广泛的功能测试。随着围绕该代码的生态系统不断发展,可能会出现未经过专门测试的条件,从而导致意外和潜在的灾难性故障。
有了可用的高级代码分析工具,您会认为那些部署遗留代码的人会争先恐后地对其进行彻底测试。然而,人们通常认为(由于缺乏历史故障)这个遗留代码是经过时间证明的,也许更险恶的动机是潘多拉魔盒的担忧,即这种对已部署代码的回顾性分析可能会打开。当然,争论必须是使任何可能出错的代码达到今天的安全标准所涉及的投资远远低于失败的金钱或声誉成本,特别是如果它涉及生命损失。
VectorCAST/Analytics等工具提供了代码覆盖率的易于理解的可视化表示,而且我们不仅仅是在谈论图表和饼图。独特之处在于动态 GUI 将代码复杂性和覆盖率呈现为交互式热图。通过红绿灯标签,软件开发人员可以放大潜在问题区域,轻松突出显示过于复杂或测试不足的代码。完全可定制的仪表板可根据每个源文件中的语句数量或复杂性进行热图格式化;单击可以突出显示代码本身中的任何可疑函数。
显示的是 VectorCAST/Analytics 代码分析工具的交互式热图。
有了可用的正确工具,比以往任何时候都更严格的安全要求,以及如此多的软件质量出现问题的例子,你会认为这样的代码分析套件会自我推销。
值得庆幸的是,当今嵌入式市场对软件质量的态度将安全关键代码质量与安全性放在首位。挑战在于说服供应商回顾分析他们的遗留代码,因为他们不知道的东西会伤害他们。
审核编辑:郭婷
-
嵌入式
+关注
关注
5068文章
19013浏览量
303087 -
代码
+关注
关注
30文章
4742浏览量
68330
发布评论请先 登录
相关推荐
评论