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