
作者 |?輝羲智能-朱韜
導讀
從最基礎的傳感器到高度復雜的中央域控,各級別的電子控制器已融入到現代汽車的核心構造之中,成為動力與智能的交匯點。控制器的軟硬件協同運作,為用戶帶來了全新的駕乘體驗。而在設計層面,日益復雜的硬件和軟件設計,對功能完備度、質量和可靠性、可維護性提出了更高要求。本文將從軟件開發的視角,以軟件FMEA這一特殊方法為切入點,嘗試探討提高軟件質量和可靠性的手段。

HUIXI TECH
一、關于FMEA
FMEA(Failure Mode and Effects Analysis)作為一種系統性的風險管理工具,其重要性在于深入識別、全面評估以及有效減少產品或過程中的潛在失效模式及其影響。該方法運用于產品或過程的設計、開發或改進階段,通過分析各種失效模式和評估它們的影響程度,以便制定相應的糾正措施,從而降低潛在的風險和不良后果的發生。
FMEA常應用于以下幾個領域:
?●?產品設計:分析產品的設計,確定潛在的失效模式及其影響,提出改進措施,以提高產品的可靠性和性能。
?●?制造過程:分析制造過程中的各個環節,識別可能導致產品質量問題或生產中斷的失效模式,并制定預防措施,以減少生產故障和不良品率。
?●?供應鏈管理、服務行業等,不在此詳細展開。
典型的FMEA過程如下圖:

FMEA有助于組織識別和解決潛在的問題,提高產品的可靠性和質量,減少風險和不良后果的發生。通過系統性的分析和評估,FMEA可以幫助組織在設計、開發和改進階段就發現和消除潛在問題,以提供更可靠、更安全和更優質的產品和服務。
HUIXI TECH
二、軟件開發質量控制工具箱
提到軟件開發質量控制,非常容易讓人聯想到敏捷開發、 ASPICE等概念。如果放開思路,不局限于CMMI等既有體系,那么軟件開發的質量控制和提升還有多種工具,例如:
?●?專家經驗類:依靠核心專家的經驗,全面把控設計方案和測試過程的合理性,從而對整個設計進行控制。
?●?體系推進類:體系推進類是經常被討論的,涵蓋了各種標準化的方法論,如各級review、測試體系、失效庫的建立和分析等。FMEA也是其中之一。
?●?管理監督類:從結果導向的角度,對軟件產品的進度和質量進行考核,從而推動軟件開發質量提升。
不同的產品與市場,不同的團隊特點下,適合靈活采取各種方案。當然,方案間不是互斥的,相信每個軟件團隊都有符合自身特點的工具組合。
HUIXI TECH
三、基于軟件FMEA進行設計分析
1. 必要性
軟件FMEA是一個相對特殊的主題。談到FMEA,被檢查對象更多涉及系統、硬件或生產過程,軟件似乎并不太常見。而談到軟件質量控制,雖然有各種體系和審核,FMEA卻常常不是強制要求。
然而正是這個相對冷門的方法,在汽車行業的軟件開發中卻孕育著獨特價值。根據個人經驗,以下是一些特殊要素,可說明其在汽車行業中的重要性:
?● 系統整合性:汽車行業的軟件需在一個完整系統中工作,因此不能孤立地檢查軟件。例如,在設計驅動程序時,必須考慮到車輛可能出現的電壓波動、溫度變化等因素。只有從系統角度來檢查軟件設計,才能提供更為全面的視角。
?● 軟硬件協同:軟件行為需要與硬件緊密結合,并可能受到批量一致性的影響。例如軟件需要與一個外圍器件進行SPI通信,單個樣品測試多次都是好的,但批量后的少數個體偶發失效也客觀存在,不能因此影響客戶體驗。
?● 可靠性和可維護性:整體對可靠性和可維護性要求很高,功能喪失或系統重啟等問題可能對客戶影響極大。有些與可靠性關聯的故障工況,可能在研發階段難以預見或模擬。而可維護性雖與FMEA關系并不顯著,卻容易在常規軟件review中被忽略。
通過對比經典的軟件質量控制工具箱,我們可以發現,雖然其中的專家經驗或管理監督方法能全方位覆蓋各種問題,但ASPICE等經典體系對于上述特殊要素的聚焦卻相對不足。
軟件FMEA以其天然的系統觀點、關注環節間關聯性的特點,以及對衡量標準(如可維護性、關注程度等)的人為調整能力,在汽車行業軟件設計中成為一種實用且有效的工具。這一方法的價值不應被忽視,反而應當作為軟件質量控制的重要組成部分加以重視和推廣。
2.?邊界與方法
當然,雖然軟件FMEA是一項有力的工具,但在實際應用中必須明智地選取適用范圍和關注點。不是每個子系統設計都需要進行一輪FMEA分析,也不是軟件設計中的每個部分都需要全部檢查。
以下是結合個人經驗,對有關軟件FMEA適用范圍和關鍵焦點的一些理解。
適用范圍:軟硬結合的復雜子系統
?●?在FMEA的體系下去檢查coding級別的錯誤,投入大且基本難有什么產出,那是ASPICE等工具的長項;
?●?FMEA體系還是更適合概念性/體系性/失效模式為導向的檢查。檢查目標為軟件產品所實現的功能,而不是軟件本身。
失效模式非常體現軟件FMEA特色
?●?需要考慮失效對軟件的影響:例如系統FMEA關注晶振的偏差影響,軟件FMEA中就需要關注偏差范圍內頻率變化是否能被各模塊容錯處理。
?●?需要考慮軟件特有的失效類型:例如時序問題、資源搶占、數據一致性等,這些軟件特殊的失效類型在軟件FMEA中可能會受到重點關注,而在系統FMEA中可能會被忽略。
?●?特別考慮失效定位的便捷性:軟件失效處理和更新所占的時間不容忽視,因此“失效是否方便被快速定位”是高價值功能,前期提前考慮能節省后期大量人力物力。
經典軟件流程與FMEA的不同關注項:

3.?基本案例
以智駕系統必備的安全監控為例:
從結構和功能的角度,需要關注傳感器自身、數據通路、在SoC內部的各級運算等。
從失效的角度,需要考慮各種動態工況(啟動、關機、異常復位等),考慮各功能的典型失效(偶發失效、持續失效,以及時序、數據完整性等不同維度的失效特征)。
從影響分析的角度,安全維度、功能維度、維護維度都需兼顧。不要漏過問題,更難的是不要因為各類輕微問題而關閉功能以保安全。
HUIXI TECH
四、總結
軟件開發的質量和可靠性設計是一個綜合話題,對此的追求應從設計階段就需要保證,而不是單純依靠測試。多種工具和方法都可以為研發過程提供支撐,軟件FMEA方法雖被較少提及,但卻具有特殊意義。
在理解和靈活使用各類開發方法和工具的基礎上,輝羲智能的工程團隊一直致力于從研發階段科學分析和優化,為客戶提供更完善的體驗,將軟件開發的質量和可靠性提升至更高水平。

