沒有工具和軟件就無法建造房屋。IEC 61508談到了兩種類型的軟件工具。作為應(yīng)用程序的一部分運行的在線工具,以及在開發(fā)或制造階段使用的離線工具。在線軟件工具與安全系統(tǒng)中的任何其他軟件具有相同的要求,但是用于開發(fā)或測試產(chǎn)品中軟件的離線軟件工具呢?離線軟件工具包括編譯器、編輯器、靜態(tài)分析工具和需求管理工具等。本博客討論了與 IEC 61508、ISO 26262 和 D0-178C/D0-330 等標(biāo)準(zhǔn)中的離線軟件工具相關(guān)的要求。
我注意到,與工具相關(guān)的功能安全要求遠(yuǎn)比網(wǎng)絡(luò)安全等其他高完整性領(lǐng)域要繁重得多。大多數(shù)網(wǎng)絡(luò)安全標(biāo)準(zhǔn)幾乎沒有與工具相關(guān)的要求,這讓我感到驚訝,因為它們沒有與集成電路開發(fā)相關(guān)的要求,而集成電路是大多數(shù)系統(tǒng)的基礎(chǔ)。
下圖顯示了與汽車 ISO 26262 要求兼容的過程。首先,列出了您計劃使用的所有工具。然后,如果您的開發(fā)過程中有其他東西會檢測到工具輸出中的錯誤,則無需對工具進(jìn)行進(jìn)一步分析,如下面的流程圖所示。雖然這不是嚴(yán)格的IEC 61508標(biāo)準(zhǔn),但我喜歡這種方法,因為對于大多數(shù)工具來說,它提供了一個快速簡便的退出點,官方流程最終到達(dá),但經(jīng)過更多步驟。
圖1 - 基于ISO 26262要求的簡化流程圖
回到IEC 61508流程,有3類定義的工具
T1 – 對可執(zhí)行代碼沒有影響的工具。IEC 61508-4:2010中給出的示例包括文本編輯器和需求管理工具。也許與文本中給出的示例更一致的描述是不用于生成代碼或驗證代碼的工具,但即便如此,也很難說文本編輯器只是一個 T1 工具。
T2 – 僅影響可執(zhí)行代碼驗證的工具,并且不能將錯誤注入代碼,但可能導(dǎo)致錯誤丟失,例如靜態(tài)時序分析工具
T3 – 可以在代碼中放置錯誤的工具,例如編譯器
第一個要求是應(yīng)管理工具的使用。這通常意味著在制定軟件安全計劃時,您應(yīng)該列出您計劃使用的所有工具、它們的用途以及您計劃使用的工具版本。 還需要說明該工具的理由。
接下來,根據(jù)上述定義將工具排名為 T1、T2 和 T3。如果一個工具被列為 T2 或 T3,那么您需要考慮該工具如何出錯,以及開發(fā)過程中還有哪些內(nèi)容會捕獲該錯誤(開發(fā)過程中固有的緩解措施)。如果沒有任何東西可以捕獲此類錯誤,則必須確定一些適當(dāng)?shù)姆椒▉頊p輕錯誤。
分類為 T2、T3 的工具還必須具有合適的文檔。此外,對于歸類為 T3 的工具,需要額外的證據(jù)證明它符合該文檔。證據(jù)可以基于使用中的證明或基于測試用例的工具驗證。
對于具有許多功能的復(fù)雜工具,每個功能都可以單獨分析,就好像它是幾個獨立的工具一樣。
在IEC 61508圈子里,關(guān)于軟件離線工具要求是否適用于硬件開發(fā)工具存在一些爭論。用于開發(fā)集成電路的工具包含在IEC 61508-2:2010附錄F的要求中,主要涉及在類似復(fù)雜性的項目中使用2年的證明使用。在汽車領(lǐng)域,更清楚的是,無論正在開發(fā)的硬件還是軟件,工具要求都適用。我相信這也是基于IEC 61508的開發(fā)的正確方法。
后來在IEC 61508-3中,表A.1提倡使用工具進(jìn)行需求管理,表A.3提倡使用經(jīng)過認(rèn)證的工具和經(jīng)過認(rèn)證的翻譯人員。
展望未來,有計劃改進(jìn)IEC 61508-3中的離線工具要求,請關(guān)注此空間。
審核編輯:郭婷
-
集成電路
+關(guān)注
關(guān)注
5388文章
11547瀏覽量
361823 -
編譯器
+關(guān)注
關(guān)注
1文章
1634瀏覽量
49130 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31172
發(fā)布評論請先 登錄
相關(guān)推薦
評論