GJB简介
01
GJB发布和由来
GJB-《C/C++语言编程安全子集》由总装电子信息基础部批准发布。
GJB的制定是参照MISRAC++《汽车软件C++语言使用指南》,并对GJB-《航天型号软件C语言安全子集》的执行情况总结,特别是因软件编码引起的缺陷的案例总结。
02
GJB应用范围
GJB适用于所有军用软件开发领域,对GJB的规则进行了大幅度升级和扩充,扩展了应用场景,明确的提出了C语言和C++语言的编程规范内容。
GJB标准是军用软件C/C++语言编码的重要且必须遵守的代码编程准则。
03
GJB标准发布和由来
GJB标准由航天软件评测中心提出,由总装电子信息基础部批准发布。是航天领域嵌入式C语言编程标准。已在国内的军工行业包括军队、航天航空、船舶、兵器等也已经得到广泛应用。
04
MISRA标准发布和由来
MISRA-TheMotorIndustrySoftwareReliabilityAssociation汽车工业软件可靠性联会,是英国的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和协助,帮助汽车厂方开发安全的、高可靠性的嵌入式软件。MISRA最出名的成果是MISRAC语言编码标准,其中包括了条标准。通常认为如果能够完全遵守这些标准,则你的C代码是易读、可靠、可移植和易于维护的。
MISRA标准极大地推动了汽车行业C语言安全规范编程,也同时在其他行业广泛借鉴使用。
05
GJB的组成
第一章范围
第二章引用文件
第三章术语和定义
第四章总则
第五章C和C++的共用准则
第六章C++的专用准则
第七章评价
附录A(资料性附录)准则汇总索引
附录B(资料性附录)评价示例
06
GJB-的内容
GJB标准中每条准则采取固定格式描述,并给出违背型示例和遵循示例。主要包括:
C和C++共用的强制准则条;
C++专用的强制准则28条;
C和C++共用的建议准则41条;
C++专用的建议准则11条;
违背型示例个;
遵循示例个;
说明型示例7个
第五章C和C++的共用准则
主要准则包括:初始化、声明定义、书面编写、变量使用、指针使用、分支控制、跳转控制、运算处理、函数调用、语句使用、循环控制、类型转换、比较判断等。
第六章C++的专用准则
主要准则包括:类与对象、构造函数、虚拟函数、析构函数、类型转换、函数定义与使用、内存释放、异常处理等。
第七章评价
开展软件编码准则的评价要求:
1)编码准则必须经过验证及要求
2)违背准则的统计
3)计算违背率,并对强制准则的遵循情况进行评价。
6个评价等级包括:非常好、好、较好、差、较差、非常差。
使用编码规范的作用
编码标准的执行,可使软件开发人员在编程过程中遵守统一规则,减少人为造成的问题,从而保证代码的可理解性和可维护性。
使用编码准则是检查代码错误的有效方法,可查找编码不规范,冗余代码,避免出现已知设计模式问题造成的缺陷或未预期的运行时错误。大量数据表明,软件存在的问题或隐患很大部分根源在于没有遵守编程标准。
推行统一的编码规范可减少引入下列错误:
识别底层语言允许但易造成问题的编码方式;
限制或消除在代码中使用易于出现问题的编程方式。
编码准则的使用可让测试人员按照规则理解并检查代码,容易及时发现代码缺陷。
使用测试工具时,嵌入相应的编码规则,可对照编码自动、快速检测出问题和缺陷。
评价准则一致,在第三方评测机构的国家软件测评中心的测试中统一严格按照GJB规则进行检测,不仅在行业评测体系内保证代码规则的一致性,还可在军工体系内评测和推动软件标准化实施,全面提高软件的可维护性和可靠性,增强军用软件质量。
库博的能力
01
使用工具做代码审查的作用
02
库博(COBOT)支持的全编码标准
03
库博对编码规则检测支持能力
04
库博支持各类编码规则
05
库博中GJB编码规则展现
06
库博GJB编码规则展现
关键词:代码静态分析丨静态代码丨代码检测丨程序分析
扫描下方