軟體功能安全

軟體的重要性在我們日常使用的產品中逐漸提升,現在你可能沒有很明顯的感覺,但想想你現在開車時仰賴的GPS導航程式,在不久的未來可能會變成無人駕駛汽車的核心,你在選擇汽車時,是否會將”軟體智能”納入優先考量呢?

因為這樣的趨勢,今天要與大家聊一下軟體功能安全(Software Functional Safety)的觀念。

請考慮以下三種專案或產品的類型:
A:手機用的APP讓使用者可以有效記錄與管理工作上的創意;
B:家用醫療裝置讓使用者可以量測、記錄如血壓、血糖等生理數值並坐必要的建議與緊急處理;
C:車用電子穩定系統防止車輛打滑以輔助駕駛人操作與穩定車身。
如果你是一位軟體RD Leader並帶領團隊開發上述三種產品所需的軟體或韌體,除了要滿足各自的客戶需求外,你覺得A、B、C還有哪些差異?

想到了嗎?其中一個重大差異就是對於功能安全(Functional Safety)的要求。

何謂功能安全?所謂功能安全就是一個系統,對於可能造成人員傷害的各種刺激(如軟/硬體失效、人為不當操作、環境因素等),在傷害發生之前的主動反應與處理能力。

軟體服務或產品百百種,從大家熟悉的搜尋網站、電腦與手機的各種應用程式,到用在車輛、工業產品、飛機、太空站等。除了要滿足不同的使用者功能需求外,還有一個非常重要的差別,就是對功能安全的需求。那麼,到底有哪些產品會有功能安全的需求呢?原則上,有可能造成人員傷害的都可能包含在內,例如用在下列系統的軟體,都需要有不同程度的功能安全考量:
1、武器系統
2、核/火/水/太陽能等電廠、發電裝置
3、工廠控制/製造之機械或系統
4、飛機、鐵道、車輛等運輸系統
5、醫療裝置
所以,如果你的產品屬於其中任何一個類別,要如何來考量功能安全?這就要談到目前對於功能安全相關的產業標準了。

61508 Instances

61508 Instances

如上圖所示,相關產業各有其所適用的標準,這些標準都是依據IEC 61508衍生出來的。所以要了解功能安全,可以先從了解IEC 61508開始。
要了解61508,就要知道61508的核心就是採用一個系統化的整體角度來落實功能安全,這反應在產品生命週期的觀點上,也就是說如何在產品生命週期各階段(產品概念、需求分析與系統設計、細部設計/開發/整合與測試、安裝/移轉與維運、汰除)考量所需的功能安全作為 ?例如,在概念階段運用危害與風險分析來找出可能對人員的傷害,以在需求分析階段界定出功能安全的需求與安全等級(Safety Integraty Level, SIL),然後在系統設計階段透過系統架構來配置安全需求到相對應的軟、硬體模組。另外在跨生命週期各階段所需的管理與支援活動(如Safety Management、Configuration Management、QA、Documentation等)也需要納入。

於是,要開發出滿足特定SIL的產品,就必須依據每個公司的特性,先建立一個符合自己需求的產品生命週期模式,然後以此模式為基礎,在不同階段植入相關的功能安全活動,並透過需求vs確認、設計vs驗證的概念(類似軟體開發常用的V Model)來連結各項活動,以建立整體功能安全的能力。
這種以生命週期為核心的功能安全觀點,代表著組織不僅需要領域知識,同時也要有流程的能力來生根與落實領域知識,才不會發生關鍵人員異動後造成知識傳承的困難。

隨著產業競爭與組織轉型的需求,相信越來越多的廠商需要具備軟體功能安全的能力來開拓另一個藍海。所以,如何建立合適的產品生命週期來管理與落實軟體功能安全,是每一個要朝向功能安全的公司必須面對與解決的議題。

本文作者:王誠為思辨顧問股份有限公司資深顧問,擁有系統工程、專案管理、軟體開發、品質保證及CMMI顧問服務等專業經驗超過二十年。王誠為SEI認證的主任評鑑員(SEI-Certified SCAMPI Lead Appraiser),輔導經驗涵蓋金融、半導體、手機、ODM、軟體SI、創新、電信、政府、國防等產業。以紮實的CMMI 導入經驗與深厚的軟硬體整合實力,協助企業有效落實流程改善工作。

Tagged with: , , , , , ,