让我们从显而易见的事情开始:静态分析本身并不是灵丹妙药。它不能保证复杂的军事嵌入式应用程序中的高代码质量、安全性或安全性。静态分析也不能确保您的应用程序满足为程序定义的功能要求。
更令人困惑的是静态分析工具之间缺乏平等,尽管其中许多工具非常相似,因为它们使用与引擎相同的商业解析技术。尽管他们的分析很肤浅,但其中许多至少能够提供有关开发人员代码的高级质量的快速而肮脏的反馈。
我不想深入探讨静态分析工具的所有差异。很简单,核心差异通常在于解析技术、用户界面以及它们与链中其他工具的连接。我真正的目标是谈谈为什么你应该关心静态分析。
静态分析可自动执行代码审查过程,无需编译、链接和执行代码即可测量代码的质量。这在历史上是一个漫长、昂贵和劳动密集型的过程中节省了时间和精力。静态分析会自动检查代码的样式、命名约定和语言限制。更好的工具突出了代码中的缺陷,并使开发人员能够快速修复问题区域并再次运行分析。作为此过程的一部分,静态分析可以通过确保开发团队遵守特定的公司或行业认可的编码标准(如MISRA或JSF编码标准)来提高代码质量和可移植性。
更复杂的工具提供了更大的分析深度,并使开发人员能够理解代码的复杂区域。他们还报告有价值的细节,如代码复杂性以及数据和控制流。更有效的工具在高度抽象中呈现其深入分析的结果,这使得代码更易于理解。此外,功能更强大的工具可与更复杂的集成开发环境无缝互操作,从而加快整个开发生命周期。
当今的军事应用需要支持 ARINC 653 或FACE等架构标准,以提高代码的可移植性和可重用性。高质量的静态分析工具集为快速构建更高质量的代码提供了坚实的基础,这些代码更具可移植性、可维护性、安全性。它应该是整个过程中使用的工具。但是,静态分析只是解决常见问题集的一种工具。有效的质量流程还需要利用诸如双向需求可追溯性、动态分析、结构覆盖分析、单元、集成和系统级测试等技术,无论是在主机开发平台上,还是在可能的情况下,在目标硬件上。
因此,静态分析不是灵丹妙药。同时,忽视它会很疯狂。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !