張子鵬,魏新宇,張晨昊,李 旺
(1.西安交通大學(xué)核科學(xué)與技術(shù)學(xué)院,西安 710049;2.中國(guó)核動(dòng)力研究設(shè)計(jì)院核反應(yīng)堆系統(tǒng)設(shè)計(jì)技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都 610213)
配置管理是核安全級(jí)DCS 工程設(shè)計(jì)活動(dòng)的重要部分,針對(duì)安全重要的構(gòu)筑物、系統(tǒng)和設(shè)備,國(guó)家核安全法規(guī)已經(jīng)提出與配置管理相關(guān)的要求。HAF102—2004《核動(dòng)力廠設(shè)計(jì)安全規(guī)定》中要求“當(dāng)安全重要系統(tǒng)設(shè)計(jì)依賴于基于計(jì)算機(jī)的系統(tǒng)的可靠性時(shí),必須確定或制定有關(guān)開發(fā)和試驗(yàn)和(或)驗(yàn)證計(jì)算機(jī)硬件和軟件的相應(yīng)標(biāo)準(zhǔn),并在系統(tǒng)的整個(gè)生命周期,特別是在軟件開發(fā)期間,就必須加以實(shí)施”[1]。
盡管傳統(tǒng)配置管理的原理和目的同樣適用于軟件,但軟件更側(cè)重設(shè)計(jì)流程,交付物項(xiàng)是設(shè)計(jì)輸出。在軟件生產(chǎn)中,設(shè)計(jì)過程信息可能衍生出和最終設(shè)計(jì)輸出相關(guān)的多個(gè)中間設(shè)計(jì)輸出。通常在實(shí)現(xiàn)(編碼)和測(cè)試階段會(huì)產(chǎn)生大量的軟件設(shè)計(jì)變更。核安全級(jí)DCS 應(yīng)用軟件代碼結(jié)構(gòu)復(fù)雜、變更種類繁多、形式多樣,且用戶較多,因此在代碼實(shí)現(xiàn)階段需要制定合適的配置管理策略以應(yīng)對(duì)其特點(diǎn)。
核安全級(jí)DCS 系統(tǒng)結(jié)構(gòu)復(fù)雜,冗余度高。從軟件設(shè)計(jì)的角度上,按照實(shí)現(xiàn)的功能不同可以將整個(gè)系統(tǒng)劃分為各種功能站點(diǎn),例如控制站、傳輸站和網(wǎng)關(guān)站等。以華龍一號(hào)核安全級(jí)DCS 系統(tǒng)為例,該系統(tǒng)包含四個(gè)保護(hù)組(保護(hù)組I、保護(hù)組II、保護(hù)組III 以及保護(hù)組IV)和兩個(gè)邏輯系列(邏輯系列A和邏輯系列B),每個(gè)保護(hù)組分為兩個(gè)多樣性子組,每個(gè)邏輯系列包含F(xiàn)SC1、F-SC2 兩個(gè)安全等級(jí)的專設(shè)驅(qū)動(dòng)系統(tǒng),其系統(tǒng)架構(gòu)如圖1所示。
圖1 華龍一號(hào)核安全級(jí)DCS系統(tǒng)架構(gòu)示意圖
由于聯(lián)鎖、局部脫扣、與盤臺(tái)接口、與非安全級(jí)DCS 通訊等復(fù)雜的系統(tǒng)結(jié)構(gòu),信號(hào)需要在功能站之間傳遞,各功能站之間相互關(guān)聯(lián),因此在設(shè)計(jì)過程中需要考慮各站的關(guān)聯(lián)性。作為核安全級(jí)DCS 系統(tǒng)中重要的組成部分,應(yīng)用軟件代碼對(duì)于整個(gè)系統(tǒng)執(zhí)行安全功能至關(guān)重要,也是后續(xù)軟硬件集成、工程測(cè)試(FT)和V&V 等過程的重要輸入。此外,在代碼實(shí)現(xiàn)和測(cè)試階段,由于V&V 異?;驕y(cè)試異常,代碼需要頻繁變更。由此可見,核安全級(jí)DCS 應(yīng)用軟件代碼重要程度高,結(jié)構(gòu)復(fù)雜,規(guī)模龐大,變更頻繁[2-3]。因此必須配備完善的配置管理策略以保證其正確性。
核安全級(jí)DCS 應(yīng)用軟件設(shè)計(jì)流程如圖2 所示,其中在需求、設(shè)計(jì)和實(shí)現(xiàn)階段分別輸出軟件需求規(guī)格書、儀控功能圖和應(yīng)用軟件代碼包[4]。
圖2 應(yīng)用軟件設(shè)計(jì)流程示意圖
設(shè)計(jì)人員使用工程師站軟件NASPES,依據(jù)上游設(shè)計(jì)輸入和系統(tǒng)設(shè)計(jì)輸入開發(fā)核安全級(jí)DCS 應(yīng)用軟件,主要工作包含站點(diǎn)組態(tài)、設(shè)備組態(tài)、算法組態(tài)和變量組態(tài)等內(nèi)容。應(yīng)用軟件設(shè)計(jì)的輸出主要包含兩種形式:
(1)以文件形式:如算法組態(tài)以儀控功能圖形式進(jìn)行出版,變量組態(tài)以IO 分配清單,設(shè)定值清單的形式出版;
(2)以工程文件(包)形式:如站點(diǎn)組態(tài)信息、設(shè)備組態(tài)信息、變量組態(tài)信息、可下裝代碼等集成到應(yīng)用軟件代碼包中進(jìn)行出版。
以華龍一號(hào)的安全級(jí)DCS 系統(tǒng)為例,系統(tǒng)共計(jì)有28 個(gè)功能站點(diǎn),每個(gè)站點(diǎn)均需要出版一份儀控功能圖(或者畫面組態(tài)文件),并在實(shí)現(xiàn)階段出版應(yīng)用軟件代碼包。
從用途來說,核安全級(jí)DCS 應(yīng)用軟件代碼需要提供給V&V 人員進(jìn)行V&V 活動(dòng),提供給代碼下裝人員進(jìn)行下裝活動(dòng),提供給測(cè)試人員進(jìn)行工廠測(cè)試活動(dòng)等。如果應(yīng)用軟件代碼的版本控制發(fā)生錯(cuò)誤,將會(huì)給DCS 系統(tǒng)的設(shè)計(jì)、V&V和測(cè)試等活動(dòng)帶來較大的影響,甚至影響到產(chǎn)品質(zhì)量和項(xiàng)目進(jìn)度。
一般來說,應(yīng)用軟件代碼包的配置管理和其他常規(guī)軟件的配置項(xiàng)一樣進(jìn)行管理。但因其信息量巨大,變更頻繁,且存在各功能站的子版本,現(xiàn)有的配置管理策略越來越不能適應(yīng)新的需求。歸納起來,應(yīng)用軟件代碼配置管理主要有如下難點(diǎn):
(1)因系統(tǒng)功能復(fù)雜,導(dǎo)致應(yīng)用軟件代碼結(jié)構(gòu)復(fù)雜,且各個(gè)功能站點(diǎn)相互影響,軟件設(shè)計(jì)文件之間互相影響;
(2)在使用工程師站軟件NASPES 進(jìn)行應(yīng)用軟件下裝時(shí),為保證下裝站點(diǎn)的正確性,須通過總體工程進(jìn)行各站點(diǎn)的下裝,而不能單獨(dú)將各功能站點(diǎn)的下裝文件獨(dú)立入庫;
(3)核安全級(jí)DCS 應(yīng)用軟件涉及到V&V 過程,異常的處理會(huì)導(dǎo)致軟件版本變更比較頻繁;
(4)應(yīng)用軟件代碼算法組態(tài)部分與設(shè)計(jì)階段的儀控功能圖有關(guān)聯(lián)關(guān)系,設(shè)備組態(tài)和變量組態(tài)部分與設(shè)計(jì)階段的硬件設(shè)計(jì)有關(guān)聯(lián)關(guān)系。在變更較為頻繁的情況下,為了便于開展實(shí)現(xiàn)階段或者后續(xù)測(cè)試階段的相關(guān)工作,需要明確代碼與不同階段以及不同文件之間的關(guān)系;
(5)代碼下裝人員、V&V 人員和測(cè)試人員需要了解每個(gè)功能站的代碼變更情況、版本情況等信息,從而進(jìn)行軟件下裝、實(shí)現(xiàn)V&V 和測(cè)試V&V等工作;
(6)工程師站軟件NASPES、SVDU 組態(tài)軟件、算法庫等工具軟件對(duì)核安全級(jí)DCS 應(yīng)用軟件代碼的版本也有一定影響。
本文提出的依托于核電廠數(shù)字化安全級(jí)儀控系統(tǒng)(NASPIC 平臺(tái))的應(yīng)用軟件代碼配置管理策略,可以較好地控制核安全級(jí)DCS 應(yīng)用軟件代碼版本。應(yīng)用軟件工程代碼包文件中的文件夾對(duì)應(yīng)著各功能站,并以站號(hào)命名。功能站的站號(hào)是設(shè)計(jì)人員根據(jù)軟件需求規(guī)格書在站點(diǎn)組態(tài)時(shí)進(jìn)行設(shè)置,以保護(hù)組為例,應(yīng)用軟件站點(diǎn)信息如表1所示。
表1 核安全級(jí)DCS應(yīng)用軟件站點(diǎn)信息列表
每個(gè)功能站點(diǎn)的文件夾下有如下信息,以11站RTC-11為例,如圖3所示。
圖3 應(yīng)用軟件代碼包功能站主要信息
其中download 文件夾中是編譯完成待下裝的代碼,包括三個(gè)部分:
(1)devconfig_版本號(hào):設(shè)備文件;
(2)exportPara_版本號(hào):參數(shù)文件;
(3)LowerCom_Bin_版本號(hào):算法文件。
分別對(duì)應(yīng)站點(diǎn)的設(shè)備組態(tài)信息、變量組態(tài)信息和算法組態(tài)信息。代碼管理的核心就是管理各功能站的download 文件夾中的各可下裝文件的版本,以及其與設(shè)計(jì)階段文件的關(guān)系。
核安全級(jí)DCS 應(yīng)用軟件配置管理建議采取如下策略:
策略一:代碼整體入庫
首先,在進(jìn)行各功能站代碼下裝時(shí),各功能站點(diǎn)需通過整個(gè)工程進(jìn)行下裝,因此工程代碼需要整體出、入庫。這樣做可以避免多功能站分別入庫、出庫可能導(dǎo)致的版本混亂。其次,在進(jìn)行應(yīng)用軟件下裝時(shí),下裝人員首先會(huì)確認(rèn)硬件通路正確,再?gòu)墓こ讨羞x擇對(duì)應(yīng)的功能站進(jìn)行下裝,可在一定程度上提高代碼下裝效率和降低錯(cuò)誤概率。最后,為了方便后續(xù)分析問題以及進(jìn)行版本回溯,需要在代碼入庫時(shí)明確產(chǎn)生每一版應(yīng)用軟件代碼包的工具軟件版本,因?yàn)楣ぞ哕浖陌姹咀兓矔?huì)影響到應(yīng)用軟件的版本。
如表2所示,應(yīng)用軟件代碼配置項(xiàng)信息主要包括配置項(xiàng)標(biāo)識(shí)、代碼包版本和生成該版本代碼包的工具軟件版本,如NASPES、SCADE、SVDU 組態(tài)軟件和算法庫版本等,這些信息也應(yīng)包含在策略二中提到的代碼版本信息說明文件中。
表2 應(yīng)用軟件代碼配置項(xiàng)信息
策略二:應(yīng)用軟件代碼包說明文件
在代碼實(shí)現(xiàn)階段配合應(yīng)用軟件代碼出版代碼版本信息說明文件,用以說明代碼包中的具體信息。如表3所示,具體明確各功能站點(diǎn)的信息(包括對(duì)應(yīng)的功能站點(diǎn)站號(hào)、所在機(jī)柜號(hào)、站名等)和維護(hù)網(wǎng)絡(luò)IP地址,方便下裝人員通過站號(hào)找到對(duì)應(yīng)的功能站和通過機(jī)柜號(hào)找到對(duì)應(yīng)的機(jī)柜,從而快速匹配軟、硬件信息,并通過維護(hù)網(wǎng)絡(luò)對(duì)目標(biāo)站點(diǎn)進(jìn)行代碼下裝,這將使下裝人員不必查閱多份文件就可以快速識(shí)別目標(biāo)站點(diǎn),極大提高應(yīng)用軟件代碼的下裝效率。
表3 功能站點(diǎn)信息及維護(hù)網(wǎng)絡(luò)IP地址列表
此外,該文件中還應(yīng)包含產(chǎn)生每一版應(yīng)用軟件代碼包對(duì)應(yīng)的工具軟件版本、功能站點(diǎn)子版本信息、站點(diǎn)修改記錄以及與設(shè)計(jì)階段文件的對(duì)應(yīng)關(guān)系等內(nèi)容,這部分內(nèi)容將在其他策略中進(jìn)行闡述。
策略三:功能站點(diǎn)子版本信息
以華龍一號(hào)為例,其標(biāo)準(zhǔn)工程就有28 個(gè)功能站點(diǎn),每個(gè)功能站都含有大量的信息,且需要下裝到對(duì)應(yīng)的主控模塊中,因此需要對(duì)工程中功能站點(diǎn)的子版本信息進(jìn)行明確和管理。
應(yīng)用軟件代碼包發(fā)布時(shí),有時(shí)并不是所有的功能站點(diǎn)都會(huì)發(fā)生變化,此時(shí)需要快速識(shí)別各功能站的版本變化情況,方便下游專業(yè)開展工作。如對(duì)變化站點(diǎn)代碼進(jìn)行實(shí)現(xiàn)V&V、下裝和測(cè)試等工作。
因此,需要對(duì)工程中所有功能站的子版本進(jìn)行明確,并列出上一版本工程中該功能站的子版本,方便使用人員可以快速識(shí)別該功能站是否發(fā)生了變化,從而開展相關(guān)工作。如表4所示,功能站點(diǎn)版本信息表中顯示RTC-11站點(diǎn)版本發(fā)生了變化,由J.1 變?yōu)镵.1,而RTC-31 版本沒有發(fā)生變化,仍為J.1,因此RTC-31 就無需重新下裝。
表4 功能站點(diǎn)版本信息表
此外,每個(gè)功能站點(diǎn)的詳細(xì)修改記錄也應(yīng)分站進(jìn)行體現(xiàn),供下游人員使用。如表5 所示,提供了一種展現(xiàn)形式,表中包含代碼包的主版本和各功能站的詳細(xì)修改情況。對(duì)于邏輯算法部分,會(huì)在代碼包中使用云線進(jìn)行標(biāo)記。
表5 功能站詳細(xì)修改信息
策略四:與設(shè)計(jì)階段文件的對(duì)應(yīng)
為方便測(cè)試人員進(jìn)行測(cè)試用例設(shè)計(jì),需要明確實(shí)現(xiàn)階段的應(yīng)用軟件代碼包所對(duì)應(yīng)的設(shè)計(jì)階段文件(主要為儀控功能圖)。如表6所示,對(duì)應(yīng)關(guān)系表中可包含功能站的站號(hào),其對(duì)應(yīng)設(shè)計(jì)階段文件的名稱,文件編號(hào)和版本等信息,這些信息有助于測(cè)試人員在進(jìn)行測(cè)試用例設(shè)計(jì)時(shí)提高效率。
表6 功能站與設(shè)計(jì)階段文件對(duì)應(yīng)關(guān)系表
核安全級(jí)DCS 應(yīng)用軟件代碼對(duì)保護(hù)系統(tǒng)執(zhí)行安全功能至關(guān)重要,且具有功能站點(diǎn)多,結(jié)構(gòu)復(fù)雜,相互關(guān)聯(lián),用戶種類多和變更頻繁等特點(diǎn)。傳統(tǒng)的配置策略只能從宏觀的角度去對(duì)代碼進(jìn)行管理,考慮到核安全級(jí)應(yīng)用軟件代碼的特點(diǎn)和實(shí)際的使用要求,制定符合其特點(diǎn),并能考慮實(shí)際使用要求的配置管理策略至關(guān)重要。
本文綜合考慮了核安全級(jí)DCS 系統(tǒng)結(jié)構(gòu)和應(yīng)用軟件代碼特點(diǎn),并結(jié)合用戶的具體需求,提出了一種可行的核安全級(jí)DCS 應(yīng)用軟件代碼管理策略,為同類項(xiàng)目的應(yīng)用軟件代碼管理提供參考。