軌道交通運控CBTC系統安全軟體開發過程介紹論文

才智咖 人氣:2.57W

運控CBTC系統是一個複雜的安全系統,其中的安全軟體開發一直是國內的薄弱環節。本文介紹了按照歐洲鐵路安全標準的安全產品和安全軟體的開發,說明在開發中需要重視生命週期的每個環節,採用嚴格的開發過程,有效的技術和工具,才能開發出符合安全目標的軟體,從而保障整個運控CBTC系統的安全性。

軌道交通運控CBTC系統安全軟體開發過程介紹論文

1 運控CBTC系統介紹

在軌道交通建設的各個子系統中,執行控制系統是非常重要的一個子系統,因為它關係到整體的運營效率,並保障運營安全。

CBTC是Communication Based Train Control的簡稱,作為新一代的運控系統,它的特點是用無線通訊媒體來實現列車和地面的雙向通訊,用以代替軌道電路作為媒體來實現列車執行控制。 CBTC的突出優點是具有車地雙向通訊,而且傳輸資訊量大,傳輸速度快,很容易實現移動自動閉塞系統,大量減少區間敷設電纜,減少一次性投資及減少日常維護工作,可以大幅度提高區間通過能力,靈活組織雙向執行和單向連續發車,容易適應不同車速、不同運量、不同型別牽引的列車執行控制等等。在CBTC中不僅實現列車執行控制,而且可以為執行管理服務,因為雙向無線通訊系統,既可以有安全類資訊雙向傳輸,也可以雙向傳輸非安全類資訊,例如車次號、乘務員班組號、車輛號、運轉時分、機車狀態、油耗引數等等大量機車、工務、電務等有關資訊。利用CBTC既可以實現固定自動閉塞系統(CBTC-FAS),也可以實現移動自動閉塞系統(CBTC-MAS)。

2 安全產品的開發

運控CBTC是一種安全苛求系統,它和一般計算機系統應用的區別在於安全苛求系統往往涉及人員傷亡、重大財產損失等安全問題。安全苛求系統強調的是沒有絕對的安全,安全性的提高是以人力、物力、財力的投入為代價的,要在安全性和經濟性找到平衡點。

鐵路運控系統安全方面被廣泛認可的標準是EN50126/8/9等歐洲標準:

(1)EN50126:鐵路應用 - 可靠性、可用性、可維護性和安全性(RAMS)規範和說明

(2)EN50129:鐵路應用 - 安全相關電子系統;

(3)EN50128:鐵路應用 - 鐵路控制和防護系統的軟體。

根據以上歐洲標準,安全產品開發應該遵循嚴格的安全產品生命週期,並基於下面幾個方面的工作來確保系統安全:

(1)質量管理的措施;

(2)安全管理的措施;

(3)功能和技術方面安全性的措施。

安全的對立面是風險和故障,安全系統開發的關鍵是對系統進行危險和風險分析(Hazard Analysis and Risk Analysis),找出系統可能的所有安全隱患和危險模式,採取相應的對策以降低故障率,使得最終的系統滿足使用者對於安全性的要求。

需要注意的是,安全管理和質量管理需要貫穿整個產品生命週期過程中,在產品生命週期的每個階段都要有安全管理的手段,例如安全分析,安全評審,安全的批准,以及質量的管理的措施,例如文件的評審,質量的審查,以及質量的批准,一般來說,需要由獨立於開發團隊之外的質量團隊和安全團隊來進行這些工作。

3 安全軟體開發

3.1 概述

運控CBTC系統是基於現代通訊和計算機技術的控制系統,其中的功能絕大多數由軟體實現,所以軟體的安全性直接關係到系統的安全性。系統的安全完善度等級越高,其對應的軟體的安全完善度要求就越高。因為軟體沒有物理失效,所以對於軟體的安全性主要是其正確性,安全軟體的目標主要是下面兩點:

(1)確保軟體中殘存的的錯誤足夠的少;

(2)當軟體殘存的的錯誤被觸發時,系統產生危險的概率要足夠低。

對於第1點,主要是採用嚴格的軟體開發過程和一些技術方法(如評審、測試、形式化驗證)來儘量消除軟體中殘存的錯誤,安全完善度等級越高的軟體要求的開發過程就越嚴格;對於第2點,主要是採用一些冗餘技術,如差異化,多重防護等手段,安全完善度等級越高就要求軟體採取的技術手段就越多。對於第 2點需要注意的是,冗餘技術的採用不可避免增加了系統的複雜性,而複雜性是安全性的大敵,越複雜的系統就越容易產生錯誤,所以在具體的應用時需要設計者掌握好這個平衡,確保增加的冗餘設計能夠真正有效的增加系統安全性。

3.2 安全軟體生命週期

安全軟體開發的生命週期如下,需要注意的是安全管理和質量管理同樣需要貫穿整個生命週期過程中。

整個安全軟體生命週期可以分為軟體設計開發階段和軟體測試驗證階段,軟體的設計開發階段的工作主要由軟體開發團隊完成,包括編寫軟體需求、設計軟體架構、進行詳細設計及編碼工作,具體包括:

(1) 在軟體需求階段,軟體設計人員經過對系統需求的充分一致性、完備性、明確性的分析,定義系統軟體需求。在進行軟體需求定義時,軟體設計人員使用的方法包含:功能分解、物件導向分析、建模、模擬、業務分析、原型、場景分析等技術手段輔助定義軟體需求,同時,充分考慮軟體的時效性、記憶體容量、程式語言、作業系統環境和資源限制。

(2)在軟體架構階段,軟體設計人員根據軟體需求設計系統軟體的頂層結構和軟體模組,如果類似的頂層軟體結構已經存在,設計人員需要根據需求對頂層軟體結構進行調整,保證軟體需求和複用的軟體結構能夠對應。針對新的或不瞭解的軟體功能需求,設計人員可以實施探索性的.實驗,構造原型軟體,對需求進行驗證。

(3) 在軟體詳細設計階段,軟體設計人員根據針對軟體架構中定義的模組進行詳細設計,每一個模組應該被分解為能夠被編碼、編譯、測試的底層軟體單元。如果軟體模組能夠被複用,設計人員應該採用合適的手段保證軟體模組滿足軟體需求。

(4)在軟體編碼階段,軟體開發人員應該從配置管理工具中獲取已完成的軟體產品(包括:原始碼檔案,測試指令碼和文件)。開發人員根據軟體詳細設計進行重新編碼或者修改既有的程式碼,編碼完成後應確保沒有編譯錯誤和報警。開發人員編碼工作應該符合公司制定的軟體編碼標準,針對軟體程式碼作出的修改,應有文件記錄。軟體開發人員應該定義測試案例,用於除錯程式碼,測試應該能夠保證演算法和軟體功能的正確性。

軟體的測試驗證工作主要由軟體測試驗證團隊完成,包括軟體的單元測試、軟體的整合測試、軟體的驗證測試工作,具體包括:

(1)在軟體的單元測試階段,軟體測試人員通過配置軟體測試環境,建立測試驅動,編寫打樁程式實現對於每個軟體單元模組的有效測試,驗證軟體邊界輸入和超過邊界輸入的正確反應。

(2)在軟體整合測試階段,軟體測試人員通過配置軟體測試環境,建立測試驅動,編寫打樁程式實現對於多個軟體模組整合在一起的互動功能進行測試,驗證軟體典型的功能和非正常的功能。

(3)在軟體驗證測試階段,軟體測試人員根據專案所有的系統級、硬體級和軟體級文件,通過分析或測試,驗證軟體所有的需求被實現、測試通過並達到標定的安全完整度等級,出具軟體驗證報告。

因為軟體的安全性主要在於正確性,所以軟體驗證和測試在安全軟體的生命週期中佔有非常重要的作用,通過獨立團隊的驗證和測試活動,可以確保在設計的早期發現軟體設計的錯誤,確保下級的設計完全滿足上級設計要求的,確保最大程度的發現軟體中殘存的錯誤。

3.3 安全軟體開發工具要求

在安全軟體開發過程中不可避免要用到一些軟體工具,這些軟體工具對最終軟體的質量有直接或者間接的影響,為了保證軟體安全性,對於用到的工具有具體的要求,工具的要求如表1所示。

4 結束語

運控CBTC系統是一個複雜的安全系統,其中的安全軟體開發一直是國內的薄弱環節。上海富欣智慧交通控制有限公司(前身是上海貝爾交通自動化事業部)通過多條運控CBTC的開通經驗,以及自主化開發CBTC產品的經驗積累,越來越認識到按照安全產品生命週期這樣的系統工程方法來進行安全產品開發是保證安全的前提和基礎,其中的測試和驗證是保證安全的一個重要環節。

作者簡介