張毅楠 吳 昊
(北京全路通信信號(hào)研究設(shè)計(jì)院有限公司,北京 100073)
張毅楠,男,碩士畢業(yè)于清華大學(xué),助理工程師,軟件開發(fā)工程師。主要研究方向包括綜合監(jiān)測(cè)、故障診斷,曾參與十二五國家科技支撐計(jì)劃課題:全息化運(yùn)行環(huán)境感知系統(tǒng),及院科研項(xiàng)目:C3綜合測(cè)評(píng)系統(tǒng)的研究。
目前我國的高速鐵路正處在快速發(fā)展的進(jìn)程中。為保障行車安全,列車控制系統(tǒng)從設(shè)計(jì)開發(fā)至正式運(yùn)營過程中有多個(gè)環(huán)節(jié)需要進(jìn)行許多輪次的細(xì)致而周密的測(cè)試。對(duì)于我國高速鐵路上采用的CTCS-3級(jí)列車控制系統(tǒng)(以下簡稱C3系統(tǒng))及其后備的CTCS-2級(jí)列控系統(tǒng)(以下簡稱C2系統(tǒng)),在實(shí)驗(yàn)室內(nèi)需進(jìn)行系統(tǒng)功能測(cè)試(System Function Test,SFT)以驗(yàn)證其功能是否滿足相關(guān)的技術(shù)標(biāo)準(zhǔn)及規(guī)范。這些技術(shù)標(biāo)準(zhǔn)和規(guī)范如表1所示。
表1 CTCS-3級(jí)列控系統(tǒng)功能測(cè)試所依據(jù)的標(biāo)準(zhǔn)和規(guī)范
表1中,第1到第7項(xiàng)為系統(tǒng)性標(biāo)準(zhǔn)或規(guī)范,第8到第11項(xiàng)為各子系統(tǒng)的標(biāo)準(zhǔn)或規(guī)范。
C3系統(tǒng)的系統(tǒng)功能測(cè)試的傳統(tǒng)流程中,各個(gè)測(cè)試步驟主要由專業(yè)的系統(tǒng)測(cè)試人員和子系統(tǒng)的專家來完成。對(duì)專業(yè)測(cè)試人員和專家的培養(yǎng)需要耗費(fèi)大量的人力和時(shí)間,效率較低且不能保證測(cè)試人員個(gè)體所具備知識(shí)的準(zhǔn)確性和全面性,所以難以保證通過測(cè)試能夠?qū)3系統(tǒng)的功能進(jìn)行準(zhǔn)確評(píng)價(jià);另一方面,由于C3系統(tǒng)功能測(cè)試的測(cè)試序列數(shù)目龐大,操作比較復(fù)雜,測(cè)試過程中生成的日志數(shù)據(jù)繁雜多樣,在短時(shí)間內(nèi)依靠人工進(jìn)行分析和評(píng)價(jià),工作強(qiáng)度大而且準(zhǔn)確性低,無法及時(shí)發(fā)現(xiàn)系統(tǒng)潛在的問題。
鑒于傳統(tǒng)的C3系統(tǒng)功能測(cè)試的上述弊端,為了節(jié)省人力物力資源以及提高測(cè)試分析的效率,本文提出了一種將相關(guān)的標(biāo)準(zhǔn)和規(guī)范形式化描述為計(jì)算機(jī)能夠理解并處理的規(guī)則,并使用推理機(jī)系統(tǒng)輔助進(jìn)行C3系統(tǒng)功能測(cè)試的方案,并研究了基于CTCS標(biāo)準(zhǔn)及規(guī)范的系統(tǒng)功能測(cè)試評(píng)價(jià)系統(tǒng)需要解決的主要技術(shù)難點(diǎn),包括以下內(nèi)容。
1)如何將C3級(jí)列控系統(tǒng)相關(guān)的標(biāo)準(zhǔn)和規(guī)范形式化描述為計(jì)算機(jī)能夠識(shí)別和處理的規(guī)則;
2)如何將產(chǎn)生于不同子系統(tǒng)、來源于不同監(jiān)測(cè)途徑、格式不統(tǒng)一、數(shù)據(jù)量巨大的監(jiān)測(cè)數(shù)據(jù)處理成為能被計(jì)算機(jī)快速高效處理的數(shù)據(jù);
3)如何根據(jù)數(shù)據(jù)進(jìn)行有效的推理,即如何讓輸入的監(jiān)測(cè)數(shù)據(jù)驅(qū)動(dòng)推理機(jī)內(nèi)部狀態(tài)的更新,最終得到系統(tǒng)期望的輸出結(jié)果。
C3系統(tǒng)的相關(guān)標(biāo)準(zhǔn)和規(guī)范是C3系統(tǒng)設(shè)計(jì)和開發(fā)的基礎(chǔ),也是系統(tǒng)測(cè)試和驗(yàn)證的重要依據(jù)。表1中的標(biāo)準(zhǔn)和規(guī)范是用人的自然語言書寫的,若想讓計(jì)算機(jī)能夠識(shí)別和理解,需要將相關(guān)的標(biāo)準(zhǔn)和規(guī)范翻譯為計(jì)算機(jī)能夠理解的語言,即標(biāo)準(zhǔn)和規(guī)范的建模和形式化表示。目前已有許多專家學(xué)者在列控系統(tǒng)的標(biāo)準(zhǔn)和規(guī)范的建模和形式化驗(yàn)證方面做了有意義工作[1-5]。但這些形式化表示的目的主要在標(biāo)準(zhǔn)和規(guī)范本身的檢驗(yàn)方面,即通過建模驗(yàn)證標(biāo)準(zhǔn)或規(guī)范本身是否完備,并未考慮到形式化表示的標(biāo)準(zhǔn)或規(guī)范供推理機(jī)使用的可能性,也未能將其應(yīng)用于對(duì)列控系統(tǒng)或其中的子系統(tǒng)的功能評(píng)價(jià)。為此本文提出了一種新的形式化表示方法。
由于C3系統(tǒng)功能測(cè)試主要針對(duì)的是各子系統(tǒng)協(xié)同工作的情況,要求各子系統(tǒng)在成功建立連接后在規(guī)定的時(shí)間內(nèi)向通信對(duì)方發(fā)送正確的數(shù)據(jù),而這個(gè)過程中的時(shí)間間隔和發(fā)送的數(shù)據(jù)等正是由相關(guān)的標(biāo)準(zhǔn)和規(guī)范所規(guī)定的。所以為了對(duì)標(biāo)準(zhǔn)和規(guī)范進(jìn)行建模,可以先把各子系統(tǒng)間發(fā)送和接收數(shù)據(jù)的過程用UML時(shí)序圖表示。以C3系統(tǒng)功能測(cè)試中的列車自動(dòng)防護(hù)系統(tǒng)(ATP)呼叫無線閉塞中心(RBC)并在RBC中注冊(cè)的過程為例,其中參與的對(duì)象有列車司機(jī)、人機(jī)界面(DMI)、ATP和RBC,描述它們之間數(shù)據(jù)交互的時(shí)序圖如圖1所示。
UML時(shí)序圖可以很清楚地表示出消息在各對(duì)象間是如何發(fā)送和接收的,因此可以將標(biāo)準(zhǔn)或規(guī)范形式化表示為消息序列,亦即將標(biāo)準(zhǔn)或規(guī)范中的規(guī)定轉(zhuǎn)化為消息發(fā)送的時(shí)間、消息的內(nèi)容等能夠量化表示的對(duì)象屬性,并將不同的消息組織成為序列,從而完成從標(biāo)準(zhǔn)和規(guī)范到計(jì)算機(jī)中對(duì)象的轉(zhuǎn)化。
消息序列中消息的組織也需要根據(jù)標(biāo)準(zhǔn)和規(guī)范確定。C3系統(tǒng)各子系統(tǒng)間消息的傳遞是有序的。消息的發(fā)送和接收在時(shí)間上有先后順序,在邏輯上有因果關(guān)系。此外在實(shí)現(xiàn)一個(gè)功能時(shí),有些消息必須出現(xiàn),有些消息則可有可無,而有些消息不允許出現(xiàn)。為了體現(xiàn)這些消息的不同,在對(duì)標(biāo)準(zhǔn)進(jìn)行形式化的過程中,可將某一過程中涉及的消息分為3類。
1)必須出現(xiàn)的消息(required message):這類消息在系統(tǒng)完成特定功能時(shí)必須在指定的時(shí)機(jī)出現(xiàn)。
2)可以出現(xiàn)的消息(optional message):這類消息為可選的消息,可以在完成特定功能的過程中出現(xiàn),也可以不出現(xiàn)。
3)不允許出現(xiàn)的消息(not allowed message):這類消息不應(yīng)在完成特定功能時(shí)出現(xiàn),如果出現(xiàn)了這類的消息,則可判定系統(tǒng)的功能不符合標(biāo)準(zhǔn)和規(guī)范。
圖2顯示了required message的組織形式。對(duì)于optional類和not allowed類的消息,組織形式和required類的消息類似。
圖2中由若干個(gè)消息組成一個(gè)消息組(group),各個(gè)消息組中的消息是有先后順序要求的。若干個(gè)消息組組成一個(gè)測(cè)試階段(phase),同一個(gè)階段中的各個(gè)消息組間是沒有先后順序的,亦即是并行的。不同階段之間的消息是有先后順序的,亦即只有前一個(gè)階段結(jié)束,后一個(gè)階段中的消息才允許出現(xiàn)。
將C3系統(tǒng)各子系統(tǒng)間的消息按圖2所示的形式進(jìn)行組織,即可覆蓋標(biāo)準(zhǔn)和規(guī)范中規(guī)定的消息之間的時(shí)序和邏輯關(guān)系,這樣就完成了與系統(tǒng)功能測(cè)試有關(guān)的標(biāo)準(zhǔn)和規(guī)范的形式化表示。
基于CTCS標(biāo)準(zhǔn)及規(guī)范的系統(tǒng)功能測(cè)試評(píng)價(jià)系統(tǒng)面向的是C3系統(tǒng)線路級(jí)別的功能測(cè)試,測(cè)試過程中得到的數(shù)據(jù)或消息不僅來源多樣,而且數(shù)據(jù)量巨大。如果將這些數(shù)據(jù)不加處理地送往推理機(jī)進(jìn)行處理,那么效率將受到很大影響。所以對(duì)于得到的監(jiān)測(cè)數(shù)據(jù),有必要進(jìn)行預(yù)處理,去除消息中的冗余和不一致,保留有用的信息。
數(shù)據(jù)預(yù)處理的邏輯框圖如圖3所示。根據(jù)C3系統(tǒng)監(jiān)測(cè)數(shù)據(jù)的特征,主要采用數(shù)據(jù)處理技術(shù)有數(shù)據(jù)集成和數(shù)據(jù)歸約。
首先將來自不同動(dòng)態(tài)監(jiān)測(cè)機(jī)的數(shù)據(jù)放入接收數(shù)據(jù)隊(duì)列,然后執(zhí)行圖3中數(shù)據(jù)預(yù)處理操作。
數(shù)據(jù)集成的目的是解決來自不同監(jiān)測(cè)源的代表同一概念的數(shù)據(jù)屬性的不一致和冗余。數(shù)據(jù)不一致包括格式不一致,也包括內(nèi)容不一致。例如:來自不同監(jiān)測(cè)源的數(shù)據(jù)所包含的時(shí)間戳格式不一致,而且時(shí)間會(huì)略有偏差。這就需要在數(shù)據(jù)集成階段將動(dòng)態(tài)監(jiān)測(cè)機(jī)發(fā)送消息的時(shí)間戳轉(zhuǎn)換成統(tǒng)一格式,并設(shè)置時(shí)間戳的值為數(shù)據(jù)預(yù)處理機(jī)的本地時(shí)間。
數(shù)據(jù)歸約的目的是減小數(shù)據(jù)規(guī)模。通過對(duì)周期性發(fā)送的重復(fù)數(shù)據(jù)進(jìn)行歸約,可以避免重復(fù)發(fā)送大量的冗余數(shù)據(jù),減小推理機(jī)的處理量,提高推理機(jī)的效率。
通過在進(jìn)行推理之前對(duì)數(shù)據(jù)進(jìn)行適當(dāng)?shù)念A(yù)處理,可以顯著提高測(cè)試評(píng)價(jià)的總體質(zhì)量,減少所需的時(shí)間。數(shù)據(jù)預(yù)處理后的數(shù)據(jù)將被放入發(fā)送隊(duì)列,等待發(fā)送給推理機(jī),此時(shí)所有監(jiān)測(cè)數(shù)據(jù)都已轉(zhuǎn)換為統(tǒng)一格式的消息。消息由以下幾部分組成。
1)發(fā)送方(sender)
描述消息的發(fā)送方。
2)接收方(receiver)
描述消息的接收方。
3)消息類型(type)
描述消息的來源,包括設(shè)備的名稱及網(wǎng)絡(luò)分層的名稱。如:聯(lián)鎖和RBC之間應(yīng)用層通信的消息類型為:CBI_RBC_APP。
4)消息標(biāo)識(shí)(id)
用于區(qū)分同一消息類型中的不同消息。如:ATP和RBC之間的應(yīng)用層通信的消息類型均為PRI_APP,但不同的消息具有不同的id。如:ATP發(fā)送給RBC的列車位置報(bào)告消息的id為M136,RBC發(fā)送給ATP的行車許可消息的ID為M3。
5)時(shí)間戳(timestamp)
描述消息產(chǎn)生的時(shí)間。
6)變量(variable)
在消息中使用“變量名—變量值”的有序?qū)γ枋龅囊粋€(gè)屬性。
7)信息包(packet)
在消息中表示信息的結(jié)構(gòu)。例如消息類型為PRI_APP的行車許可消息(M3),包含信息包P27(靜態(tài)速度曲線)。在信息包P27中,還可以包含變量V_STATIC(線路最大允許列車行駛速度)等變量。
一個(gè)消息的示意圖如圖4所示。
在第2節(jié)中介紹了標(biāo)準(zhǔn)和規(guī)范的形式化表示方法。在實(shí)際操作過程中,為了對(duì)C3系統(tǒng)的某一特定功能進(jìn)行測(cè)試,往往把系統(tǒng)的某些基本功能單元編輯成子序列,如圖1中所示的ATP呼叫RBC并在RBC中注冊(cè)的過程就可以作為一個(gè)基本功能點(diǎn)被編輯成為子序列。編輯完成后的子序列是以消息序列表示的已經(jīng)形式化的一條規(guī)則,該規(guī)則中包含有必須出現(xiàn)的消息定義、可能出現(xiàn)的消息定義、不允許出現(xiàn)的消息定義等。
當(dāng)推理機(jī)收到經(jīng)過預(yù)處理的消息時(shí),通過關(guān)系運(yùn)算和邏輯運(yùn)算判定消息是否匹配,其流程如下。
1)將待評(píng)判消息中的消息發(fā)送者、消息接收者、消息類型、消息ID與預(yù)期結(jié)果消息中的相同字段進(jìn)行逐一比較。如果相同,繼續(xù)下一步,如果出現(xiàn)不相同的項(xiàng),則返回錯(cuò)誤信息,表示不匹配;
2)以預(yù)期消息中所包含的每個(gè)變量的名稱作為鍵(key),在待評(píng)判消息中查找與該鍵對(duì)應(yīng)的值(value),即變量值。如果能找到,則繼續(xù)下一步,否則,返回錯(cuò)誤信息,表示不匹配;
3)分別取出待評(píng)判消息和預(yù)期消息中的該變量所對(duì)應(yīng)的值,如果預(yù)期消息中的該值以“>”、“<”、“!”、“>=”、“<=”等關(guān)系運(yùn)算符開始,則對(duì)這兩個(gè)值進(jìn)行關(guān)系計(jì)算;否則,判定兩個(gè)值是否相同。若關(guān)系運(yùn)算的結(jié)果為真或兩個(gè)值相同,繼續(xù)下一步。否則,返回錯(cuò)誤信息,表示不匹配;
4)對(duì)消息中的信息包依次進(jìn)行2)~3)步的判定流程;若結(jié)果為真,返回匹配,繼續(xù)進(jìn)行評(píng)判。否則,返回不匹配。
對(duì)于不允許出現(xiàn)的消息的匹配過程,與上述過程類似,只是其中的邏輯相反,即:若值不相同,則進(jìn)行下一步。否則,返回不匹配的結(jié)果。
在推理機(jī)對(duì)必須出現(xiàn)的消息和不允許出現(xiàn)的消息進(jìn)行推理匹配的同時(shí),推理機(jī)還需要對(duì)消息進(jìn)行老化處理,老化過程從順序性和時(shí)效性兩方面對(duì)消息的正確性進(jìn)行評(píng)估,用以驗(yàn)證消息發(fā)送的次序和超時(shí)時(shí)間。
基于CTCS標(biāo)準(zhǔn)及規(guī)范的系統(tǒng)功能測(cè)試評(píng)價(jià)系統(tǒng)可針對(duì)實(shí)時(shí)監(jiān)測(cè)到的數(shù)據(jù)進(jìn)行推理和評(píng)判,并對(duì)系統(tǒng)的功能表現(xiàn)是否符合標(biāo)準(zhǔn)和規(guī)范給出建議。此外,還有許多值得深入研究的方向,比如:C3系統(tǒng)運(yùn)行狀態(tài)數(shù)據(jù)的集成及記錄技術(shù),數(shù)據(jù)優(yōu)化存儲(chǔ)、管理和查詢技術(shù),測(cè)試評(píng)價(jià)結(jié)果的集成展現(xiàn)技術(shù)等。通過深入研究可以使未來的測(cè)試評(píng)價(jià)系統(tǒng)具備根據(jù)歷史運(yùn)行數(shù)據(jù)進(jìn)行評(píng)價(jià)的功能,并能通過圖形、圖像、表格等豐富的手段直觀化地展示評(píng)價(jià)的結(jié)果。
確保列控系統(tǒng)安全穩(wěn)定地運(yùn)行關(guān)乎人民的生命財(cái)產(chǎn)安全和國家交通運(yùn)輸動(dòng)脈的暢通。本文所述的基于CTCS標(biāo)準(zhǔn)及規(guī)范的系統(tǒng)功能測(cè)試評(píng)價(jià)系統(tǒng),可以提高系統(tǒng)功能測(cè)試階段的故障分析和診斷的效率,能輔助測(cè)試人員對(duì)列控系統(tǒng)的功能給出科學(xué)、綜合的評(píng)價(jià),對(duì)高速鐵路列控系統(tǒng)的不斷發(fā)展完善和應(yīng)用具有積極的意義。
[1] MCDERMID J. Issues in the Development of Safety-critical Systems[C]. Proceedings of Safety-Critical Systems: Current Issues, Techniques and Standards. Chapman & Hall: 1993: 16-42.
[2] LINDERBERG J F. The Swedish State Railway’s Experience with N-Version Programmed Systems[C]. Proceedings of Directions in Safety-Critical Systems Conference. Springer-Verlag: 1993: 36-42.
[3] HANSEN K M. Validation of A Railway Interlocking Model[C]. Proceedings of FME’94: Industrial Benefit of Formal Methods. Lecture Notes in Computer Science. Barcelona, Spain: Springer-Verlag, 1994: 582-601.
[4] LAERS H E. Specifying Railway Interlocking Requirements for Practical Use[C]. Proceedings of SAFECOMP’96. Vienna, Austria, 1996:74-80.
[5] ERIKSSON L H. Formal Method in Development and Testing of Safety-Critical System: Railway Interlocking System[C]. Proceedings of SAFECOMP ’96. Vienna, Austria: 1999: 35-41.
[6]陳封能, 斯坦巴赫, 庫瑪爾. 數(shù)據(jù)挖掘?qū)д揫M]. 范明, 范宏建,譯. 北京:人民郵電出版社,2011.