這就是著名的“彎曲金字塔”——一座4600年前的工程失敗的紀念碑。從底部看,它的側面以驚人的54度傾角向上延伸,然後在大約中途突然變為較緩和的43度傾角。人們認為,在距此南方約60公里的邁杜姆金字塔(另一座陡峭的金字塔)災難性坍塌後,該金字塔的設計在施工過程中進行了修改。當然,很難責怪古代的金字塔建造者。他們實際上是在發明工程學,而不是學習它。有一點從那時起就沒有改變:當結構工程師犯錯時,人們會受傷。我們無法確定,但似乎邁杜姆金字塔的坍塌不太可能沒有造成人員傷亡。相比之下,“軟件工程師”似乎是工程科學中一種比較輕鬆的職業。一個錯誤可能會阻止用戶訪問他們的帳戶或輸入信息,但這肯定不會危及生命?沒有人會受傷,對吧?或者這就是我們認為的。事實是,每年我們的系統——從電力到交通,從農業到緊急服務——都越來越依賴我們所有人創建高質量的軟件來支持它們。而當我們失敗時——就像那些古埃及人一樣——人們實際上會受傷。令人驚訝的是,正如Therac-25的悲劇案例向我們展示的那樣,這甚至不是21世紀的問題。
到20世紀70年代末,加拿大原子能有限公司(AECL)在建造放射治療機方面贏得了良好的聲譽。這些機器使用定向電子束來攻擊患者體內的腫瘤。毫無疑問,這些射線強度很高,並且具有潛在的致命性。 AECL之前憑藉其Therac-6和Therac-20型號取得了巨大的成功。這些裝置需要由經過培訓的操作員手動控制,並使用機械開關和硬接線電路來確保高水平的安全。 Therac-25將是他們的“夢想機器”。
這款新型機器比其前身更小、更便宜,但效率更高,它結合了兩種不同的射束技術——X射線和高能電子束。不同的射束允許操作員在不損傷附近健康組織的情況下,以不同的深度靶向腫瘤。 Therac-25既雄心勃勃又復雜——並且這是第一次所有這些硬件都由軟件層控制。不幸的是,儘管AECL的意圖良好,但他們的軟件設計卻糟糕透頂,包含一系列可怕的設計缺陷。後來的調查仔細記錄了這些缺陷,它們至今讀起來仍然令人不寒而栗。在一個例子中,在一台機器的治療過程中,機器不斷自行關閉,每次都報告一個神秘的“H-tilt”和“no dose”錯誤消息。困惑的操作員嘗試了六次才放棄治療。直到後來才確定,機器每次實際上都輸送了全劑量——這是災難性的過量劑量。從1982年推出到1986年撤回,有六名患者因Therac-25治療而最終遭受了致命傷害。當你考慮到這些可憐的人本來就已經生病了,這尤其令人震驚。如今,AECL不再是一家公司,而是我們所有人一個悲慘的教科書案例,說明設計不良且未經測試的軟件如何影響人們的生活。直到今天,Therac-25悲劇仍然影響著我們對系統設計和安全測試的許多想法。
即使你是一名前端設計師,並且不認為自己是一個“嚴肅的工程師”,Therac-25 也有重要的教訓。雖然一些缺陷是由編碼不良的過程造成的,但至少同樣多的損害是由文件不足、無用的反饋和難以理解的錯誤消息造成的。這些都是每個人——設計師、編碼員、經理、用戶體驗人員和測試人員——都應該發揮影響力的領域。回顧那些古埃及人,很明顯他們從早期的錯誤中吸取了教訓,並繼續建造了一些有史以來最令人嘆為觀止的建築。軟件工程仍然是一個相對年輕的領域——讓我們希望我們已經建造了我們的彎曲金字塔。 最初發表於SitePoint設計通訊1月29日刊。在此訂閱。
Therac-25事故的主要原因是軟件錯誤和安全機制不足的結合。軟件的設計方式使得它可以覆蓋硬件安全機制,導致輸送致命的輻射劑量。缺乏獨立的安全檢查以及依賴軟件進行安全功能是重要的促成因素。
六起已知的Therac-25事故導致患者接受了大量的輻射過量。這些事故導致了嚴重的傷害,至少三人死亡。然而,受影響的人數可能更高,因為一些案例可能沒有被報告或識別。
製造商加拿大原子能有限公司(AECL)在事故發生後面臨著巨大的反彈。他們因反應遲緩、缺乏透明度以及未能立即採取糾正措施而受到批評。這些事故導致公司失去信任,並造成重大的法律和經濟影響。
Therac-25事故對醫療和軟件行業都產生了深遠的影響。它們突出了嚴重依賴軟件執行安全關鍵功能的潛在危險。因此,它們導致對醫療設備的審查和監管更加嚴格,並更加重視軟件安全性和可靠性。
針對Therac-25事故,採取了幾項措施來提高醫療設備的安全性。這些措施包括更嚴格的法規、更嚴格的軟件測試和驗證以及獨立安全系統的實施。這些事故還導致更加重視此類設備操作員的培訓。
Therac-25存在幾個設計缺陷,包括依賴軟件執行安全功能、缺乏獨立的安全檢查以及軟件能夠覆蓋硬件安全機制。此外,用戶界面沒有提供清晰和及時的反饋,這本來可以提醒操作員注意問題。
在幾名患者在治療後報告輻射過量暴露症狀後,Therac-25事故曝光了。對這些事件的調查表明,由於Therac-25機器的錯誤,患者接受了大量的輻射過量。
Therac-25事故突出了嚴格測試和驗證軟件的重要性,尤其是在安全關鍵系統中。它們還強調需要進行獨立的安全檢查以及來自用戶界面的清晰、及時的反饋。此外,它們還證明了過度依賴軟件執行安全功能的潛在危險。
醫療界對Therac-25事故感到震驚和擔憂。這些事件導致對醫療設備的審查更加嚴格,並更加重視安全。許多醫院和診所審查了他們的程序,並實施了額外的安全措施以防止類似事件發生。
Therac-25事故在塑造軟件安全標準方面發揮了重要作用。它們突出了嚴格測試和驗證軟件的必要性,尤其是在安全關鍵系統中。因此,它們導致制定了更嚴格的軟件安全法規和標準。
以上是Therac-25:當不良軟件殺死時的詳細內容。更多資訊請關注PHP中文網其他相關文章!