您當前的位置:檢測資訊 > 科研開發
嘉峪檢測網 2025-03-18 18:04
1.為什么需要軟件FMEA
在智能汽車軟件代碼量突破2億行的今天(Bosch 2023數據),軟件失效已成為影響汽車安全的首要風險,軟件問題造成的系統失效占比高達60%以上。軟件FMEA作為系統性的軟件問題分析方法,能夠通過結構性的方式對軟件需求、架構、設計、代碼存在的問題進行分析,正在成為軟件安全與質量的重要保障。
軟件FMEA的必要性還體現在如下幾個方面:
1、標準法規的要求
(1)ISO 26262/GBT 34590功能安全標準明確要求對軟件系統進行失效分析
(2)ISO16949質量體系將FMEA列為關鍵的驗證手段
(3)歐美市場準入認證中軟件FMEA報告已成為必交材料
2、復雜系統的生存必須
車載軟件系統愈趨復雜,新技術新方法層出不窮,軟件系統的安全屬性要求越來原告,由于軟件造成風險占比已經高達系統性風險的60%以上。而關鍵軟件系統的失效動輒造成車毀人亡的結果,也是用戶、社會及車企不可接受的。
以L3自動駕駛域控制器為例,其軟件系統包含:
5000萬行以上代碼量
100+個功能模塊
2000+個數據接口
50+種實時任務調度
軟件FMEA作為系統性結構化的分析方法,能夠充分的對軟件失效進行識別及風險評估,有助于保障車載軟件系統的安全與質量。
3、開發過程的本質需求
軟件的失效均屬于系統性失效,其發生時機、機理、表現均有一定的固定性,即軟件失效一旦存在,便在特定的情況下必定會發生,并表現形式相對一致。
軟件為人為的邏輯產品,軟件的開發過程是軟件錯誤注入的主要環節,最終體現在構成軟件的不同內容上。
Figure 1 軟件問題的來源
根據行業內的統計,我們將軟件失效原因分為四個大的類別,其中:
Figure 2 軟件問題分類
人的因素占比7%左右,主要包括人員的開發能力及經驗、組織的成熟程度、辦公環境影響、人員態度等;
產品定義問題占比12%左右,主要包括產品定位、產品需求描述、市場場景定義、使用用例描述等;
流程問題占比23左右,主要包括活動裁剪與定義、角色及職責的定義、版本及基線管理、 資源管理、變更管理等;
技術實現問題占比58%左右,主要包括架構設計、詳細設計、代碼實現、工具使用、測試、開發方法等。
2.軟件FMEA分析什么
1、軟硬件FMEA的差異
相比于傳統的系統與硬件FMEA,軟件FMEA有諸多差異,起步也較晚,在行業內也沒有形成統一的分析方法。
2、軟件FMEA的分析難點及重點
基于以上對軟硬件FMEA差異的對比,不難看出軟件FMEA的分析難點與重點在于以下幾個方方面:
識別分析對象
要從哪些維度對軟件進行分析,是白盒分析還是黑盒分析,如何保證軟件動態、靜態方面的問題能夠被充分的識別到。
識別失效模式
如何識別失效模式,并保證失效模式識別的充分性及合理性。
分析的顆粒度
分析層級、失效模式分析到一個什么樣的顆粒度,即保證分析有效具有指導意義,又能避免分析過分復雜。
3、軟件FMEA的分析時機
軟件FMEA的分析可以在架構及詳細設計級進行。
軟件架構級別FMEA
主要針對的是軟件需求級軟件架構,一方面分析架構是否充分實現了需求,另一方面分析需求及架構中的潛在問題,例如需求描述是否充分、合理、是否有歧義等,架構是否存在接口、邏輯等技術性錯誤。
軟件詳細設計級別FMEA
主要針對的是軟件詳細設計潛在的問題,一方面關注軟件單元是否充分實現了需求及架構要求,另一方面關注詳細設計中存在技術性問題,例如邏輯錯誤、變量定義及賦值錯誤、條件判斷錯誤等。
對于復雜性的軟件,進行詳細級別的FMEA是一個比較大的工作量,因此從成本的角度考量,可以將架構級及詳細級別的FMEA結合進行,比如在架構級別分析到的風險比較高的模塊,需要進行詳細級別的FMEA,而對于風險較小的軟件模塊僅進行架構級別FMEA即可。
4、軟件FMEA分析哪些內容
軟件FMEA對軟件模塊的分析主要集中在以下幾點:
功能及邏輯
針對軟件模塊所需實現的功能、條件、邏輯等內容
變量及數據
針對軟件模塊的接口及數據等,包括輸入輸出接口、內部變量、全局變量、常量等數據信息
時間屬性
針對軟件執行的調用及時間屬性等,包括任務周期、前后置時序、實時性要求等
軟件對存儲的操作
針對軟件對存儲的操作,包括存儲空間分配、存儲內容讀寫、存儲空間權限等
軟件部署
針對軟件部署時,對其他軟件模塊及硬件的依賴關系,包括OS、驅動、中間件、硬件資源等
3.軟件FMEA實施
1、軟件FMEA分析方法
軟件FMEA的分析可以參考傳統的FMEA七步法,也可以直接基于軟件模塊來進行分析。
Figure 3 傳統FMEA七步法
Figure 4 基于軟件模塊直接進行分析
1. 典型軟件失效模式
1.1. 功能邏輯失效分析
參考Hazop關鍵字對功能邏輯的失效模式進行分析
2、變量及數據失效分析
對于變量及數據的分析,主要考慮到
變量及數據的類型
變量及數據的范圍及初始值
變量及數據Raw值與物理值之間的對應關系
變量及數據完整性
變量及數據時效性
變量及數據地址錯誤等
針對不同類型的變量數據,具有不同的失效模式,如下示例:
3、時間屬性失效分析
對于時間屬性,主要考慮到如下幾點
軟件功能的執行周期,e.g. 100ms周期或事件觸發型;
軟件功能的執行時間,e.g. 2ms內執行完成;
軟件功能的執行時序,e.g. 在使能功能完成后,5ms內執行;
軟件任務優先級, e.g. 安全任務具有更高的優先級要求。
一些典型的時序及執行方面的失效模式如下
4、軟件對于存儲內容操作失效分析
針對存儲分析主要關注的是軟件對存儲內容操作過程中存在失效模式,主要考慮到如下幾個方面:
存儲空間分配
存儲內容寫入
存儲內容讀取
存儲訪問權限
針對存儲操作的典型失效模式如下:
5、部署分析
軟件部署分析主要考慮到如下內容:
軟件模塊對核的依賴
軟件模塊對存儲的依賴
軟件模塊對底層及OS的依賴
軟件模塊對內部通訊總線的依賴
軟件模塊對外設資源的依賴
軟件模塊之間的依賴關系
典型部署相關失效模式如下:
4.總結
車載軟件的重要性及復雜性決定了必須對關鍵軟件進行系統化的分析,這是軟件安全性與執行的要求。
軟件與硬件的不同決定了軟件FMEA在分析內容、分析重點及失效模式識別上與硬件FMEA會有很大的不同。由于篇幅有限,本文主要對這些不同進行著重的講解,集中在分析內容、失效模式識別等方面。對于失效原因、失效影響、風險評估、優化措施等方面,會在后續的文章中逐步展開。
來源:國可工軟