令人好奇的是,不被認可的工具認證是什麼?

本文告訴您,專案經理要獲得功能安全認證,工具認證就是「不應該在內部做的事情」的代表實例之一。這是功能安全認證開發過程中經常被忽略但卻很重要的一項。簡而言之,這意味著「用戶必須根據自己的實際案例證明其用於開發之工具的有效性。」

IEC 61508 中規定了工具驗證資格,在功能安全認證開發中,安全功能所需的標準設計已於IEC 61508中加以描述,許多單項產品標準都參考了這一點,工具認證也是其中的一項。

工具認證是證明可靠性的重要項目,但一般產品開發過程中並不存在,因此如果忽視它,則可能發生大量反覆重工的風險。

在考慮工具認證時,首先需要考慮根據實際應用對軟體工具進行分類。

在IEC 61508中,工具依其對執行程式碼的影響程度分為T1到T3,T3被認為是最關鍵的工具。(資料來源:IEC 61508 第 2 版第 4 部分)

ISO 26262的要求比IEC 61508稍微嚴格,分為TCL1-3,是影響等級x缺陷偵測程度的組合,其中TCL3是最關鍵的工具(ISO 26262是汽車領域的專門工具)雖然其為一產品標準,但可說包含了基於IEC 61508的獨立標準。

 TD1TD2TD3
TI1TCL1TCL1TCL1
TI2TCL1TCL2TCL3

ISO 26262 中的 TCL(工具可信賴度)

*TI(工具影響):由於工具故障造成的影響程度

TI1=無影響,TI2= TI1 以外的影響

*TD(刀具錯誤檢測):可以防止或檢測因刀具故障而導致的錯誤的程度。

現在,我將解釋一下工具認證的實際挑戰。工具認證所需的方法和時間將取決於所使用的工具和實際應用,但關於ISO 26262工具認證的公開資訊廣泛,因此我在這裡提出以供參考。ISO 26262 建議基於以下四項進行工具認證。

1a. 使用歷史

1b. 工具開發過程的評估

1c. 軟體工具驗證

1d. 根據安全標準進行開發

T1  不產生可執行程式碼或資料的工具
T2  一種有助於測試和驗證的工具,如果發生故障,可能會漏掉缺陷,但不會在執行軟體中產生錯誤。
T3  產生可執行程式碼輸出的工具

根據IPA估計,涵蓋這些項目需要400多個小時,這是一個相當龐大的作業。

(摘錄 ISO 26262 中的所有項目 1a 至 d)

實驗內容工時
標準所需工具安全要求的分析53.5小時
設定車載系統和開發工具所需的安全級別7.5小時
從安全等級出發選擇軟體工具認證方法7.5小時
提出每種認證方法的安全要求101.5小時
提出一般開發中執行的品質確認請求40.0 小時
考慮滿足安全要求所需的具體工作78.5小時
提出工作項目與標準要求的差距分析34.0 小時
實驗報告製作80.0 小時
合計402.5小時

來源:IPAhttp://www.ipa.go.jp/files/000026859.pdf

另一方面,不僅要判斷工時數,還要判斷使用者本身是否能夠真正獲得目標工具的必要資訊。例如,即使要求提供者提供某種工具的使用歷程資訊,但由於調查工時和保密義務等原因,必要的資訊也可能不會被披露。如果其為開源或免費工具,則資料有可能一開始就不存在。這種工具認證的普遍作法在非汽車領域的發展也是如此。

工具認證要根據用例來確定,因此需要根據所開發的產品進行個體判斷,但一般來說,嵌入式產品開發中要求最高的工具是編譯器。這是因為編譯器中的缺陷對執行的程式碼影響很大,而且很難檢測到該缺陷。

在工具分類方面,常見的工具在IEC 61508下被分類為T3,在ISO 26262下被分類為TCL3。編譯工具認證在與功能安全認證相關的嵌入式開發中尤其重要。

如上所述,使用者自行進行關鍵工具(例如編譯器)認證是不切實際的。為此,現在有多家工具製造商提供了已獲得功能安全認證的編譯器。一般來說,支援功能安全認證的編譯器往往提供以下三種服務。

1. 修復服務版本

透過修復編譯器版本來提供支援。將繼續為該版本提供解決方法和錯誤修復等維護。

2. 第三方證明

該編譯器提供者先前已獲得第三方認證機構的工具認證。

3. Bug 報告和安全文件

將提供詳細的錯誤報告和文件以協助您獲得認證。

這些服務減少了工具認證所需的大部分工作,因此使用功能安全認證的編譯器是目前開發功能安全產品時的最佳選擇。事實上,在IAR,功能安全認證編譯器的使用者數量每年都呈現快速成長,無論在歐洲和美洲、日本和亞洲都是如此。

因此,在獲得功能安全認證時,工具的選擇在工時和風險方面極為重要。因此,讓我們以編譯器為例,仔細看看如何選擇明智的工具。

1. 概念階段前的編譯器選擇

編譯器需要在開發開始之前的概念階段就要使用的工具和次要版本與認證機構達成一致。換句話說,對於開發團隊本身來說,了解工具認證所涉及的研究工作/風險並在早期階段確定候選編譯器選項非常重要。

如果在此之後發生任何變化,即使同一工具的版本發生變化,也需要向認證機構提交變更報告並重新測試等任務。當認證機構要求披露編譯器的詳細資訊時,如果提供者沒有必要的資訊,用戶也無能為力,則很可能會陷入死胡同。根據了解,有許多專案在開發過程中被迫更改編譯器,導致量產進度嚴重延遲。

如果你在不了解工具認證的情況下採用傳統的開發流程,或者只是因為初期成本低而選擇開源或免費工具,這將直接影響開發工時以及能否通過認證,所以需要格外謹慎。

2. 編譯引擎和製造商的連續性

編譯器工具認證不是基於工具名稱,而是基於建置鏈的元件,例如編譯器引擎。例如,如果編譯引擎發生變化,即使工具名稱保持不變,也會被視為不同的工具,條件將發生顯著變化。

支援功能安全認證的產品即使在發表後也通常會經歷長期維護或衍生開發,因此應根據實際應用注意相同的編譯器引擎將繼續提供和維護的時間。

同樣,編譯器本身的提供者的連續性也很重要。如今,隨著全球企業之間的併購愈趨活躍,有必要調查判斷是否存在突然停止編譯器銷售和支援的風險。

由於這些是未來的主題,編譯器製造商很難做出明確的承諾,但可以透過檢查編譯器提供者過去的表現和路線圖來做出推測。例如,我們擁有諸如作為嵌入式編譯器製造商的悠久歷史、自成立以來一致的業務模式、獨立資本和財務穩健性(IR 資訊)等數據,因此我們可以讓用戶更安心。

3. 選擇優化選項

支援功能安全認證的編譯器若不是全面性的,其中最佳化選項和其他設定可以自由更改並且仍在工具認證的範圍內,要不就是在特定最佳化條件下(例如沒有最佳化)進行認證的編譯器。

對於後一種編譯器而言,如果未經優化其是在工具認證的範圍之內,但是一旦進行了優化,就超出了工具認證的範圍,所以第三方編譯器認證是無效的,如果以任何方式使用,則存在可能導致限製或額外費用的風險。無論您選擇我們的哪個編譯器最佳化選項,其都在工具認證範圍內,因此您可以根據開發專案的情況自由選擇。

4.工具認證證書期限

證書期限一般為5年左右。需要確認在此期限後是否進行證書更新和工具的持續維護。如果不繼續,建議諮詢認證機構或供應商以了解可能的風險。

由於我們的編譯器一直以來都是免費更新的,所以我們也十分著重後續服務,以使用戶不必擔心期限。實際上,還有其他因素影響軟體資產、軟體包和編譯器的選擇,例如 RTOS/中介軟體和函式庫,因此與編譯器供應商交換資訊非常重要。

如此一來,即使是單一編譯器,在工具認證方面也有很多細節需要注意,使用者很難自行取得必要的資訊。功能安全認證的關鍵不僅僅是工具認證,還在於能夠高效地從內部所有相關者以及供應商、合作夥伴、顧問和認證機構等相關者取得必要的資訊,而擁有合適的配合單位則是關鍵。

本文由IAR提供