避免重新發(fā)明輪子是高效產(chǎn)品開發(fā)的關(guān)鍵部分。在嵌入式編程中,這個概念始于受信任的庫,并通過面向?qū)ο缶幊毯?Java 等概念得到增強,這使我們能夠創(chuàng)建當(dāng)今的復(fù)雜系統(tǒng)。
安全標(biāo)準(zhǔn)也促進了經(jīng)過驗證的軟件元素的重用,盡管這帶來了復(fù)雜的挑戰(zhàn)。將一些元素引入到一個項目中,而這些元素在其開發(fā)中應(yīng)用的嚴格程度并不相同,這將不可避免地導(dǎo)致弱點。因此,安全標(biāo)準(zhǔn)規(guī)定了驗證這些組件用于安全項目的方法。
但對效率的追求可能會導(dǎo)致在安全關(guān)鍵系統(tǒng)中不起作用的概念。定制現(xiàn)貨 (COTS) 軟件是許多行業(yè)以多種方式使用的術(shù)語,雖然它在工業(yè)安全方面具有非常特定的含義,但它可以成為走捷徑的借口,這在安全方面是不可接受的項目。一個系統(tǒng)的強弱取決于它的弱點。未知譜系/出處軟件 (SOUP) 用于醫(yī)療標(biāo)準(zhǔn) IEC 62304,但在安全項目中沒有“未知”的東西是有充分理由的。你可以測試它到死,但最終,當(dāng)它的起源未知時,你如何在未來幾年保持它?
脫離上下文定義安全元素
在汽車領(lǐng)域,ISO 26262-10 中定義的安全元素脫離上下文 (SEooC) 是在車輛中使用最初不是為該特定項目設(shè)計的組件的方法。
SEooC 這個術(shù)語有點笨拙,但它清楚地定義了問題。您集成到系統(tǒng)中的所有軟件庫都是“脫離上下文”有效開發(fā)的:它們旨在提供特定功能,而不知道如何在目標(biāo)系統(tǒng)中使用它。“元素”表示這是具有特定功能范圍的單元或模塊;“安全”表示該模塊是在一組安全要求的背景下專門開發(fā)的。
有兩種基本類型的軟件 SEooC(源自 ISO 26262-10-9):
經(jīng)驗證的使用方法。這種類型的軟件使用經(jīng)過驗證的參數(shù)(和其他措施)來驗證 COTS 組件是否達到指定的安全級別。ISO 26262-8-14 指定了如何實現(xiàn)這一點,但在軟件環(huán)境中仍有很多值得商榷的地方。可觀察錯誤的概念是關(guān)鍵——記錄產(chǎn)品的使用情況,以便可以可靠地記錄和匯總所有錯誤,從而準(zhǔn)確了解軟件的可靠性。這需要考慮到具體的配置中。這些結(jié)果與目標(biāo)項目的相關(guān)性是復(fù)雜的,因為在用于建立軟件可靠性的現(xiàn)場測試用例中,幾乎可以肯定安全項目具有不同的配置和工作環(huán)境。您能否相信未按照安全標(biāo)準(zhǔn)開發(fā)的軟件能夠可靠地報告所有錯誤?
ISO 26262-6 方法。在汽車安全系統(tǒng)中開發(fā)軟件元素的標(biāo)準(zhǔn)方法在用于開發(fā)道路車輛功能安全的 ISO 26262 標(biāo)準(zhǔn)的第 6 節(jié)中定義。它源自標(biāo)準(zhǔn)前面部分中定義的目標(biāo)系統(tǒng)的完整 V 模型開發(fā),并且本身就是一個 V 模型。因為該元素是脫離上下文開發(fā)的(即,不是從目標(biāo)項目的安全計劃中得出的),所以必須采用額外的措施。主要的附加措施是創(chuàng)建一組 SEooC 旨在工作的假設(shè)。這些假設(shè)必須在集成期間在目標(biāo)平臺上得到驗證。
完整的軟件生命周期維護
這是任何安全項目開發(fā)的關(guān)鍵部分:響應(yīng)開發(fā)期間或發(fā)布后提出的問題的能力。一旦項目成熟,就需要一種方法來在問題出現(xiàn)時可靠地修改項目。ISO 26262-6 方法的一個關(guān)鍵優(yōu)勢是可以進行全面而準(zhǔn)確的影響分析,并正確實施由此產(chǎn)生的更改,因為所有標(biāo)準(zhǔn)工件都是在設(shè)計、實施和測試之間具有可追溯性的情況下創(chuàng)建的。
您從項目發(fā)布中獲得的時間和人員越多,就越有必要擁有可用的人工制品及其相關(guān)流程,以便安全地進行更改。這種方法確保了未來的可維護性。
跨行業(yè)重用
在多個行業(yè)中使用許多嵌入式組件具有實際意義。例如,存儲數(shù)據(jù)的文件系統(tǒng)或通信數(shù)據(jù)的網(wǎng)絡(luò)堆棧不是特定于行業(yè)的,理想情況下,從一個項目中獲得的好處應(yīng)該在新項目中得到利用,無論它們應(yīng)用于哪個行業(yè)。從軟件的角度來看,跨不同行業(yè)開發(fā)軟件的安全要求大體相似,但根據(jù)所需的安全級別,其嚴格程度不同。采用根據(jù) ISO 26262-6 開發(fā)的 SEooC 方法為跨標(biāo)準(zhǔn)映射人工制品提供了良好的基礎(chǔ)(例如,工業(yè)功能安全的 IEC 61508 或醫(yī)療設(shè)備的 IEC 62304)。
為 SEooC 定義 ASIL 級別
在所有安全標(biāo)準(zhǔn)中,都規(guī)定了安全級別。目標(biāo)系統(tǒng)中故障的影響越嚴重,用于實施和驗證軟件的定義措施就越嚴格。
為 SEooC 選擇汽車安全完整性等級 (ASIL) 可能會有問題。簡單的答案是始終開發(fā)到最高 ASIL 級別 (ASIL D),以便與任何項目集成而無需進行重大返工,并且跨行業(yè)標(biāo)準(zhǔn)的映射也更容易。不利的一面是,它使那些 SEooC 比那些開發(fā)到較低 ASIL 的 SEooC 貴得多。
如何獲取 SEooC
SEooC 可以提供嵌入式組件作為安全系統(tǒng)的核心部分并降低成本。然而,設(shè)計用于在安全環(huán)境中重用的嵌入式組件不可避免地很復(fù)雜,因此必須深思熟慮地采購這些組件。為了獲得最佳結(jié)果,他們需要在能夠滿足安全產(chǎn)品生命周期需求的環(huán)境中進行開發(fā)。
最佳實踐是開發(fā)一個完整的 ISO 26262 第 6 節(jié)安全元素,其中包含準(zhǔn)備重用的假設(shè)和測試用例。這需要由項目管理系統(tǒng)支持,該系統(tǒng)允許每個客戶使用在半獨立項目中維護的 SEooC,以便整個軟件維護生命周期可以獨立應(yīng)用于該項目。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19153瀏覽量
306401 -
汽車電子
+關(guān)注
關(guān)注
3027文章
7990瀏覽量
167419 -
JAVA
+關(guān)注
關(guān)注
19文章
2973瀏覽量
104901
發(fā)布評論請先 登錄
相關(guān)推薦
評論