软件编程规范总则CHECKLIST.docx
- 文档编号:8396367
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:5
- 大小:19.48KB
软件编程规范总则CHECKLIST.docx
《软件编程规范总则CHECKLIST.docx》由会员分享,可在线阅读,更多相关《软件编程规范总则CHECKLIST.docx(5页珍藏版)》请在冰豆网上搜索。
软件编程规范总则CHECKLIST
软件编程规范总则CHECKLIST
软件编程规范总则CHECKLIST检查人:
________________检查日期:
1999年_____月_____日审查内容:
____________________________________________________________________审查结果:
通过□不通过□说明:
____________________________________________________________________序号总则条款执行情况说明1排版1¹1-1:
程序块要采用缩进风格编写缩进的空格数为4个。
是[]否[]免[]2¹1-2:
相对独立的程序块之间、变量说明之后必须加空行。
是[]否[]免[]3¹1-3:
较长的语句(>80字符)要分成多行书写长表达式要在低优先级操作符处划分新行操作符放在新行之首划分出的新行要进行适当的缩进使排版整齐语句可读。
是[]否[]免[]4¹1-4:
循环、判断等语句中若有较长的表达式或语句则要进行适应的划分长表达式要在低优先级操作符处划分新行操作符放在新行之首。
是[]否[]免[]5¹1-5:
若函数或过程中的参数较长则要进行适当的划分。
是[]否[]免[]6¹1-6:
不允许把多个短语句写在一行中即一行只写一条语句。
是[]否[]免[]7¹1-7:
if、while、for、default、do等语句自占一行。
是[]否[]免[]8¹1-8:
对齐只使用空格键不使用TAB键。
是[]否[]免[]9¹1-9:
函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格case语句下的情况处理语句也要遵从语句缩进要求。
是[]否[]免[]序号总则条款执行情况说明10¹1-10:
程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列同时与引用它们的语句左对齐。
在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while0、switch、case语句中的程序都要采用如上的缩进方式。
是[]否[]免[]11¹1-11:
在两个以上的关键字、变量、常量进行对等操作时它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时如果是关系密切的立即操作符(如->)后不应加空格。
是[]否[]免[]2注释¹2-1:
一般情况下源程序有效注释量必须在20%以上。
是[]否[]免[]¹2-2:
说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释注释必须列出:
版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等头文件的注释中还应有函数功能简要说明。
是[]否[]免[]¹2-3:
源文件头部应进行注释列出:
版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。
是[]否[]免[]¹2-4:
函数头部应进行注释列出:
函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。
是[]否[]免[]¹2-5:
边写代码边注释修改代码同时修改相应的注释以保证注释与代码的一致性。
不再有用的注释要删除。
是[]否[]免[]¹2-6:
注释的内容要清楚、明了含义准确防止注释二义性。
是[]否[]免[]¹2-7:
避免在注释中使用缩写特别是非常用缩写。
是[]否[]免[]¹2-8:
注释应与其描述的代码相近对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置不可放在下面如放于上方则需与其上面的代码用空行隔开。
是[]否[]免[]序号总则条款执行情况说明¹2-9:
对于所有有物理含义的变量、常量如果其命名不是充分自注释的在声明时都必须加以注释说明其物理含义。
变量、常量、宏的注释应放在其上方相邻位置或右方。
是[]否[]免[]¹2-10:
数据结构声明(包括数组、结构、类、枚举等)如果其命名不是充分自注释的必须加以注释。
对数据结构的注释应放在其上方相邻位置不可放在下面;对结构中的每个域的注释放在此域的右方。
是[]否[]免[]¹2-11:
全局变量要有较详细的注释包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
是[]否[]免[]¹2-12:
注释与所描述内容进行同样的缩排。
是[]否[]免[]¹2-13:
将注释与其上面的代码用空行隔开。
是[]否[]免[]¹2-14:
对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
是[]否[]免[]¹2-15:
对于switch语句下的case语句如果因为特殊情况需要处理完一个case后进入下一个case处理必须在该case语句处理完、下一个case语句前加上明确的注释。
是[]否[]免[]3标识符命名¹3-1:
标识符的命名要清晰、明了有明确含义同时使用完整的单词或大家基本可以理解的缩写避免使人产生误解。
是[]否[]免[]¹3-2:
命名中若使用特殊约定或缩写则要有注释说明。
是[]否[]免[]¹3-3:
自己特有的命名风格要自始至终保持一致不可来回变化。
是[]否[]免[]¹3-4:
对于变量命名禁止取单个字符(如i、j、k...)建议除了要有具体含义外还能表明其变量类型、数据类型等但i、j、k作局部循环变量是允许的。
是[]否[]免[]¹3-5:
命名规范必须与所使用的系统风格保持一致并在同一项目中统一比如采用UNI_的全小写加下划线的风格或大小写混排的方式不要使用大小写与下划线混排的方式。
是[]否[]免[]序号总则条款执行情况说明4可读性¹4-1:
注意运算符的优先级并用括号明确表达式的操作顺序避免使用默认优先级。
是[]否[]免[]¹4-2:
避免使用不易理解的数字用有意义的标识来替代。
涉及物理状态或者含有物理意义的常量不应直接使用数字必须用有意义的枚举或宏来代替。
是[]否[]免[]5变量¹5-1:
去掉没必要的公共变量。
是[]否[]免[]¹5-2:
仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。
¹5-3:
明确公共变量与操作此公共变量的函数或过程的关系如访问、修改及创建等。
¹5-4:
当向公共变量传递数据时要十分小心防止赋与不合理的值或越界等现象发生。
¹5-5:
防止局部变量与公共变量同名。
¹5-6:
严禁使用未经初始化的变量作为右值。
6函数、过程¹6-1:
对所调用函数的错误返回码要仔细、全面地处理。
是[]否[]免[]¹6-2:
明确函数功能精确(而不是近似)地实现函数设计。
是[]否[]免[]¹6-3:
编写可重入函数时应注意局部变量的使用(如编写C/C++语言的可重入函数时应使用auto即缺省态局部变量或寄存器变量)。
是[]否[]免[]¹6-4:
编写可重入函数时若使用全局变量则应通过关中断、信号量(即P、V操作)等手段对其加以保护。
是[]否[]免[]7可测性¹7-1:
在同一项目组或产品组内要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数并且要有详细的说明。
是[]否[]免[]序号总则条款执行情况说明¹7-2:
在同一项目组或产品组内调测打印出的信息串的格式要有统一的形式。
信息串中至少要有所在模块名(或源文件名)及行号。
是[]否[]免[]¹7-3:
编程的同时要为单元测试选择恰当的测试点并仔细构造测试代码、测试用例同时给出明确的注释说明。
测试代码部分应作为(模块中的)一个子模块以方便测试代码在模块中的安装与拆卸(通过调测开关)。
是[]否[]免[]¹7-4:
在进行集成测试/系统联调之前要构造好测试环境、测试项目及测试用例同时仔细分析并优化测试用例以提高测试效率。
是[]否[]免[]¹7-5:
使用断言来发现软件问题提高代码可测性。
是[]否[]免[]¹7-6:
用断言来检查程序正常运行时不应发生但在调测时有可能发生的非法情况。
是[]否[]免[]¹7-7:
不能用断言来检查最终产品肯定会出现且必须处理的错误情况。
是[]否[]免[]¹7-8:
对较复杂的断言加上明确的注释。
是[]否[]免[]¹7-9:
用断言确认函数的参数。
是[]否[]免[]¹7-10:
用断言保证没有定义的特性或功能不被使用。
是[]否[]免[]¹7-11:
用断言对程序开发环境(OS/piler/Hardware)的假设进行检查。
是[]否[]免[]¹7-12:
正式软件产品中应把断言及其它调测代码去掉(即把有关的调测开关关掉)。
是[]否[]免[]¹7-13:
在软件系统中设置与取消有关测试手段不能对软件实现的功能等产生影响。
是[]否[]免[]¹7-14:
用调测开关来切换软件的DEBUG版和正式版而不要同时存在正式版本和DEBUG版本的不同源文件以减少维护的难度。
是[]否[]免[]¹7-15:
软件的DEBUG版本和发行版本应该统一维护不允许分家并且要时刻注意保证两个版本在实现功能上的一致性。
是[]否[]免[]8程序效率¹8-1:
编程时要经常注意代码的效率。
是[]否[]免[]序号总则条款执行情况说明¹8-2:
在保证软件系统的正确性、稳定性、可读性及可测性的前提下提高代码效率。
是[]否[]免[]¹8-3:
局部效率应为全局效率服务不能因为提高局部效率而对全局效率造成影响。
是[]否[]免[]¹8-4:
通过对系统数据结构的划分与组织的改进以及对程序算法的优化来提高空间效率。
是[]否[]免[]¹8-5:
循环体内工作量最小化。
是[]否[]免[]9质量保证¹9-1:
在软件设计过程中构筑软件质量。
是[]否[]免[]¹9-2:
代码质量保证优先原则是[]否[]免[]¹9-3:
只引用属于自己的存贮空间。
是[]否[]免[]¹9-4:
防止引用已经释放的内存空间。
是[]否[]免[]¹9-5:
过程/函数中分配的内存在过程/函数退出之前要释放。
是[]否[]免[]¹9-6:
过程/函数中申请的(为打开文件而使用的)文件句柄在过程/函数退出之前要关闭。
是[]否[]免[]¹9-7:
防止内存操作越界。
是[]否[]免[]¹9-8:
认真处理程序所能遇到的各种出错情况。
是[]否[]免[]¹9-9:
系统运行之初要初始化有关变量及运行环境防止未经初始化的变量被引用。
是[]否[]免[]¹9-10:
系统运行之初要对加载到系统中的数据进行一致性检查。
是[]否[]免[]¹9-11:
严禁随意更改其它模块或系统的有关设置和配置。
是[]否[]免[]¹9-12:
不能随意改变与其它模块的接口。
是[]否[]免[]¹9-13:
充分了解系统的接口之后再使用系统提供的功能。
是[]否[]免[]¹9-14:
编程时要防止差1错误。
是[]否[]免[]¹9-15:
要时刻注意易混淆的操作符。
当编完程序后应从头至尾检查一遍这些操作符以防止拼写错误。
是[]否[]免[]¹9-16:
有可能的话if语句尽量加上else分支对没有else分支的语句要小心对待;switch语句必须有default分支。
是[]否[]免[]序号总则条款执行情况说明10代码编辑、编译、审查¹10-1:
打开编译器的所有告警开关对程序进行编译。
是[]否[]免[]¹10-2:
在产品软件(项目组)中要统一编译开关选项。
是[]否[]免[]¹10-3:
通过代码走读及审查方式对代码进行检查。
是[]否[]免[]¹10-4:
测试部测试产品之前应对代码进行抽查及评审。
是[]否[]免[]11代码测试、维护¹11-1:
单元测试要求至少达到语句覆盖。
是[]否[]免[]¹11-2:
单元测试开始要跟踪每一条语句并观察数据流及变量的变化。
是[]否[]免[]¹11-3:
清理、整理或优化后的代码要经过审查及测试。
是[]否[]免[]¹11-4:
代码版本升级要经过严格测试。
是[]否[]免[]¹11-5:
使用工具软件对代码版本进行维护。
是[]否[]免[]¹11-6:
正式版本上软件的任何修改都应有详细的文档记录。
是[]否[]免[]12宏¹12-1:
用宏定义表达式时要使用完备的括号。
是[]否[]免[]¹12-2:
将宏所定义的多条表达式放在大括号中。
是[]否[]免[]¹12-3:
使用宏时不允许参数发生变化。
是[]否[]免[]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 编程 规范 总则 CHECKLIST