QNX軟件公司淺談:醫(yī)療設(shè)備安全軟件的10項前提

2013-08-16 15:59 來源:互聯(lián)網(wǎng) 作者:洛小辰

為醫(yī)療設(shè)備爭取上市批準是一項艱辛的任務(wù),制造商必須放眼于純技術(shù)性質(zhì)以外的挑戰(zhàn),集中精力培養(yǎng)以軟件為基礎(chǔ)的醫(yī)療設(shè)備開發(fā)所需的環(huán)境和文化。具體來說,應(yīng)該考慮十項醫(yī)療設(shè)備構(gòu)建和審批的重要前提,但這些前提經(jīng)常被人忽略。

1、安全文化

缺乏安全文化普及的公司,不太可能生產(chǎn)出安全的醫(yī)療產(chǎn)品。安全文化不僅僅是允許工程師提出有關(guān)安全問題的文化,而且也是鼓勵他們從安全的角度去考慮每一個決定的文化。一個程序員可能會有這樣的問題:“我可以用A技術(shù)或B技術(shù)來編寫這個信息交換,但是對如何平衡A的較好性能和B的較高可靠性沒有把握”,并且知道應(yīng)該和誰來討論這個決定。而我們必須培養(yǎng)這種文化,來鼓勵程序員思考此類問題。

2、專家

我們需要專家。定義一個安全系統(tǒng)必須做什么,并確認它達到了安全要求,都需要專門的培訓(xùn)和經(jīng)驗。安全系統(tǒng)一定要簡潔,設(shè)計一個簡潔的系統(tǒng)對于任何工程師而言都是最大的挑戰(zhàn)。

歸根結(jié)底,還是需要相關(guān)領(lǐng)域的專家(包括行業(yè)專家、系統(tǒng)架構(gòu)師、軟件設(shè)計師、流程專家、程序員和驗證專家等)來確定要求,選擇合適的設(shè)計模式并建立、驗證系統(tǒng)。

這樣的專業(yè)知識是昂貴的,因為它來自經(jīng)驗而非課堂:大學(xué)計算機工程本科課程很少涉及嵌入式軟件開發(fā),而教授如何創(chuàng)建足夠可靠性嵌入式系統(tǒng)的課程更是鳳毛麟角。

足夠可靠性:

1)沒有哪個系統(tǒng)是絕對可靠的,我們必須了解如何讓系統(tǒng)實現(xiàn)足夠的可靠性。

2)接受足夠的可靠性能減少開發(fā)費用,并為我們提供可驗證安全指標的方式。

3)如果我們不了解怎樣才算足夠可靠,就可能設(shè)計出一個復(fù)雜的系統(tǒng),從而故障百出且容易崩潰。

自上世紀九十年代中期以來,軟件設(shè)計模式和技術(shù)有了很大的進步,但是許多設(shè)計人員尚未接觸到這些變化。圖1顯示的是醫(yī)療監(jiān)測設(shè)備參考設(shè)計每小時故障概率的圖表詳情。借此找出風險所在并準確統(tǒng)計故障概率往往需要高深的專業(yè)知識。

6

圖1 醫(yī)療監(jiān)測設(shè)備參考設(shè)計每小時故障概率的圖表

3、流程

IEC 62304注重流程,沒有良好的流程,我們無法證明系統(tǒng)達到了它的安全要求。

對于目前基本上難以衡量的一些內(nèi)容來說,良好的流程是一個可衡量的相關(guān)因素。衡量一個流程是否被遵循比較容易;而評估設(shè)計和代碼的質(zhì)量是否良好就困難得多。雖然不能說一個好的流程就能保證好產(chǎn)品,但好產(chǎn)品不可能源自低劣的流程則是一個眾所周知的十事實。

IEC 62304 列出開發(fā)醫(yī)療設(shè)備所需的流程,不是因為這些流程能夠確保安全的產(chǎn)品,而是因為:

A. 它們提供了可以對開發(fā)參數(shù)進行評估的環(huán)境。例如,良好的測試流程有助于測試覆蓋率的統(tǒng)計。沒有這一流程,則不可能對測試覆蓋率作出任何申明。

B. 它們可提供用以保存安全案例證據(jù)鏈的架構(gòu)?;仡櫺缘厣砂踩咐强赡艿模前嘿F,而且一定會需要重新生成曾存在于項目開發(fā)過程中那些未被保留的證據(jù)。

4、明確的要求

安全指標必須闡明可靠性的程度,以及達到這些程度的限制條件。

FDA已經(jīng)認識到“展示設(shè)計和生產(chǎn)常規(guī)的間接流程數(shù)據(jù)的合理性 ”不足以表明軟件的安全性, “注重于展示特定產(chǎn)品設(shè)備安全性的設(shè)備保證措施”也必不可少。這種展示包含于安全案例中,也反映了上述論題,即優(yōu)質(zhì)流程的目的不是保證優(yōu)質(zhì)產(chǎn)品,而是提供用以評估證據(jù)的環(huán)境。

每一個安全案例主要都會提出類似“這一系統(tǒng)將在條件C下,以可靠性B的水平,來操作A,如果不能做A,它會轉(zhuǎn)移到概率為P的設(shè)計安全狀態(tài)下”這樣的聲明。這一聲明及其相應(yīng)的注意事項都會被列在系統(tǒng)安全手冊中,以便用于系統(tǒng)更高層次的安全案例中。

一個系統(tǒng)的可靠性是指其持續(xù)且 及時準確回應(yīng)各種情況的能力:是可用性(及時響應(yīng)要求的頻率)和可靠性(這些響應(yīng)的正確率)的結(jié)合。

安全案例聲明系統(tǒng)的可靠性指標,提供達標的證據(jù)??煽啃灾笜说木窒扌院椭笜吮旧硪粯又匾?。例如,一個醫(yī)療成像系統(tǒng)可以滿足IEC 61508 SIL3要求,實現(xiàn)不超過8小時的持續(xù)工作,8小時后系統(tǒng)必須重置(更新)。由于成像過程通常是短暫的,所以這一限制不會造成不便,哪怕這個系統(tǒng)一天要用 24小時。

5、系統(tǒng)失效

沒有哪個系統(tǒng)對漏洞免疫,特別是Heisenbugs— 那些“曇花一現(xiàn)”,而當我們尋找它們的時候又“消失無蹤”的神秘漏洞, ;失效狀況終究會發(fā)生:我們要建立的系統(tǒng)必須能夠恢復(fù)常態(tài)或進入其設(shè)計安全狀態(tài)。

7

表1 缺陷、錯誤和故障分析表

既然所有的系統(tǒng)都將包含缺陷,而缺陷可能導(dǎo)致故障,一個安全系統(tǒng)就必須包含多道防線:

安全關(guān)鍵型流程的獨立——找出哪些部件有安全關(guān)鍵性,設(shè)計時務(wù)必保證其不受其它零部件的影響。

防止缺陷演變?yōu)殄e誤——盡管理想的解決途徑是識別并消除代碼故障,但是實際上很難做到。要小心Heisenbug,保證軟件的設(shè)計能夠發(fā)現(xiàn)和封閉缺陷,以免它們演變成錯誤。

防止錯誤演變?yōu)楣收稀鄬τ谲浖碚f,諸如復(fù)制和多樣化這樣的技術(shù)更適用于硬件,然而謹慎使用依然能夠奏效。

故障檢測和恢復(fù)——在許多系統(tǒng)中,轉(zhuǎn)移到預(yù)定義的設(shè)計安全狀態(tài),并將恢復(fù)任務(wù)留給更高層次的系統(tǒng)(比如人)是可行的。有些系統(tǒng)則不能如此操作,所以系統(tǒng)必須恢復(fù)或重啟。一般而言,在不明確環(huán)境中企圖恢復(fù),不如選擇帶有快速復(fù)原的crash-only模式。

1 2 > 
醫(yī)療設(shè)備 監(jiān)測設(shè)備

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門