kindring 1 year ago
parent
commit
29129a91d3
1 changed files with 19 additions and 0 deletions
  1. 19 0
      渐构/拆书/高质量程序设计指南(第三版.林悦编著).md

+ 19 - 0
渐构/拆书/高质量程序设计指南(第三版.林悦编著).md

@@ -164,3 +164,22 @@ Microsoft公司早期的窗口系统,如Windows 3.x和Windows 9x,动不动
 > 原书未提及,自行了解
 ##### `#e` “误差累积”问题
 > 原书未提及,自行了解
+
+
+软件可靠性分析通常采用统计方法,
+遗憾的是目前可供第一线开发人员使用的成果很少见,
+大多数文章限于理论研究。我曾买了一本关于软件可靠性的著作,  
+此书充满了数学公式,实在难以看懂,更不知道怎样应用。  
+请宽恕我的愚昧,我把此“天书”给“供养”起来,没敢用笔画一处记号。  
+口语中的可靠性含义宽泛,几乎囊括了正确性、健壮性。  
+只要人们发现系统有毛病,便归结为可靠性差。  
+从专业角度讲,这种说法是不对的,  
+可是我们并不能要求所有的人都准确地把握质量属性的含义。
+有必要搞清楚“故障”和“错误”这两个容易混淆的概念。
+
+在《现代英汉词典》里,“故障(Fault)”一词的定义是:使设备、部件或元件不能按所要求的方式运行的一种意外情况,可能是物理的也可能是逻辑的。
+
+那些潜伏在代码中的错误往往是不明显的,之所以在测试的时候没有暴露,是因为测试时的环境和条件不足以使之暴露,更何况我们无法对代码进行最彻底的测试。由此可见,故障是在经过日积月累,满足了一定的条件之后才出现的。例如,“千年虫”问题,“内存泄漏(吃内存)”导致内存耗尽,“误差累积”导致计算错误进而导致连锁反应,“性能开销累积”导致性能显著下降,等等。因此,故障通常都是不可预料的、灾难性的。  
+
+
+“错误”的含义要广泛得多,例如,语法错误、语义错误、文件打开失败、动态存储分配失败等。一般说来,程序错误是可以预料的,因此可以预设错误处理程序,运行时这些错误一旦发生,就可以调用错误处理程序把它干掉,程序还可以继续运行。因此,错误的结果一般来说不是灾难性的。