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