软件可靠性安全性技术PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
圈复杂度115的控制流图
圈复杂度10的控制流1图2
4.5 余量的设计
应注意关键软件的余量设计,这些余量包括:存储量、 IO通道吞吐量及处理时间等。在同步时间要求较高的系统中, 处理时间的余量应不少于20%。如,某系统9ms通讯一次,则 该系统的处理时间应小于7.2ms。
余量设计为我们在软件测试时使用一些在线动态测试工 具,如CodeTest等,提供了必要的应用条件。
'打开数据文件 '读入数据个数
'读入数据 '关闭数据文件
wenku.baidu.com文件不存在或数据格式错误时结果如何? exam2
6
软件安全性
软件安全性:对由于软件的缺陷造成人员伤亡、财产损 失等危险事件的防范能力。
关于软件安全性的误区:软件只是代码程序和相应文档 ,软件结果只是对与错,何有安全性?
对软件安全性误区的回答:对实时嵌入式软件而言,软 件的指令直接控制着硬件的动作,如果软件不对所控制硬件 的指令进行安全性保护,有何信心保证系统是安全的?由于 软件的错误造成重大财产损失、严重人员伤亡的实例已屡见 不鲜,这能说软件没有安全性的问题吗?
18
异常计算设计问题的实例一
有效视线角误差
4
软件可靠性的一个示例
前面的exam1就是一个示例。我们再给一个示例。用Visual Basic编写一个读入给定数据文件的程序。用户输入的文件名存 放在text1.txt中,数据文件格式是:第一个数是整型数N(表明 以下存放了N个浮点数),后续以空格、逗号或换行为区分符存 放N个浮点数。OpenFile()子程序完成将数据文件中的N个浮点数 读出存放在变量数组A#()中。
软件可靠性安全性技术
1
几个基本术语
❖ 故障(Fault) ❖ 差错(Error) ❖ 失效(Failure) ❖ 缺陷(Defect) ❖ 失误(Mistake) ❖ 隐错(Bug)
2
软件质量的一个示例
在一段Visual Basic 6.0编写的程序Division中,从文本框 1中输入数A#,从文本框2中输入数B#,计算C#=A#/B#从文本框3 中输出,其程序如下: Public A#, B#, C# Private Sub Division()
16
安全关键信息码应用的实例
操作杆的误信号
……
17
4.10 异常计算的防范设计
在数值计算中,要充分考虑计算中的异常情况,如: (1)在除法计算中,要考虑除数为0或很小时的计算溢出 的处理,可计算前先进行除数大小的判别检查; (2)在开平方根的计算中,要考虑被开根数是否大于等 于零,可计算前先进行被开根数的符号判别。
5
Private Sub OpenFile() Dim i, N Open Trim(Text1.Text) For Input As #1 Input #1, N ReDim A#(1 To N) For i = 1 To N Input #1, A#(i) Next Close #1
End Sub
10
4.4 圈复杂度的限制
“圈复杂度”(Cyclomatic Complexity)反映的是软件模块本身内在的结构 复杂度。
结点
A
B 边
C
1
区域
5 D
E
4
F
G
2
H
3
I
J
记:结点数 N,边数 E,区域数 RG,圈复杂度 C。则
C = E – N + 1 = RG + 1 上图中,N=10,E=14,所以 RG=4,C=5。
13
4.9.1 谨防实数取整的精度损失
实数取整的转换函数int()在C中是截取取整的,如果需 要四舍五入,则必须特殊处理。
例如: float f = 1.9; int k; k = (int)(f); 则 k 是 1,而不是 2。
14
实数四舍五入后取整的方法
如果 f >= 0, 则 int(f + 0.5) 是四舍五 入后的取整结果;
如果 f < 0,则 int(f – 0.5) 是四舍五入 后的取整结果。
15
4.11 安全关键信息码的设计
安全关键的信息码应采用具有检错能力的编码。 禁止对关键信息用一位的逻辑判别,如用“0”来表示 “不起飞”,用“1”来表示“起飞”。对此具有检错能力 的编码可以为用二位的逻辑判别,如用“01”来表示“不起 飞”,用“10”来表示“起飞”。显然在有一位可能受干扰 的系统假设下,用一位的逻辑判别无法检测其是否受干扰, 而二位的逻辑判别则可以检测其是否受干扰,如“00”和 “11”就表示信号受到了干扰。
7
软件安全性的实例
转塔设备的调转控制
……
8
软件可靠性安全性 设计准则
9
软件可靠性和安全性设计的一般性指导可参考 ➢ GJB/Z 102-1997 软件可靠性和安全性设计准则 ➢ Q/WE 871-1999 软件可靠性和安全性设计指南
二院制定的《武器系统软件可靠性安全性设计准 则》,则是结合二院以往地空导弹武器系统软件中实 际暴露的典型问题,总结整理归纳出的有关软件可靠 性和安全性设计的具体细则,适用于二院武器系统软 件开发中可靠性和安全性的设计。
A# = Val(Text1.Text) '从文本框1中输入 B# = Val(Text2.Text) '从文本框2中输入 C# = A# / B# Text3.Text = Str(C#) ‘从文本框3中输出 End Sub
A#=1,B#=0时结果如何? exam1
3
软件可靠性
软件可靠性:在一定条件下软件实现所要求功能的能力。 关于软件可靠性的误区:软件对一组条件下的运行,如 果是对的,则永远是对的,何有可靠性? 对软件可靠性误区的回答:对已认为满足了功能和性能 要求的软件,为何有的软件在实际的运行中会经常出错?追 其原因都是对运行中异常的操作、输入、事件无防范处理措 施,诸如人机交互界面软件对误操作经常死机,通讯软件对 外界干扰经常瘫痪等,这能说不是软件可靠性的问题吗?
在软件单元测试时,希望能选定最少的测试用例覆盖所有路径,这需要确定
模块中的独立路径数,“圈复杂度”就是其独立路径数。如在上图中,C=5,其五条
独立路径分别为:ABCEGJ,ABCEFIJ,ABCEFHJ,ABCDJ,ABCDDJ。
做为软件模块的“圈复杂度”原则上要求不超过 10。
11
圈复杂度问题的示例