邱兆陽
(北京全路通信信號研究設計院集團有限公司,北京 100070)
承擔安全關鍵功能的信號控制系統,隨著近年來歐洲安全標準的引入、國標轉化和安全評估的普及,其開發過程的規范性越來越好,聯鎖和列控系統的開發廠商以及業主,對安全軟件以及承擔安全功能硬件的開發已經有了普遍的重視。
對于承擔安全關鍵功能的信號控制系統所使用的工具,由于對工具的安全認知不足、之前缺少相應的標準規范、工具帶來的問題不突出等因素,并未如同安全軟件、安全硬件一樣,引起開發廠家和業主的足夠重視,投入足夠的精力來規范工具的使用,以降低工具使用帶來的風險。
使用合適的軟件工具能夠降低在軟件開發過程中引入缺陷的風險,增加軟件開發過程的完整性,從而增強軟件產品的可靠性。由于使用軟件工具能夠減少軟件生產需要的時間和工作量,因而也具有良好的經濟效益。從另一個角度,為安全相關系統服務的工具,作為安全系統安全生命周期內影響安全的一個重要因素,也應該引起足夠的重視,以提升安全效益。
對于工具安全性的要求,EN50128-2001 以及EN50129-2003 中并沒有系統性的提出對工具安全性的要求,在EN50128-2011 中,采用IEC61508-2010 中對工具的分類原則,并在一個單獨的章節中,對于各類工具提出要求,新發布的EN50129-2018中也增加了對工具的要求。
關于工具的定義,在IEC61508 中定義軟件在線支持工具和軟件離線支持工具兩類。
軟件在線支持工具:能直接影響運行中安全相關系統的軟件工具。
軟件離線支持工具:支持軟件開發生命周期某個階段并且不能直接影響運行中安全相關系統的軟件工具。軟件離線支持工具分為T1/T2/T3 3 類,EN50128-2011 借鑒了這一分類和定義。
在EN50129-2018 中提到的安全相關工具,定義為執行或支持各生命周期階段活動,可能直接或間接影響安全的工具,本文將其稱為系統設計支持工具。
軟件的分類關系如圖1 所示,虛線內為本文所討論的工具。

圖1 工具分類關系Fig.1 Tool classification relationships
IEC61508-2010 中,對于軟件開發生命周期中可離線使用,并且不會直接在運行過程中對安全相關系統構成影響的軟件工具進行分類,如表1 所示(為保持含義準確性,保留了英文原文)。
需要說明一點,此處軟件工具的分類都指的是離線工具,即不與系統可執行代碼一起參與運行的軟件工具,與目標代碼一起參與即時運行的工具,不能劃分到這3 類工具中。因為根據IEC61508-2010,在線支持工具應作為安全相關系統軟件的一部分(A software on-line support tool shall be considered to be a software element of the safety related system) ;離線支持工具則作為軟件開發活動的一部分(Software off-line support tools shall be selected as a coherent part of the softwaredevelopment activities)。

表1 工具分類定義Tab.1 Tool classification definition
對 于T1,T2,T3 類 工 具 的 具 體 要 求,在IEC61508-2010-3 的7.4.4 節中規定。
在EN50128-2001 中,并未包括系統性的工具要求。隨著IEC61508-2010 的發布,EN50128 作為以IEC61508 為基礎標準的鐵路行業標準,直接采用IEC61508 對于軟件工具的分類定義,參見EN50128-2011 的3.1.42-3.1.44。
EN50128-2011 相比2001 版,專門增加了6.7節對工具和語言的要求,并且分別對T1、T2、T3類工具給出對應的要求,對T1 類工具的要求最少,對T3 類工具要求最嚴格。為方便理解,對3 類工具分別摘錄其中的一些要求,如表2 所示。
EN50128-2011 對于工具的要求條款與IEC61508-2010 中7.4.4 節的內容基本一致,相比IEC61508-2010,EN50128-2011 給出更具可操作性的要求,如提出工具替代人的原則,T3 類工具符合要求的證據給出方式。
需要注意一點,對工具的分類并不一定是直接對工具本身提出安全要求,不應用軟件SIL 的概念與工具的Tx 分類來做映射,同樣作為T3 類的兩個工具,會因為輸出故障檢測手段的不同,而對工具本身產生差異較大的要求。

表2 T3類工具要求摘錄Tab.2 Extract from T3 tools requirements
EN50129-2003 中并沒有系統性地對軟件工具提出要求,只是在B.5 技術安全報告的安全相關應用條件章節中,要求考慮輔助設備和工具的安全性證明。但并沒有就如何分析進行分析,以及接受標準等提出要求。
在新發布的EN50129-2018 中增加了一個新章節,內容包括既有系統的復用、安全相關工具,以及物理安全和IT 信息安全。
其中在安全相關工具小節,工作組參考了IEC61508-2010-3 中工具相關章節的內容,認為并沒有必要強調T1/T2/T3 類工具的劃分。并且只對直接可能影響安全的工具給出要求(等價于IEC61508-2010-3 中的T3 類工具)。
EN50129-2018 中提到的安全相關工具,定義為執行或支持各生命周期階段活動,可能直接或間接影響安全的工具,如表3 所示。
與EN50128-2011 相比,EN50129-2018 中提到的工具范圍更大,包括產品生命周期中用到的所有可能對安全有直接或間接影響的工具,而且EN50129-2018 中提到對安全的影響,不再局限于對執行代碼(數據)的影響,而是從安全相關功能的設計或實現角度出發,涉及的范圍更廣。從另外一個角度,EN50129-2018 對工具的要求,填補了歷史版本對工具管理的空白。

表3 EN50129工具分類Tab.3 EN50129 tool classification
EN50129-2018 對工具的分類,不考慮工具的范圍,可以與EN50128-2011 的分類進行映射,如表4 所示。除分類外,EN50129-2018 同樣要求工具應作為開發活動的一部分統一考慮,一個工具到另一個工具的接口應盡量實現自動化,以減少中間的人為錯誤。

表4 工具分類映射Tab.4 Tool classification mapping
對于直接影響安全的工具,EN50129-2018 提出要求,如表5 所示。
需要注意的是,EN50129-2018 特別提到,軟件開發的支持工具并不在EN50129-2018 的范圍內,而是由EN50128 來規定。
從EN50129-2018 對工具的要求來看,分類簡潔,對于直接影響安全的工具所出的要求容易實施,更多考慮了工程實踐,以及當前能達到的最佳實踐技術。從工具的實際運用情況來看,EN50129-2018 提到的5 項可選技術要求,與EN50128-2011 的有所接近,提出的要求更加簡明扼要,但EN50128-2011提出的要求更為具體。

表5 直接影響安全的工具要求Tab.5 Requirements for tools that directly affect safety
但是對于間接影響安全的工具,EN50129-2018的要求并不明確,只是籠統地提出了幾條要求,可能造成標準執行的困惑。
IEC62279-2015 是以EN50128-2011 為基礎,經部分少量修改形成的IEC 標準,國內的GB/T 28808 一般會等同采用IEC62279 標準。
從上面幾小節的介紹可以發現,無論是IEC61508,還是EN50128 或EN50129,在對工具提出規范和約束時,都與產品的SIL 無關,這在執行時會造成一定的困惑。比如某工具UNITOOL 為安全相關產品T3 類工具,該工具用于SIL2 產品時應進行的安全活動與該工具用于SIL4 產品時應進行的安全活動,沒有明顯的差異。
雖然在EN50128-2011 及EN50129-2018 中都提到了需要確認所有工具和相關過程與安全完整性要求相適應,但并未給出其他可以指導實施,與安全完整性相關的技術要求。
IEC62279-2015 在對EN50128-2011 為數不多的幾條修訂中,就包括增加工具類別和產品安全完整性之間關系的說明,這樣從實踐的角度,可以更好的指導工具的確認過程。
IEC62279-2015 增加的內容,如表6 所示。

表6 工具類型和產品SIL安全完整性等級之間關系Tab.6 Illustrative relation between tool type and product SIL
根據表6 所示,再以上面提到的UNITOOL 工具為例,該工具用于SIL2 產品時,可以選擇“在類似環境下成功使用的證據”作為確認方法 ;該工具用于SIL4 產品時,則選擇“運行一個廣泛認可的、具有確定性結果的測試用例/測試套件庫,用于確定功能完整性”來作為確認方法 。
根據上面幾個標準規范對工具要求的分析,對比如表7 所示。
IEC61508 作為整個電子/電氣/可編程系統的基礎標準,對工具的分類根據對安全性影響,提出基礎分類要求,EN50128-2011 直接采用IEC61508 對工具的分類定義;相比EN50128-2011,EN50129-2018 對工具的分類更為簡化,容易理解,避免了對工具分類的混淆;同時EN50129-2018 從系統的角度對工具使用提出要求,覆蓋更廣泛;IEC62279-2015相對EN50128-2011,增加了工具分類與產品SIL 的對應關系,更有利于解決工具確認實施的不確定性。
以上4 個標準中,對于工具與產品SIL 間的關系均涉及較少,也未明確如何評估軟件工具的可置信度水平,從而根據其可置信度水平對軟件進行后續的安全管理。

表7 標準要求對比Tab.7 Standard requirements comparison
目前信號關鍵安全產品的設計開發普遍都經過安全認證,從目前項目的實際執行情況來看,對工具的規范管理沒有引起足夠的重視,隨著IEC62279-2015 對應國標版的即將發布,以及EN50129-2018的發布,工具開發使用將更加規范。