1942.在软件设计中,必须规定用统一的符号来表示参数、常量和标志,以便在不改变源程序逻辑的情况下,对它进行修改。
1943.必须指明有两个或多个模块公用的数据和公共变量,并尽量减少对公共变量的改变,以减少模块间的副作用。
1944.所有标志必须进行严格的定义,并编制标志的使用说明,说明的项目包括:名称和位定义、功能和作用、使用范围(有效范围)、生命周期(初始状态、运行中的变化条件、状态和时刻、最终状态)、使用情况(使用该标志的模块名称及使用方式)。
1945.对于安全关键的标识,在其被使用的软件单元里,必须唯一且用于单一目的。
1946.文件必须唯一且用于单一目的;文件在使用前必须成功地打开,在使用后必须成功地关闭;文件的属性应予它的使用相一致。
1947.非授权存取的限制如下:
1)必须防止对程序(源程序、汇编程序及目标代码)的非授权的或无意的存取或修改,其中包括对代码的自修改。
2)必须防止对数据的非授权的或无意的存取或修改,应对安全关键功能模块应设置调用密码。
1948.无意指令跳转的处理应注意以下问题:
1)必须检测安全关键软件内或安全关键软件间的无意跳转,如果可行的话,进行故障诊断,并确定引起无意跳转的原因。
2)必须提供从无意指令跳转处进入故障安全状态的恢复措施。
1949.程序检测点的设置应注意以下问题:
1)在安全关键软件中的关键点上进行监测,在发现故障时进行故障隔离。必要时,使系统进入安全状态。
2)在完成必要检测功能的前提下,检测点宜少不宜多。
3)测试特征量流出通道应力求独立,使测试功能的失效不会影响其他功能。(www.daowen.com)
1950.尽量不使用间接寻址方式。
1951.为防止程序把数据错当为指令来执行,要采用将数据与指令分隔存放的措施。必要时在数据区和表格的前后加入适当的NOP指令和跳转指令。使NOP指令的总长度应等于最长指令的长度,然后加入一条跳转指令,将控制转向出错处理程序。
1952.对于安全关键信息的要求如下:
1)安全关键信息不能仅由单一CPU命令产生。
2)不用寄存器和I/O端口来存储安全关键信息。
3)使安全关键信息不会因一位或两位差错而引起系统故障。
4)安全关键信息与其他信息之间应保持一定的码距。
5)安全关键信息的位模式不得使用一位的逻辑“1”和“0”表示,建议用4位或4位以上,即非全0且又非全1的独特模式来表示,以确保不会因无意差错而造成危险。
6)如安全关键信息有差错,应能检测出来,并返回到规定的状态。
7)安全关键信息的决策判断依据不得依赖于全“0”或全“1”的输入(尤其是从外部传感器传来的信息)。
1953.对不需修改的重要信息,条件允许时应放在不易丢失的只读存储器(ROM)中。对需要少量修改的重要信息,则应放在电可擦除可编程只读存储器(E2PROM)中。在宇宙空间不得使用电可擦除可编程只读存储器(EPROM)。
1954.算法的选择要求如下:
1)对规定时间内要完成规定任务的软件,不能采用不成熟的算法。
2)算法所使用的存储空间应完全确定,如尽量不采用动态维空间。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。