功能安全生命週期介紹

上次有介紹軟體功能安全的概念、國際標準與應用領域、生命週期等觀念,其中有提到:”…也就是說如何在產品生命週期各階段(產品概念、需求分析與系統設計、細部設計/開發/整合與測試、安裝/移轉與維運、汰除)考量所需的功能安全作為” 所以,這次我們將更深入的來談談生命週期的觀念,透過回答下列問題,希望各位對於功能安全能有一個基礎性的了解:

  1. 為何功能安全要有生命週期?沒有會怎樣?
  2. 功能安全的生命週期包含哪些階段與活動?
  3. 與軟體開發有何關係?
  4. 與CMMI流程改善的關聯性?

問:為何談到功能安全,就要談到生命週期?

答:試想一下你正在重新裝潢家裡,如果你想要打通書房與客廳的那面牆並以書櫃取代、將廚房與飯廳改成共享空間、把浴室擴大並加入按摩浴缸等等,你會希望在房子原有結構下來修改,而且也會希望原本的結構足以支撐,對吧?

所以,功能安全就好像裝潢,而生命週期就是支持裝潢的優良結構。開發團隊有了好的生命週期模式,就能夠讓大家在不同階段進行有效的溝通並降低風險,於是當你想要增加功能安全的活動(或其他活動如軟體產品線、資安等)時,就有了一個可以植入這些活動的基礎架構,所以生命週期對功能安全提供了一個基礎建設平台,讓團隊植入相關活動以滿足溝通需求。

再來就是功能安全的認證需求,不管是車用/醫療/鐵道等產品的功能安全認證,都需要證明產品開發/營運/修改/除役的生命週期的活動,所以沒有了上述生命週期作為基礎架構,如何來談功能安全

問:生命週期包含哪些階段與活動?

答:依據IEC61508,我們將功能安全生命週期,用以下簡化的方式來說明:

  1. 系統定義:先清楚界定要分析的系統,包含範圍、功能,以及蒐集相關資料。
  2. 風險分析:透過對過去/現在/未來的角度,這個系統在使用時可能對人員/環境/設備造成哪些危害?危害的嚴重性與發生機率?可以忍受嗎?需要哪些功能安全機制來降低嚴重性或發生機率?要降低到多少才合理?
  3. 安全配置:上述功能安全機制由哪些子系統(包含軟/硬體)、其他裝置或系統以外的安全機制來負責?降低程度為何?有哪些限制?從而找出系統應具備的功能安全需求。
  4. 系統開發、整合與製造:包含軟硬體的功能架構與配置、功能安全設計與開發、整合與測試驗證,主要目的就是要滿足被賦予(配置)的功能安全需求。
  5. 系統安裝與測試:在預定營運的環境下進行安裝、測試與驗收。
  6. 營運、維護、更新、除役:在營運環境中持續監控功能安全的表現,並視需要重新啟動前述階段。

問:上述生命週期與軟體開發有何關係?

答:你覺得呢?既然軟體的任務之一就是要滿足被賦予(配置)的功能安全需求,所以在風險分析階段就要針對軟體可能造成的危害進行分析,同樣的在系統開發整合與製造時,也要針對所設計的功能進行分析,更要在營運時建立有效的缺失追蹤流程(Bug Tracking Process)以作為系統修改與未來發展的參考依據。

軟體在生命週期各階段所要考量的功能安全活動,依據不同功能安全等級(Safety Integrity Level, SIL)有不同的要求,在IEC61508 Annex B有列出不同SIL等級對於軟體(與硬體)在生命週期各階段的要求,這些要求分別反映到品質管理、安全管理、技術與工具的層面上。

問:與CMMI流程改善的關聯性?

答:CMMI就好比是房子的結構,或產品開發的基礎建設平台,透過這個平台的建立,可以將組織對於產品開發的最適作法(Best Practices)與資深同仁的豐富經驗,落實成大家可以遵循的流程,並在此流程上做有效的溝通,這個時候,不管你是要加入軟體功能安全、軟體產品線、資安、雲端、大數據等開發活動,都應該能夠在此平台上進行,而非建立在不穩固的基礎上。

了解功能安全的生命週期後,後續我們會針對生命週期中特定的階段,進行更深入的探討,讓大家由淺而深的了解軟體功能安全。

 

Posted in 經驗分享 Tagged with: , , , , , , ,