開發(fā)安全有效的醫(yī)療設備軟件
Green Hills軟件公司 Jim McElroy
本文引用地址:http://2s4d.com/article/199334.htm符合軟件質(zhì)量行業(yè)標準對醫(yī)療器械的發(fā)展是至關(guān)重要的。集成的開發(fā)工具的使用可以大大減少開發(fā)時間,并提高產(chǎn)品質(zhì)量、安全性和可靠性。
今天,由于市場對設備功能的需求更加豐富,對成本效益的要求更加苛刻,因此,醫(yī)療設備正變得越來越復雜。內(nèi)窺鏡的市場就是一個很好的例子。隨著復雜性的增加,設備制造商們需要縮短開發(fā)時間,推向市場的產(chǎn)品必須安全可靠,這是進入市場的基本要求。此外,經(jīng)驗表明,如果內(nèi)窺鏡手術(shù)可以更快地進行,病人可能恢復較快,而外科醫(yī)生和工作人員也能夠在同一時間內(nèi)執(zhí)行更多的任務。對于設備制造商來說,要實現(xiàn)這些更高層次的目標,就必須使用合適的軟件開發(fā)工具,就必須采用可靠和安全的操作系統(tǒng)(OS)進行調(diào)試和驗證關(guān)鍵的軟件組件。
對于第二類和第三類醫(yī)療器械的開發(fā)商來說,及時地開發(fā)出安全有效的設備是一個很大的挑戰(zhàn)。而這一挑戰(zhàn)的核心是病人和設備操作人員的安全性。要開發(fā)出安全可靠的設備,就必需面對一些壓力,即上市的窗口、競爭、開發(fā)成本、供應商的成本,以及合規(guī)性問題。為了應付這些壓力,醫(yī)療設備軟件開發(fā)商們從工具和程序的開發(fā)中,過渡到業(yè)界認可的開發(fā)工具、操作系統(tǒng)和業(yè)界標準的軟件開發(fā)。
一直到2009年,大部分的醫(yī)療設備軟件開發(fā)機構(gòu)都依賴于未針對醫(yī)療設備軟件開發(fā)優(yōu)化的軟件開發(fā)方法、工具、流程及標準。不過,現(xiàn)在有些公司,如史賽克內(nèi)窺鏡(Stryker Endoscopy),它利用行業(yè)標準,如IEC 62304,來進行軟件開發(fā)和維護,以最迅速的方式開發(fā)出安全有效的設備,又保障了產(chǎn)品質(zhì)量,更重要的是保障了病人和操作人員的安全?;贗EC 62304,軟件開發(fā)機構(gòu)可以充分利用國際認可的標準,提供一個設計和維護醫(yī)療設備軟件生命周期過程、活動和任務的框架(圖1)。
圖1 IEC62304 V型方法,需要系統(tǒng)要求和軟件應用設計之間的可追溯性
要想成功地開發(fā)復雜的醫(yī)療設備,有幾個核心的要素。首先是有效地利用標準,特別是專門為醫(yī)療設備軟件開發(fā)而制定的標準,并且降低整個開發(fā)過程中的風險。此外,選擇適當?shù)挠布筒僮飨到y(tǒng)技術(shù)對整體項目的成功也至關(guān)重要。正是因為如此,史賽克內(nèi)窺鏡公司(Stryker Endoscopy)才選擇了Green Hills Software公司的實時操作系統(tǒng)(RTOS),這是業(yè)界公認的操作系統(tǒng)技術(shù),史賽克內(nèi)窺鏡公司相信它會提供良好的安全性和可靠性。除了以上的操作系統(tǒng)層,軟件應用程序也十分復雜,因此,我們的開發(fā)團隊還依靠Green Hills成熟的Multi軟件開發(fā)工具,以測試和驗證應用程序,確?;颊甙踩?。
除了具有一個可以簡化審批程序的、堅實的軟件開發(fā)框架以外,IEC 62304還執(zhí)行了嚴格的架構(gòu)軟件設計,將所有的軟件進行了安全分類。根據(jù)其潛在的危險,軟件被分為“A”,“B”,或“C”。 “C”類軟件最不安全,可導致嚴重傷害或死亡。
開發(fā)團隊可以利用這些分類,從概念上區(qū)別關(guān)鍵應用和非關(guān)鍵應用??梢岳貌僮飨到y(tǒng)的分離核心架構(gòu),在運行時,實現(xiàn)這一概念的區(qū)分,分割各種應用程序(圖2)。因此,該系統(tǒng)更具內(nèi)在安全性,更具可靠性,這是因為每一個分區(qū)的故障都將被隔離,并不影響另一個分區(qū)上運行的應用程序。許多開發(fā)人員認為,在多任務使用一個單一的地址空間時,這種方法大大地改進了安全性和可靠性。此外,通過分區(qū),使得多個應用程序可以共享相同的處理資源,不再需要單獨的物理硬件資源,節(jié)省了材料費用。在這一架構(gòu)設計中,IEC 62304將系統(tǒng)分解成軟件單元,使系統(tǒng)可以更好地進行單元和系統(tǒng)驗證。更重要的是,OS技術(shù)還為不同的地址空間提供了非常規(guī)則整潔的應用方式,使其可以高效地相互溝通。這一架構(gòu)繪制清晰,能夠輕易地識別軟件項目之間的接口,以滿足IEC 62304的要求。
圖2 分離核架構(gòu)模型
所選擇的操作系統(tǒng)(OS)采用了一個真正的實時調(diào)度程序,支持多個優(yōu)先級。這使得團隊可以使用速率單調(diào)算法來指定所有任務的優(yōu)先級,以最大限度地提高系統(tǒng)的調(diào)度,以確保所有的關(guān)鍵時刻的約束條件得到滿足。此外,該團隊還采用操作系統(tǒng)的分區(qū)架構(gòu),以創(chuàng)建一個健康監(jiān)測。該操作系統(tǒng)通過提供相互地址空間的通信平臺,可以很容易地與正在運行的應用程序溝通,以監(jiān)控系統(tǒng)中的所有關(guān)鍵和非關(guān)鍵任務的狀態(tài),這就可以不斷地檢查故障,進行健康監(jiān)測,在故障發(fā)生時,使關(guān)鍵任務進入安全狀態(tài)。此外,該團隊還利用分區(qū)分離,建立了一個專門的地址空間,以處理在手術(shù)室中史賽克內(nèi)窺鏡公司其它設備的通信。通過采用專用的接口總線,史賽克公司的產(chǎn)品可以相互溝通,進行無縫集成,實現(xiàn)數(shù)據(jù)共享和通用控制。通過實施分區(qū)的地址空間,無論是軟件還是硬件都可以模塊化,并很容易地移植到未來采用相同操作系統(tǒng)的任何設備。
在此特定設備的設計中,史賽克內(nèi)窺鏡公司雖然沒有在結(jié)構(gòu)上設計虛擬化應用,但其選定的操作系統(tǒng)也支持虛擬化,從而使各種客戶機操作系統(tǒng)可以與主機操作系統(tǒng)同時運行。有了這一功能,在未來,史賽克產(chǎn)品可以將不同的操作系統(tǒng)用于不同水平的功能。例如,Android可以運行在虛擬機,進行用戶界面控制,而在另一個虛擬機上運行的該操作系統(tǒng)(OS)將負責所有的安全,或與安全有關(guān)的功能。
從架構(gòu)設計階段到詳細設計階段和實施階段,其綜合、完整的開發(fā)環(huán)境(IDE)使團隊在必要時,可以迅速地開發(fā)、測試和重復迭代應用程序,即軟件項目可以插入到適當?shù)牟僮飨到y(tǒng)(OS)分區(qū)。ARM目標模擬器具有巨大的價值,它可以遠在硬件平臺出現(xiàn)之前,對設計進行早期驗證,節(jié)省了大量的時間和金錢。在分區(qū)里操作的軟件項目,就成為可重復使用的軟件組件,可以用在未來的醫(yī)療器械中。此外,關(guān)于測試和原型設計的用戶界面,IDE和操作系統(tǒng)可以使團隊快速地讓用戶界面進入“模擬”設計,確保正確的互動式操作(通過Swell Software的PEG+ GUI軟件解決方案,和PEG窗口生成器屏幕設計)??捎眯允窃O備安全運行的一個關(guān)鍵因素,而UI原型設計使團隊可以確保令人滿意的功能。
影響代碼質(zhì)量的因素很多,包括工程師寫代碼的質(zhì)量,開發(fā)工具,以及隨后的軟件開發(fā)。根據(jù)IEC 62304規(guī)定,每個單位都有自己的驗證過程。作為這一過程的一部分,本團隊使用IDE的優(yōu)化調(diào)試和測試技術(shù)。按照公認的最佳做法,本團隊在整個軟件開發(fā)過程中使用了靜態(tài)分析工具,從而,消除了通過編譯器或代碼審查而不容易被發(fā)現(xiàn)的模糊缺陷。這類缺陷包括緩沖區(qū)溢出、資源泄漏和NULL指針的解除引用。未來,本團隊將利用IDE內(nèi)置的靜態(tài)分析工具(靜態(tài)分析工具和調(diào)試器之間具有緊密的耦合)來確??焖俚牡邪l(fā)。這樣,在編譯時就具有了自動執(zhí)行靜態(tài)分析的能力,而不是在編譯后再進行人工靜態(tài)分析。雖然靜態(tài)分析工具有助于提高代碼的質(zhì)量,但單憑靜態(tài)分析工具來保障應用程序的質(zhì)量是不夠的。
本團隊還利用IDE代碼模制工具(profiler tool),給出一個完整的代碼執(zhí)行報告,明確指出哪個應用程序代碼行已經(jīng)執(zhí)行。本團隊還可以使用此信息來設計單元測試,準確地執(zhí)行所有的應用程序代碼元素,與人工比較節(jié)省了時間、精力和金錢。此外,所有的文檔都自動生成,訪問方便。在典型的嵌入式軟件開發(fā)中,大部分的時間花在了修復少數(shù)幾個故障上,在這種情況下,此調(diào)試環(huán)境使本團隊既可以解決與任務優(yōu)先級相關(guān)的問題(圖3),也可以解決較低層次的問題。它能夠使用跟蹤數(shù)據(jù)來調(diào)試以前或以后的故障,可以容易地找出通常很難找出的問題,并確定原因。這種能力對醫(yī)療器械的安全性是至關(guān)重要的。總的來說,這些工具提供了一種輕松地進行檢查的能力,可用于故障排序、數(shù)據(jù)、流控制、資源分配、自我診斷和內(nèi)存管理。
助聽器原理相關(guān)文章:助聽器原理
評論