对于希望确保所开发软件高质量、安全且健壮的软件工程师来说,C++ 编码标准至关重要。它们为软件开发提供了宝贵的指南,因此熟悉它们非常重要。在这篇博文中,我们将探讨由CppDepend支持的四大 C++ 编码标准。
CERT,即计算机应急响应团队(Computer Emergency Response Team),是一套旨在帮助组织和开发者创建安全、高质量软件的指南。它为开发安全的 C++ 代码提供了最佳实践指导,包括错误处理、安全问题和编码风格。
例如,CERT 建议所有软件都以安全的编码风格开发,并且所有代码在投入生产之前都应经过测试。
使用 CppDepend 分析您的项目后,导航到"查询与规则浏览器"(Queries and Rules Explorer)部分,从左侧菜单中选择 CERT C++ 规则(在下图中以红色高亮显示)。

MISRA,即汽车工业软件可靠性协会(Motor Industry Software Reliability Association),是一套专为汽车行业设计的编码标准。它聚焦于安全关键软件,并提供缓解潜在安全缺陷(如缓冲区溢出和整数溢出)的指导。
例如,MISRA 建议所有变量都连同其类型一起声明,并且所有代码都应根据已知的编码标准进行测试。
使用 CppDepend 分析您的项目后,导航到"查询与规则浏览器"部分,从左侧菜单中选择 MISRA 规则(在下图中以红色高亮显示)。

AUTOSAR,即汽车开放系统架构(Automotive Open System Architecture),是一个用于开发车载应用的开源框架。它专注于为应用提供安全的运行环境,并包含一套设计安全软件的指南。
例如,AUTOSAR 建议对所有代码进行潜在安全漏洞测试,并建议开发者使用安全编码技术来缓解这些漏洞。
使用 CppDepend 分析您的项目后,导航到"查询与规则浏览器"部分,从左侧菜单中选择 AUTOSAR C++ 2014 规则(在下图中以红色高亮显示)。

CWE,即通用缺陷枚举(Common Weakness Enumeration),是一个软件缺陷目录,可用于识别和解决安全问题。它提供了缺陷及其相关风险的描述,并就如何修复它们提供了指导。
例如,CWE 建议对所有代码进行潜在安全缺陷测试,并建议开发者使用安全编码技术来修复它们。
使用 CppDepend 分析您的项目后,导航到"查询与规则浏览器"部分,从左侧菜单中选择 CWE 规则(在下图中以红色高亮显示)。

使用案例
以一个使用数据库的软件应用为例。这些编码标准可以按如下方式一起应用:
- CERT 指南会建议对代码进行任何潜在安全缺陷的测试,并使用编码技术来缓解它们。
- MISRA 会建议所有变量都连同其类型一起声明,并且所有代码都应根据已知的编码标准进行测试。
- AUTOSAR 会建议对软件进行潜在安全漏洞测试,并使用安全编码技术来修复它们。
- 最后,CWE 会建议对所有代码进行潜在安全缺陷测试,并使用安全编码技术来修复它们。
通过遵循这些 C++ 编码标准,组织和开发者可以帮助确保他们开发的软件安全、高质量且健壮。理解这些标准中的每一个,以及如何将它们结合起来使用以使软件尽可能安全可靠,是很重要的。
不妨考虑下载 CppDepend,以验证您的项目是否符合既定的编码标准。
