致命Bug 軟件缺陷的災難與啟示 致命Bug:软件缺陷的灾难与启示

金鐘河

  • 出版商: 人民郵電
  • 出版日期: 2016-01-01
  • 定價: $234
  • 售價: 8.5$199
  • 語言: 簡體中文
  • 頁數: 234
  • 裝訂: 平裝
  • ISBN: 7115411824
  • ISBN-13: 9787115411822

已絕版

買這商品的人也買了...

商品描述

<內容提要>

 

迄今為止,軟件故障直接或間接導致的事故已經造成了大量傷亡。本書通過歷史上的小故事,介紹了軟件故障引發的宇宙、航空、軍事、通信、金融、醫療、生活等多領域的事故。即使不具備軟件相關的專業知識,平時關註歷史事件或熱點話題的普通人也能受益匪淺。尤其是希望編寫無Bug軟件的開發人員或測試人員、經營軟件公司的管理人員或高層人士等,更能從本書中獲得豐富感受。

 

<目錄>

 

第1章0.000000095的誤差奪走28條生命1 

飛向美空軍基地的“飛毛腿”導彈1 

“愛國者”導彈系統結構3 

導彈與軟件的對決4 

美軍的應對6

“愛國者”註定這天要出事 7

 

第2章遙遠的火星探測之路: 

軟件錯誤導致兩架探測器成為火星塵埃11 

太空探測的“文藝復興” 11 

蘇聯:邁出火星探測步11 

美國:火星探測首次成功14 

架火星著陸器15 

火星探測的主力軍——美國18 

火星探測重新升溫18 

NASA的火星探測計劃19 

MCO嘗試進入軌道20 

MCO通信中斷21 

氣動減速22 

單位標記不一致導致的悲劇23 

另一臺探測器:MPL 26 

雖然已進入火星大氣層,但是…… 26 

MCO與MPL留下的教訓27

 

第3章“餵?餵?”一行代碼導致的AT&T長途電話系統癱瘓事件29 

AT&T的歷史29 

值得信賴的AT&T長途網絡31 

出現網絡故障33 

問題的起因在於一行錯誤代碼35 

電話事故之後35

 

第4章軟件錯誤帶來的黑暗:2003年美國東北部大停電39 

韓國9·15停電事故39 

2003年美國東北部大停電41 

災難開始42 

接連跳閘46 

後的堡壘——Sammis-Star 345千伏輸電線48 

臨界點51 

iPad上市當天排起的長隊53 

為什麼沒有處理預警? 56

 

第5章不滅的“約克城”號59 

約克城59 

太平洋戰爭和“約克城”號59 

軍費縮減計劃示範艦67 

光榮的硬件,不爭氣的軟件68

 

第6章因特網蠕蟲病毒的開始——莫裡斯蠕蟲71 

因特網的特性71 

具備攻擊與防禦能力的軟件72 

軟件漏洞:蠕蟲病毒出現72 

和蠕蟲的鬥爭74 

“大蟲”後續76 

莫裡斯事件逸聞77 

 

第7章軟件也能使戰機墜毀79

瑞典JAS 39“鷹獅”戰鬥機墜毀事故80 

“鷹獅”試飛機墜毀80 

再次墜毀81 

原因在於軟件83 

航空器中軟件的作用日益突出84 

 

第8章70億美元的煙花秀:

阿麗亞娜5號運載火箭航班501 87 

蓬勃發展的商業化航天技術87 

阿麗亞娜5號火箭的研發88 

阿麗亞娜5號運載火箭航班501 89 

事故還原89 

結論97 

 

第9章軟件可用性的錯誤設計:“文森斯”號事件101

戰火從陸地蔓延到海面103 

關係日益緊張的美國和伊朗106 

失誤和誤判,命運的交響曲108 

射向伊朗航空655次航班的導彈114 

飛機被擊落之後114 

 

第10章計算機難以理解的人類的時間計算115

閏年115 

微軟的野心之作與閏年Bug 116 

讓全世界遊戲玩家備受煎熬的PS3閏年Bug 118 

醫院系統故障,紙筆代替電腦119 

罷工的導航儀120 

日常生活中的Y2K Bug 121 

 

第11章遊戲Bug 125

生活中的電腦遊戲125 

各種遊戲Bug 125 

《星戰前夜》 128 

《魔獸世界》 129 

 

第12章核武禁果133

飛向蘇聯上空的核導彈134 

佩特羅夫的判斷135 

佩特羅夫判斷之後137 

北美防空聯合司令部:NORAD 137 

凌晨3點鐘的電話139 

 

第13章醫療儀器軟件殺人:Therac-25 醫療事故141

與日俱增的癌症患者與癌症治療方法141 

放射治療142 

Therac-25的研發143 

1985年6月,Therac-25的位受害者145 

1985年7月,Therac-25的第二位受害者146 

1985年12月亞基馬谷紀念醫院,Therac-25的第三位受害者148 

1986年3月東得克薩斯癌症治療中心,Therac-25的第四位受害者149 

1986年4月東得克薩斯癌症治療中心,Therac-25的第五位受害者153 

1987年1月亞基馬谷紀念醫院,Therac-25的第六位受害者155 

事故原因1:軟件156 

事故原因2:用戶界面159 

事故原因3:文檔160 

事故原因4 :AECL對軟件的無知160 

軟件錯誤帶來的慘劇161 

 

第14章因軟件錯誤而消失的火星探測器169

“火星全球勘測者”號169 

“火星全球勘測者”號突然終止任務171 

軟件錯誤惹的禍173 

開啟火星探測機器人時代的“索傑納” 175 

“勇氣”號:真正的火星探測機器人178 

“勇氣”號的次危機:出現軟件錯誤178 

“勇氣”號的第二次危機:輪子出現故障180 

後的“勇氣”號180 

 

第15章玩弄世界於股掌之間的金融軟件Bug 183

溫哥華證券交易所事件183 

四捨五入惹的禍184 

澳大利亞昆士蘭州銀行卡終端機故障185 

導致公司破產的軟件Bug 187 

 

第16章軟件本可以阻止的飛行事故:

大韓航空801次航班和美國航空965次航班空難191 

關島慘案:大韓航空801次航班191 

墜毀前的記錄192 

本可以阻止的事故195 

假如軟件發揮了應有的作用196 

美國航空965次航班198 

開始出錯201 

“我們現在在哪?” 206 

部分責任在於軟件208 

 

第17章153億美元的彩票:數字預算會計系統211

徘徊在地獄和天堂之間的政府211 

數字預算會計系統的開發211 

“較差”的項目212 

無視審計結果並強行運行系統213 

意料之中的漏洞213 

終於釀成大錯214 

複合型人才的重要性凸顯214 

 

第18章豐田汽車“踏板門”事件與軟件217

“剎車失靈了” 218 

豐田召回危機219 

豐田軟件檢測223 

ECU軟件有可能導致汽車突然加速224 

Bug百出的豐田軟件226 

Barr Group報告和豐田的低頭認錯並無直接關係227 

寫給軟件開發者的後記:為了開發無Bug軟件229 

早的Bug 229 

軟件的原罪:Bug 229 

軟件開發過程231 

軟件Bug的成本231 

編碼規範232 

靜態代碼分析234 

 

<作者介紹>

 

金鐘河

 

kim.jongha@gmail.軟件開發者,一直專註於編寫安全代碼。對軟件測試心懷熱情,已取得測試資格證ISTQB。曾擔任軟件測試工程師,現就職於靜態代碼分析工具開發公司fasoo.,管理軟件相關博客story.wisedog.。所寫文章主要圍繞軟件靜態代碼分析與編碼標準、無Bug代碼編寫、各類編程等。