2016 年 7 月

第 31 卷,第 7 期

本文章是由機器翻譯。

編者小記 - 治療失誤

Michael Desmond | 2016 年 7 月

Michael Desmond我最後兩個資料行中所述的軟體開發團隊的課程,執行大規模的管道。悲傷的範例有很多,從 1979年中影響在三個英里島回應錯誤套用訓練 (「 把實線、 「 msdn.com/magazine/mt703429) 至造成大幅低估 2010 Deepwater 水平為各種不同的事件中的風險的人的認知偏差菜籽溢出和 2008年的全球財務溶解 (「 認知偏差,「 msdn.com/magazine/mt707522)。

當然,這些範例是軟體開發的外部。一個事件更接近首頁是 Therac-25,輻射分別傳遞癌症的病患的醫療裝置。過去 18 個月之間 1985年 1987年,Therac 25 傳遞主要輻射 overdoses 終止至少兩個在美國和加拿大,六個病患。製造商,加拿大 Ltd.不可部分完成的能源當事件裝載 (AECL),就得費力地找出原因。

在低電源電子束或 x 光資料交換,根據指定的處理方式,可以傳送 Therac 25。但是,軟體中的競爭情形可公開病患到大規模輻射可以,如果快速從 x 光模式切換到之前的資料交換硬體電子束資料交換模式的運算子將無法移到位置。兩個病患德州死後就已公開至發佈、 高功率電子束資料交換。

第二個錯誤,可能會導致裝置產生致命電子束資料交換,而運算子對齊病患的裝置。問題︰ 單位元組變數中的軟體,為每個 256th 傳遞零值會遞增。如果運算子在變數遞增為零的時刻接收推 [設定] 按鈕,資料交換會非預期地啟動。Overdosed 數個其他人可能會因為此軟體弱點。

非常,這些程式碼缺陷已存在多年舊 Therac 模型 (包括類似 Therac-20) 而發生。差異︰ Therac 20 採用實際禁止 overdose 受管理的硬體聯鎖 — 機器只會讓保險絲。但是 AECL 工程師必須取代這些聯鎖 Therac 25 上的軟體。和軟體不是最多工作。

Nancy Levenson,教授的工程系統 Massachusetts Institute of Technology,在執行 Therac-25 個事件的詳細的研究 (您可以閱讀 PDF 自行在 bit.ly/1QnJO3h)。她發現 AECL overconfident 在其軟體中,評估風險和防禦的設計元素,例如錯誤檢查和處理缺點中變得不切實際。非常,只需一個開發人員-未知的認證,AECL 永遠不會識別該人員 — 撰寫並測試 Therac 軟體以 PDP 11 組件語言撰寫。Levenson 找到 AECL 缺乏強大的測試計畫,並且假設先前 Therac 模型中重複使用的軟體應該是免費的缺陷。

Therac 25 讀取像 hubris 教訓。不像舊版模型 Therac 25 仰賴幾乎軟體,以確保安全的作業。而且,AECL 依賴單一 (很明顯地,unmanaged) 編碼器和逾時,請在裝置中重複使用的軟體。現在 30 年之後,就值得思考的課程。


Michael Desmond 是 MSDN Magazine 的總編輯。