包含軟件系統(tǒng)的醫(yī)療設(shè)備與構(gòu)建復(fù)雜系統(tǒng)一樣,制造商面臨著相同的挑戰(zhàn):時(shí)間、質(zhì)量、規(guī)模(功能的數(shù)量和復(fù)雜性)和成本。此外,產(chǎn)品還需通過當(dāng)?shù)乇O(jiān)管部門的審批,如美國(guó)食品及藥品管理局(FDA)、歐盟醫(yī)療器械指令司(MDD)、英國(guó)藥監(jiān)局(MHRA)以及其他同類監(jiān)管機(jī)構(gòu)。
在本文中我們將探討動(dòng)態(tài)代碼分析如何幫助醫(yī)療設(shè)備展示安全合規(guī)性以及動(dòng)態(tài)分析工具所應(yīng)具備的關(guān)鍵功能。為了幫助設(shè)計(jì)人員選擇操作系統(tǒng)(OS),文章還簡(jiǎn)要介紹了OS的哪些特性可以推動(dòng)安全相關(guān)軟件加速設(shè)計(jì)、開發(fā)和審批流程等。
專業(yè)知識(shí)和流程
專業(yè)知識(shí)和良好的開發(fā)流程并不能確保系統(tǒng)符合所需滿足的可靠性,甚至不能確保它是一個(gè)好系統(tǒng)。但是這兩者的確能極大提高這種可能性。
創(chuàng)造安全關(guān)鍵系統(tǒng)所要求的簡(jiǎn)潔設(shè)計(jì)需要卓越的專業(yè)知識(shí)。要證明被測(cè)試的軟件系統(tǒng)符合安全要求,需要對(duì)軟件驗(yàn)證方法、被評(píng)估的軟件以及評(píng)估環(huán)境(包括類似系統(tǒng)的驗(yàn)證)有全面透徹的了解。
毫無疑問,IEC62304標(biāo)準(zhǔn)專注于開發(fā)流程。理解這點(diǎn),我們的工作將會(huì)做得更好,不僅僅是在滿足最嚴(yán)苛質(zhì)量管理標(biāo)準(zhǔn)的環(huán)境下進(jìn)行軟件開發(fā),同時(shí)還使用工具來幫助確保我們的系統(tǒng)符合這些標(biāo)準(zhǔn),并向?qū)徲?jì)員和監(jiān)管機(jī)構(gòu)提供證據(jù)加以證明。
展示可靠性
為了確保通過監(jiān)管機(jī)構(gòu)的審批,制造商必須證明這些設(shè)備滿足安全規(guī)格。對(duì)于設(shè)備軟件來說,要證明他們符合可信任(可靠性和可用性)標(biāo)準(zhǔn)的要求。具體是滿足可靠性還是可用性方面的要求,則要取決于系統(tǒng)的使用情況。詳細(xì)的要求限制和精確的可信性要求提供了既定的前提和精準(zhǔn)的方法,幫助我們驗(yàn)證軟件系統(tǒng)的可信性。
定義可接受風(fēng)險(xiǎn)
沒有任何軟件系統(tǒng)是絕對(duì)可靠的。即使系統(tǒng)絕對(duì)可靠,我們也無法證明它?,F(xiàn)有可用的方法無法證明系統(tǒng)將永不失效,他們僅能幫助我們找到并避免錯(cuò)誤的發(fā)生,并估計(jì)失效的可能性。因此,當(dāng)軟件系統(tǒng)的故障率足夠低,沒有不可接受的風(fēng)險(xiǎn),它就是“安全”的?!安豢山邮茱L(fēng)險(xiǎn)”或“可接受風(fēng)險(xiǎn)”的精確含義因行業(yè)及行政轄區(qū)而異。衡量方法包括:
? ALARP(As Low as Reasonably Practical,最低合理可行):將潛在的危害和相關(guān)的風(fēng)險(xiǎn)定義和分類為:a)明確不可接受,b)如果移除成本過高,則可以容忍,以及c)可接受。所有不可接受風(fēng)險(xiǎn)必須被移除,但是僅當(dāng)移除成本和時(shí)間較為合理時(shí),可容忍風(fēng)險(xiǎn)才會(huì)被移除。
? GAMAB(globalement au moins aussi bon)或GAME((globalement au moins équivalent):新系統(tǒng)的風(fēng)險(xiǎn)水平至少要與現(xiàn)有系統(tǒng)的風(fēng)險(xiǎn)水平大體相當(dāng)。
? MEM(Minimum Endogenous Mortality):在新系統(tǒng)部署的領(lǐng)域,它帶來的死亡率不能超過該地區(qū)常規(guī)死亡率的十分之一。舉例來說,在西方國(guó)家年齡為20多歲的人群,這個(gè)值約為0.0002。
所有這些方法都需要按實(shí)際情況調(diào)整,主要取決于設(shè)備的嚴(yán)重故障可能同步影響到的人數(shù)。當(dāng)使用ALARP方法時(shí),為了確定哪些風(fēng)險(xiǎn)不可接受、哪些可容忍以及可接受,我們需要決定每個(gè)風(fēng)險(xiǎn)的嚴(yán)重故障所允許的最大失敗可能性。而如果使用GAMAB和MEM準(zhǔn)則,我們則需要在全球范圍確定這個(gè)數(shù)值。
證明軟件可靠性的方法
目前,沒有任何一種單一的方法足以證明軟件系統(tǒng)滿足可靠性方面的要求。因此,我們的可靠性演示必須使用整合了各種方法和技巧,它們包括但不限于:
? 符合IEC 62304及其他同類標(biāo)準(zhǔn)要求的開發(fā)環(huán)境
? 要求跟蹤矩陣,確保所有安全相關(guān)的要求都已得到滿足
? 正規(guī)的設(shè)計(jì)方法和工具,可以為設(shè)計(jì)的正確性提供數(shù)學(xué)依據(jù)
? 使用貝葉斯置信網(wǎng)絡(luò)方法的故障樹分析
? 回顧性設(shè)計(jì)驗(yàn)證,基于已完成的工作來評(píng)估系統(tǒng)設(shè)計(jì)
? 靜態(tài)分析,使用模型檢測(cè)或者數(shù)據(jù)流分析等方法
? 使用直接故障檢測(cè)技術(shù)進(jìn)行測(cè)試,如動(dòng)態(tài)分析,通過產(chǎn)生的誤差和失效來識(shí)別故障
圖1 IEC 62304標(biāo)準(zhǔn)涉及的不同分析方法和相關(guān)章節(jié),表現(xiàn)為典型的“V”字形發(fā)展模型。圖中顯示的每一種方法都不依賴于進(jìn)程。任何其他開發(fā)進(jìn)程模型都可用類似的表述:瀑布式、迭代的、靈敏的等