王曉懿
(北京全路通信信號研究設(shè)計院有限公司,北京 100073)
隨著鐵路信號系統(tǒng)的發(fā)展,軟件在整個信號系統(tǒng)中的地位越來越重要。研究使用技術(shù)手段保證信號系統(tǒng)軟件研發(fā)的設(shè)計開發(fā)平臺有著十分重要的意義。
信號系統(tǒng)軟件設(shè)計開發(fā)的挑戰(zhàn)體現(xiàn)在以下幾個方面。第一,從組成結(jié)構(gòu)來看,信號系統(tǒng)包括多種底層硬件設(shè)備和操作系統(tǒng)。研發(fā)人員在進(jìn)行設(shè)計開發(fā)時必須考慮不同底層系統(tǒng)的特性,處理多種多樣的底層細(xì)節(jié),難以盡力集中到業(yè)務(wù)邏輯層面來。第二,信號系統(tǒng)軟件作為高安全等級要求的軟件,其設(shè)計開發(fā)流程有著嚴(yán)格的要求。如何通過技術(shù)手段規(guī)避人為疏漏造成的執(zhí)行不規(guī)范是我們亟待解決的問題。第三,隨著信號系統(tǒng)軟件產(chǎn)品數(shù)量越來越多、規(guī)模越來越大、復(fù)雜程度越來越高,帶來了大量的重復(fù)性勞動、飛漲的開發(fā)成本及低下的開發(fā)效率等諸多問題。第四,質(zhì)量安全是信號系統(tǒng)軟件的靈魂,如何在人力不足、工期緊張的條件下保證信號系統(tǒng)的質(zhì)量安全成為一個挑戰(zhàn)。
為了應(yīng)對上述挑戰(zhàn),本文提出了一種鐵路信號系統(tǒng)軟件設(shè)計開發(fā)平臺,為信號系統(tǒng)軟件的研發(fā)提供技術(shù)支撐。
國外鐵路信號公司對信號系統(tǒng)設(shè)計開發(fā)平臺的研究都非常重視,一些大的信號公司如西門子、阿爾斯通,都在公司層次建立了相應(yīng)的設(shè)計開發(fā)平臺,并依托平臺推出系列產(chǎn)品。
在通用軟件開發(fā)平臺領(lǐng)域的市場上,也存在著一些設(shè)計輔助工具。例如,IBM公司的DOORS提供了需求開發(fā)管理功能;IBM Rational Rhapsody是一款模型驅(qū)動的設(shè)計工具;IBM Change則提供了變更管理功能。
這些現(xiàn)有的開發(fā)工具為單個的點工具,未能集成為一個專用的信號系統(tǒng)設(shè)計開發(fā)平臺,造成研發(fā)人員往往需要在不同的設(shè)計開發(fā)階段切換、配置不同的設(shè)計工具,不利于提高設(shè)計的效率。因此,本文提出的平臺對這些工具進(jìn)行了有機(jī)的結(jié)合,統(tǒng)一成為一個用于信號系統(tǒng)設(shè)計開發(fā)的平臺。
信號系統(tǒng)軟件設(shè)計開發(fā)平臺(Signalling sys-tem Development Platform,以下簡稱平臺或SDP平臺)是支撐鐵路信號系統(tǒng)軟件開發(fā)的專用平臺。本平臺具有以下方面的特色。
第一,支持規(guī)范化、流程化的研發(fā)方式。信號系統(tǒng)軟件的研發(fā)有著嚴(yán)格的規(guī)范和流程,但是執(zhí)行中人為疏漏,難以保證按照流程規(guī)范地執(zhí)行,需要使用技術(shù)手段輔助、引導(dǎo)研發(fā)人員按照規(guī)定的流程執(zhí)行。在這種研發(fā)方式下,研發(fā)人員劃分為不同的角色,并且只能按照自己的角色進(jìn)行規(guī)范流程內(nèi)賦予的研發(fā)活動。
第二,支持模塊化、組件化的開發(fā)方式。在開發(fā)信號系統(tǒng)這樣一個復(fù)雜的系統(tǒng)時,采取模塊化、組件化的架構(gòu)是技術(shù)發(fā)展的方向。使用SDP平臺采用組件化的架構(gòu)之后,可以將功能相同或類似的部分進(jìn)行組件化,然后將組件進(jìn)行合理的組合,通過組件組態(tài)之后生成功能完整的軟件產(chǎn)品。這樣的軟件系統(tǒng)架構(gòu)可以有效地減少重復(fù)工作,增加開發(fā)的效率。另外,組件化的架構(gòu)還可以使得軟件系統(tǒng)的結(jié)構(gòu)層次更加清晰,使得系統(tǒng)的管理和修改更加方便。
第三,提供自動化、智能化的輔助研發(fā)工具。在研發(fā)過程中存在大量的耗費人力和時間的工作,在此方面,平臺提供了一系列的自動化工具,如自動化專項測試工具,輔助研發(fā)人員完成這些工作。
SDP平臺總體的結(jié)構(gòu)如圖 1所示。
從圖1中可以看到,在業(yè)務(wù)邏輯方面,SDP平臺包括全研發(fā)全命周期開發(fā)支持、質(zhì)量審核卡控支持、專項測試及組件收集復(fù)用等方面的功能。在數(shù)據(jù)支持方面,SDP包括了若干核心支撐庫,其主要功能是對具體業(yè)務(wù)提供有效而靈活的數(shù)據(jù)支持。左右兩側(cè)分別為IRIS規(guī)范和統(tǒng)一的用戶管理服務(wù)器貫穿上下,表明了SDP平臺每一個層面都是嚴(yán)格遵循IRIS體系規(guī)范并實行統(tǒng)一的用戶認(rèn)證、授權(quán)管理策略,保證了SDP平臺在安全保障上的可信性。
在下文中將就SDP平臺的核心業(yè)務(wù)邏輯:信號系統(tǒng)軟件全生命周期開發(fā)支持、審核卡控支持、組件化開發(fā)支持進(jìn)行介紹。
SDP平臺支持信號系統(tǒng)全生命周期的協(xié)同開發(fā),包括需求開發(fā),設(shè)計模型開發(fā),代碼編寫,測試案例編寫、測試執(zhí)行等功能,如圖 2所示。
SDP平臺需求開發(fā)工具同時支持DOORS和Word文檔的編寫。需求文檔開發(fā)工具具有如下功能:1)同時支持本地word需求文件的編寫和集成DOORS的文檔編寫功能。2)將DOORS上的需求文檔映射到SDP平臺上,使得信號系統(tǒng)軟件研發(fā)中其他的數(shù)據(jù)能夠和DOORS上的需求文檔在SDP平臺上關(guān)聯(lián)起來,例如管理測試案例對需求的覆蓋分析。3)根據(jù)IRIS規(guī)范提供Word版本和DOORS版本的文檔模板,強(qiáng)制信號系統(tǒng)軟件研發(fā)中的文檔符合規(guī)范。
4.2.1 設(shè)計模型開發(fā)工具
SDP平臺支持使用流程圖、狀態(tài)圖等圖形化方式描述信號系統(tǒng)軟件的邏輯。通過選擇符合標(biāo)準(zhǔn)UML2的設(shè)計建模方式,提供支持流程圖、狀態(tài)圖、順序圖等的UML設(shè)計建模工具。SDP的模型設(shè)計開發(fā)工具包括:1)符合UML2的標(biāo)準(zhǔn)的建模工具;2)提供UML圖形化編輯器;3)針對UML2擴(kuò)展出適合描述C函數(shù)邏輯的流程圖模型;4)支持使用UML2中狀態(tài)圖描述信號系統(tǒng)軟件的邏輯。
4.2.2 代碼開發(fā)、安全性檢查工具
代碼開發(fā)和安全性檢查工具包括如下功能:1)開發(fā)專用C語言集成開發(fā)工具(CDT)提供代碼開發(fā)環(huán)境。包括對C語言代碼的語法分析,集成編譯環(huán)境等功能。2) 集成Testbed對C語言代碼進(jìn)行安全性檢查。
4.2.3 文檔及文檔模板定制
SDP平臺支持文檔的編寫和管理工作,支持的文檔格式包括本地文檔,如Word,Excel等,遠(yuǎn)程數(shù)據(jù)庫文檔,如DOORS數(shù)據(jù)庫中存儲的文檔。支持一定的檢索功能,例如基本屬性檢索,內(nèi)容概要檢索,版本檢索等。
文檔模板是根據(jù)IRIS規(guī)范體系的要求,預(yù)先定義在SDP平臺內(nèi)部,用戶在創(chuàng)建各類標(biāo)準(zhǔn)文檔時,可以選擇這些預(yù)定義的文檔模板,從而保證文檔格式的統(tǒng)一,同時避免了文檔內(nèi)容的缺失。
針對信號系統(tǒng)軟件專項測試工作量大、手工測試易出錯且缺陷難以復(fù)現(xiàn)等問題,平臺提供了自動化的專項測試平臺,采用編寫并自動執(zhí)行測試腳本的方式對模塊或子系統(tǒng)進(jìn)行自動測試。專項測試工具的邏輯組成關(guān)系如圖3所示。
從圖3可以看到,專項測試系統(tǒng)通過主引擎執(zhí)行測試腳本,驅(qū)動分引擎測試目標(biāo)系統(tǒng)。
SDP平臺的專項測試工具具有良好的可擴(kuò)展性,表現(xiàn)在兩個方面:一方面,可以通過靈活的測試協(xié)議自定義接入新模塊、新系統(tǒng)的專項測試;另一方面,SDP平臺專項測試工具可以接入多臺測試機(jī)進(jìn)行并發(fā)測試,圖4所示為并行測試時測試系統(tǒng)的物理部署。
當(dāng)測試工作大量增加時,只需要增加測試機(jī)的數(shù)量,而無需增加更多的測試人力。另外,從圖上可以看到,SDP平臺同時提供了測試環(huán)境定制、測試案例和測試腳本編寫、測試執(zhí)行監(jiān)控、測試報告生成、測試覆蓋率分析等功能,協(xié)助測試人員準(zhǔn)備測試輸入,查看測試輸出,減少了測試人員的工作量和出錯的可能性。
在質(zhì)量審核卡控方面,SDP平臺提供符合IRIS規(guī)范的研發(fā)過程和研發(fā)成果發(fā)布的審核卡控功能,通過技術(shù)手段輔助研發(fā)人員嚴(yán)格執(zhí)行開發(fā)流程。具體來說,在項目研發(fā)過程中,SDP平臺將開發(fā)人員分為若干個角色,如項目負(fù)責(zé)人角色、需求開發(fā)人員角色、設(shè)計開發(fā)人員角色、測試設(shè)計人員角色、測試執(zhí)行人員角色等。在角色的基礎(chǔ)上,SDP平臺進(jìn)一步識別、設(shè)置研發(fā)流程中的關(guān)鍵卡控點,如圖 5所示就是研發(fā)項目審核卡控流程示例,其中每個階段都需在經(jīng)過評審后在項目負(fù)責(zé)人的控制下進(jìn)入下一個階段。
從圖5可以看出,SDP平臺提供的審核卡控流程具有以下特點:第一,平臺保證研發(fā)項目的所有階段成果都需要審核,否則不能進(jìn)入下一階段;第二,平臺保證只有通過審核,并由項目負(fù)責(zé)人認(rèn)可的階段成果才能作為下一步研發(fā)的輸入;第三,平臺提供項目基線等配置管理功能,并根據(jù)研發(fā)人員在項目中不同的角色,提供給研發(fā)人員通過審核、版本正確的工作輸入。
SDP平臺集成Change服務(wù)器對信號系統(tǒng)軟件全生命周期(需求、設(shè)計、編碼、測試等)的階段成果進(jìn)行審核,并使用審核記錄服務(wù)器將通過審核的階段成果(配置項)串聯(lián)形成項目基線,如圖6所示。
SDP平臺提供模塊化的信號系統(tǒng)軟件開發(fā)方式。SDP平臺建立了信號系統(tǒng)的組件庫,其中收集了已有的可復(fù)用組件和系統(tǒng)。在使用SDP平臺開發(fā)信號系統(tǒng)軟件時,可以復(fù)用組件庫總的組件來拼裝成新的信號系統(tǒng)軟件,或以已有系統(tǒng)為原型進(jìn)行少量修改來構(gòu)建新的系統(tǒng)。而且,當(dāng)新的系統(tǒng)研發(fā)完成后,其包含的可復(fù)用組件以及系統(tǒng)本身都會被收集到組件庫中以供以后復(fù)用。因此,SDP平臺構(gòu)成了一個閉環(huán)的組件收集和復(fù)用的組件化開發(fā)平臺。
SDP平臺對信號系統(tǒng)軟件系統(tǒng)及子模塊進(jìn)行規(guī)范化,使之能方便快捷的被用戶查詢、復(fù)用、統(tǒng)計和管理,SDP平臺將其定義為“SDP組件”。SDP平臺包含了組件庫服務(wù)器收集這些組件,同時支持SDP客戶端訪問和網(wǎng)頁訪問,可以供不同研發(fā)人員和管理人員方便地實現(xiàn)組件的查詢、復(fù)用、統(tǒng)計和管理功能。圖7所示為SDP組件庫的結(jié)構(gòu)圖。
從圖7中還可以看出,為了保證入庫組件的質(zhì)量,所有的組件在入庫時必須經(jīng)過審核后,才能正式發(fā)布,從而為新系統(tǒng)所復(fù)用。
SDP平臺作為一個支撐平臺,針對信號系統(tǒng)研
發(fā)的特點和挑戰(zhàn),提供了對信號系統(tǒng)軟件產(chǎn)品全生命周期研發(fā)的支持,通過技術(shù)手段對研發(fā)流程進(jìn)行審核卡控,支持信號系統(tǒng)軟件產(chǎn)品的組件化、規(guī)范化、自動化、智能化,可以有效地提高研發(fā)的效率,保證研發(fā)流程的規(guī)范,支持技術(shù)成果的重用,有利于進(jìn)一步縮短研發(fā)周期,保證產(chǎn)品質(zhì)量,提高研發(fā)綜合實力。