1955.对编程的语言要求如下:
1)采用标准化的程序设计语言进行编程。
2)在同一系统中,应尽量减少编程语言的种类;应按照软件的类别,在实现同一类软件时应只采用一种版本的高级语言进行编程,必要时,也可采用一种机器的汇编语言编程。
3)应选用经过优选的编译程序或汇编程序,杜绝使用盗版软件。
4)为提高软件的可移植性和保证程序的正确性,建议只用语言编译程序中符合标准的部分进行编程,尽量少用编译程序引入的非标准部分进行编程。
1956.暂停、停止、等待指令要严格控制使用。
1957.高级语言的编程限制如下:
1)原则上不得使用GOTO语句;在使用GOTO语句能带来某些好处的地方,必须控制GOTO的方向,只许使用向前GOTO,不得使用向后GOTO。
2)对顺序程序的编制,应参照GJB 2786A—2009推荐的几种控制结构来编制程序;对并行程序的编制,应选择便于测试且简单的结构来编制程序。
1958.软件单元的圈复杂度(即McCabe指数)应小于10。
1959.对于用高级语言实现的软件单元,每个软件单元的源代码最多不应超过200行,一般不超过60行。
1960.对命令要求如下:
1)必须以显意的符号来命名变量和语句标号。
2)尽量避免采用易混淆的标识符来表示不同的变量、文件名和语句标号。
1961.在编辑源程序时,应将其编辑成反映结构化特色的缩进格式,使编码的逻辑关系与程序清单的实际位置对应。
1962.为提高可读性,在源程序中必须有足够详细的注释。注释应为功能性的,而非指令的逐句说明。注释的行数不得少于源程序总行数的1/5。
1963.在每个模块的可执行代码之前,必须用一段文字注释来说明如下内容:
1)模块名注释:标识模块的名称、版本号、入口点、程序开发者姓名、单位及开发时间。如有修改,还应标识修改者的姓名、单位和修改时间。
2)模块功能注释:说明模块的用途和功能。
3)输入输出注释:说明模块所使用的输入输出文件名,并指出每个文件是向模块输入,还是从模块输出,或两者兼而有之。
4)参数注释:说明模块所需的全部参数的名称、数据类型、大小、物理单位及用途,说明模块中使用的全局量的名称、数据类型、大小、物理单位及其使用方式,说明模块的返回值。
5)调用注释:列出模块中调用的全部模块名和调用该模块的全部模块名。
6)限制注释:列出限制模块运行特性的全部特殊因素。
7)异常结束注释:列出所有异常返回条件及动作。
8)方法注释:说明该模块为实现其功能所使用的方法,为简练,亦可指出说明该方法的文档。
9)外部环境及资源注释:说明该模块所依赖的外部运行环境及所用资源,如操作系统、编译程序、汇编程序、中央处理机单元、内存、寄存器、堆栈等。
1964.在模块中,至少应对有条件改变数据值或执行顺序的语句(即分支转移语句、输入输出语句、循环语句、调用语句)进行注释。对这些语句的注释不得扰乱模块的清晰性,即这些注释也应符合程序的缩进格式。具体注释的方法如下:
1)分支转移语句:指出执行动作的理由。
2)输入输出语句:指出所处理的文件或记录的性质。
3)循环语句:说明所执行动作的理由及出口条件。
4)调用语句:说明调用过程的理由及被调模块的功能。
1965.在每个模块和软件单元中,对关键的于今标号和数据名还必须有准确的引用信息,并确定所有输入值和输出值的允许和预期范围;对计时器的值的注释必须包含计时功能的描述、其值及基本原理所引用的解释计时器值的基本原理文档。
1966.通用的程序设计具体要求如下:
1)程序要编写清楚,不要过分灵巧。
2)不要为了“效率”而牺牲清晰。
3)应使用库函数。
4)简单而直接地说明用意。
5)避免使用临时变量。
6)把繁琐的工作交给计算机去做。
7)使用语言中的好特征,避免使用不良特征。
8)先用易于理解的伪码语言编写。
9)选用能使程序更简单的数据结构。
10)每个模块都只做一件事情。
11)不要修补不好的程序,应当重新编程。
12)将大程序分成小块去编写和测试。
13)对递归定义的数据结构适应递归过程。
14)确保所有变量在使用前都被初始化。
15)不要查出一个错误就终止检查。
16)使用可以进行调试的编译程序。
17)避免因一个错误而造成中断。
18)在边界上检查程序。
19)进行防错性程序设计。(www.daowen.com)
20)应牢记10.0乘以0.1很少等于1.0这类事实,应避免进行浮点数相等的比较。
21)先保证正确,再提高速度。
22)先保持简单,再提高速度。
23)先保持清晰,再提高速度。
24)与其重用不合适的代码,不如重新编制。
1967.与结构有关的程序设计要求如下:
1)可使用调用一个公共函数的方式代替重复的表示。
2)使用括号以避免二义性。
3)避免不必要的分支。
4)不要使用条件分支去代替一个逻辑表达式。
5)若逻辑表达式难以理解,就修改到易于理解为止。
6)使程序自顶向下读。
7)用IF-ELSE-IF-ELSE来实现多路分支。
8)避免使用THEN-IF和空ELSE。
9)用IF-ELSE来强调只执行两个动作中的一个。
10)避免使用ELSE GOTO和ELSE RETURN语句。
11)尽量使用基本的控制流结构。
12)使与判定相联系的动作尽可能近地紧跟着判定。
13)使用数组以避免重复的控制序列。
14)要模块化,使用子程序。
15)使模块间的耦合清晰可见。
16)当心不要分支出两条等价的支路。
17)避免从循环引出多个出口。
1968.便于理解的程序设计风格如下:
1)选用不易混淆的变量名。
2)使用有意义的变量名。
3)使用有意义的语句标号。
4)保持注释和程序一致。
5)注释不要离题。
6)不要用注释去复述代码,使每条注释都起到提高可读性的作用。
7)不要注释不合理的代码,而要对其重写,直到易于理解为止。
8)程序的格式安排应有助于理解。
9)将数据编制成文档。
1969.与输入输出有关的程序设计要求如下:
1)检查输入的合法性和无二义性。
2)确保输入不违背程序的限制。
3)使用文件结束符或其他标记而不用计数来终止输入。
4)识别错误的输入,并尽可能地纠正错误。
5)用统一的方式处理文件的结束条件。
6)使输入易于准备,使输出能自我说明。
7)使用统一的输入格式。
8)使输入易于校对。
9)尽可能采用自由格式输入。
10)允许默认值,但应在输出时反映出来。
11)将输入和输出局限在子程序中。
1970.与FORTRAN语言有关的程序设计要求如下:
1)应避免FORTRAN的算术IF。
2)用DO-END和缩排格式来限定语句组的边界。
3)用DO和DO-WHILE强调循环的存在。
4)用DATA语句或INTIAL属性对常数初始化。
5)对常量用可执行代码初始化。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。