葉王平,唐建中,陳衛(wèi)華,谷鵬飛,王升超
(中廣核工程有限公司設(shè)計院,廣東 深圳 518124)
隨著數(shù)字化技術(shù)逐漸在核電站的應(yīng)用,核電領(lǐng)域安全級軟件的驗證與確認(rèn)(V&V)工作受到廣泛關(guān)注,尤其是針對核安全級數(shù)字化儀控系統(tǒng)的軟件V&V。核電站安全級數(shù)字化儀控系統(tǒng)的軟件V&V 是保證核安全級數(shù)字化儀控系統(tǒng)安全性和可靠性的必要環(huán)節(jié)。國際原子能機構(gòu)(IAEA)及中國核安全相關(guān)法規(guī)標(biāo)準(zhǔn)已明確規(guī)定新一代核電站采用核安全級數(shù)字化儀控系統(tǒng),以確保核電站的安全性、可靠性、可用性、經(jīng)濟(jì)性[1-2]。目前國際上典型的核安全級數(shù)字化儀控系統(tǒng)有:日本三菱公司的MELTAC N+系統(tǒng)、美國西屋公司的CommonQ +Ovation系統(tǒng)及德國西門子公司的TELEPERM XP+XS系統(tǒng)等。我國正在大力推進(jìn)核安全級數(shù)字化儀控系統(tǒng)產(chǎn)品的自主研發(fā)工作,而軟件的V&V 已被業(yè)界公認(rèn)為是決定自主研發(fā)核安全級數(shù)字化儀控系統(tǒng)成功的關(guān)鍵技術(shù)。
本文從國內(nèi)外已有成熟堆型和新研制堆型安全級數(shù)字化儀控系統(tǒng)的功能出發(fā),對軟件V&V 模型、工具、方法及關(guān)鍵因素進(jìn)行分析。
核電站安全級數(shù)字化儀控系統(tǒng)軟件的V&V活動為保證其有效性,必須遵循我國HAF 102—2004、HAD 102/16—2004等核安全法規(guī)和導(dǎo)則的要求,同時滿足IEC 60880—2006、IEEE 7-4.3.2—2010等核安全標(biāo)準(zhǔn)的要求。在V&V執(zhí)行過程和V&V方法上,普遍選擇IEEE 1012—2012作為主要指導(dǎo)標(biāo)準(zhǔn)。根據(jù)IEEE 1012—2012對于軟件V&V執(zhí)行階段的要求,本文從核安全級數(shù)字化儀控系統(tǒng)功能出發(fā),針對已建堆型和新研制堆型的V字模型分別進(jìn)行介紹。
對于已有成熟堆型,如應(yīng)用于遼寧紅沿河、福建寧德、廣東陽江項目的CPR1000技術(shù),其數(shù)字化儀控系統(tǒng),不論是與電站過程控制直接相關(guān)的功能設(shè)計、總體結(jié)構(gòu)、應(yīng)用軟件開發(fā)及編制的各種類型的規(guī)范書,還是與儀控設(shè)備直接相關(guān)的系統(tǒng)硬件配置及應(yīng)用軟件設(shè)計組態(tài),均已經(jīng)過工程實際機組的檢驗,儀控系統(tǒng)范圍清晰,功能分配明確,數(shù)字化儀控設(shè)計平臺成熟,在做軟件V&V 時可直接將儀控系統(tǒng)需求作為起始點開展V&V 相關(guān)活動。
因此,軟件V&V 的具體階段可劃分為:驗證儀控系統(tǒng)需求到儀控系統(tǒng)設(shè)計,儀控系統(tǒng)設(shè)計到軟件需求分析,軟件需求分析到軟件設(shè)計,軟件設(shè)計到軟件實現(xiàn),軟件實現(xiàn)到軟件集成[3]。確認(rèn)各階段的需求在下一階段是否均已得到滿足,驗證軟件開發(fā)是否按照設(shè)計流程和要求開展,從用戶的角度確認(rèn)軟件是否符合系統(tǒng)設(shè)計的真正需求。常用的已建堆型V 字模型如圖1所示。
圖1 已建堆型的V 字模型Fig.1 V&V model of reproduction design NPPs
對于新研制堆型,其核安全級數(shù)字化儀控系統(tǒng)在儀控總體架構(gòu)、儀控功能設(shè)計、系統(tǒng)架構(gòu)、控制邏輯及系統(tǒng)需求方面還未與系統(tǒng)工藝需求完全分離,在某些功能分配方面仍存在不足,范圍邊界不明確,產(chǎn)生的核安全級數(shù)字化儀控系統(tǒng)需求不能完全滿足工藝控制要求,針對這種情況,在進(jìn)行軟件V&V 時應(yīng)增加工藝系統(tǒng)需求到儀控系統(tǒng)需求的轉(zhuǎn)換過程的驗證與確認(rèn)過程,檢驗儀控系統(tǒng)的監(jiān)測功能、控制功能、保護(hù)功能是否完整、正確[4]。新研制堆型的V字模型示于圖2。
圖2 新研制堆型的V 字模型Fig.2 V&V model of new design NPPs
核安全級數(shù)字化儀控系統(tǒng)軟件V&V 活動的階段和主要任務(wù)列于表1。在實施V&V 活動時參考文件和目標(biāo)文件可根據(jù)受測軟件的特性和范圍進(jìn)行擇取,但V&V 各階段的劃分和階段之間的承接關(guān)系不能省略或更改。
表1 軟件V&V的主要任務(wù)Table 1 Main task of software V&V
核電站安全級數(shù)字化儀控系統(tǒng)軟件V&V方法的完備性和工具選擇的合理性,直接影響到V&V活動的具體實施,決定著軟件V&V 的成效。若方法選擇不完備,在V&V 的前期階段如概念階段和需求階段未發(fā)現(xiàn)的錯誤或缺陷,將在后續(xù)環(huán)節(jié)延續(xù)并放大,并會導(dǎo)致在后續(xù)階段發(fā)現(xiàn)問題時查找原因困難、修改周期和代價很大,影響到軟件開發(fā)和驗證的進(jìn)度。若工具選擇不合理,可能導(dǎo)致V&V 工具無法發(fā)現(xiàn)已產(chǎn)生的錯誤或缺陷,甚至引入新的錯誤,從而對軟件開發(fā)產(chǎn)生不利影響[5]。因此,應(yīng)結(jié)合軟件V&V 的不同階段,選擇適用的方法和工具,以確保軟件V&V各項活動的有效性和可靠性。
目前國內(nèi)外關(guān)于軟件V&V 的方法主要來自于國際通用標(biāo)準(zhǔn)IEEE Std 1012 的相關(guān)要求。本文將基于此標(biāo)準(zhǔn)的整體內(nèi)容要求,以其他軟件V&V 法規(guī)標(biāo)準(zhǔn)相關(guān)要素作為補充,結(jié)合目前國內(nèi)核電站數(shù)字化儀控系統(tǒng)的實際特點,總結(jié)出適用于核電站數(shù)字化儀控系統(tǒng)軟件V&V 的技術(shù)方法,詳細(xì)分類如下。
1)追溯分析。追溯分析包括正向追溯分析和反向追溯分析。正向追溯分析是指從上一階段的需求文件(如安全級儀控系統(tǒng)需求)向下一階段的設(shè)計文件(如安全級儀控系統(tǒng)設(shè)計)進(jìn)行追溯,目的在于驗證上一階段需求文件中定義的所有需求在下一階段設(shè)計文件中是否都得到了有效落實。反向可追溯分析是指從下一階段的設(shè)計文件(如安全級儀控系統(tǒng)設(shè)計)向上一階段的需求文件(如安全級儀控系統(tǒng)需求)進(jìn)行追溯,目的在于驗證下一階段的文件(如安全級儀控系統(tǒng)設(shè)計)有據(jù)可依。
2)文檔分析與評價。文檔分析與評價通過對文檔的人工審查,檢查軟件開發(fā)各階段文檔是否滿足完備性、準(zhǔn)確性、一致性、無二性、規(guī)范性及易讀性的要求。此方法不需太多的測試準(zhǔn)備工作,也難以進(jìn)行考量,測試效果很大程度上依賴于測試人員的技術(shù)水平和測試經(jīng)驗。
3)設(shè)計圖對比分析。對于核電站數(shù)字化儀控系統(tǒng),本方法主要指通過人工方法驗證系統(tǒng)邏輯圖/模擬圖(即LD/AD)的功能需求、接口需求、性能需求等,在分散控制系統(tǒng)(DCS)實現(xiàn)的功能圖(FD)中均已得到滿足。反之,確認(rèn)系統(tǒng)功能圖中實現(xiàn)的所有功能是否都有需求來源,具體可劃分為正向圖紙審查(以LD/AD 為基準(zhǔn)向FD 追溯)和反向圖紙審查(以FD 為基準(zhǔn)向LD/AD 追溯)。
4)靜態(tài)分析。靜態(tài)分析包括控制流分析、數(shù)據(jù)流分析、接口分析、表達(dá)式分析。此方法是在不執(zhí)行程序的情況下對軟件代碼進(jìn)行分析,包含程序規(guī)模、模塊數(shù)、注釋率、模塊圈復(fù)雜度等信息的分析。代碼靜態(tài)分析開展前,應(yīng)對自動化測試工具和測試標(biāo)準(zhǔn)/規(guī)范的選取進(jìn)行分析,以確保其適用于核電站安全級數(shù)字化儀控系統(tǒng)的要求。
5)代碼走查。代碼走查是指依據(jù)軟件行業(yè)主流標(biāo)準(zhǔn)(如MISRA-C—2004、GJB 5369—2005等)和開發(fā)部門確定的編碼規(guī)范,通過人工方法沿程序邏輯進(jìn)行審查,查找其缺陷,如語法檢測、代碼書寫規(guī)范檢查等,驗證代碼實現(xiàn)與軟件功能需求的一致性。
6)黑盒測試。黑盒測試是指依據(jù)軟件行業(yè)主流標(biāo)準(zhǔn),將程序看作是內(nèi)部不可見的黑盒,不考慮內(nèi)部/編碼結(jié)構(gòu)和語句路徑,通過專用工具從程序輸入與輸出間的關(guān)系檢查測試結(jié)果是否滿足預(yù)期要求。此方法依靠軟件設(shè)計說明書中的功能來設(shè)計測試用例,以檢驗軟件的功能完整性,測試用例設(shè)計應(yīng)具有代表性,覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的及極限的輸入數(shù)據(jù)和期望輸出。
7)白盒測試。白盒測試是指依據(jù)軟件行業(yè)主流標(biāo)準(zhǔn),通過專用工具設(shè)計測試用例分析程序內(nèi)部邏輯/編碼結(jié)構(gòu),覆蓋程序的每個語句、每個條件分支、每個控制路徑,檢驗其是否存在缺陷或錯誤。此方法根據(jù)軟件內(nèi)部構(gòu)造設(shè)計測試用例,檢驗代碼測試的完整性。對于核電站核安全級數(shù)字化儀控系統(tǒng)的模塊測試必須達(dá)到100%的覆蓋率要求。
8)危害與風(fēng)險分析。危害分析的內(nèi)容包括鑒別系統(tǒng)的潛在危害源、評估每個危害的后果、評估每個危害發(fā)生的可能性、制定每個危害的緩解策略。風(fēng)險分析包括鑒別系統(tǒng)的技術(shù)和管理風(fēng)險、制定消除或減輕風(fēng)險嚴(yán)重性的建議。危害與風(fēng)險分析作為確保軟件安全性、可靠性及質(zhì)量保證的重要手段,應(yīng)貫穿于安全級數(shù)字化儀控系統(tǒng)軟件開發(fā)及V&V生命周期的全過程。
HAD 102/16—2004、IEC 60880—2006、IEEE 7-4.3.2—2010、IEEE 1012—2012 等 法規(guī)標(biāo)準(zhǔn)均對軟件V&V 的工具使用提出了具體的要求,總體原則為V&V 工具應(yīng)滿足預(yù)期應(yīng)用的可靠性要求,且明確其應(yīng)用范圍[2-7]。核電站數(shù)字化儀控系統(tǒng)控制邏輯、系統(tǒng)結(jié)構(gòu)復(fù)雜,應(yīng)用軟件可靠性、安全性要求很高,特別是國內(nèi)核電站儀控系統(tǒng)開發(fā)平臺還不夠完善,依據(jù)圖形化設(shè)計工具而自動生成的軟件代碼可讀性較差,無論是軟件開發(fā)人員,還是第三方V&V 人員,對V&V 工具的選擇非常重要。對于軟件V&V 工具的使用,本文從以下3 個方面介紹應(yīng)關(guān)注的事項。
1)成熟工具的使用。目前市場上使用的第三方獨立V&V 工具種類繁多,功能和適用范圍差別很大,軟件研發(fā)人員應(yīng)結(jié)合核電站數(shù)字化儀控系統(tǒng)應(yīng)用軟件的類型和測試階段(白盒測試或黑盒測試)選擇測試工具,并明確規(guī)定V&V 自動化工具的應(yīng)用范圍,選擇兼容于軟件開發(fā)平臺和其他V&V 工具,且具有充分安全可信性的自動化工具(入侵程度小的工具,即盡量避免以任何方式修改代碼或控制操作環(huán)境),保證工具不危害最終產(chǎn)品的安全。同時,應(yīng)在軟件開發(fā)初始階段,從全盤考慮,結(jié)合軟件開發(fā)各階段的特點,依據(jù)縱深防御和多樣化原則選擇多種V&V 工具,以降低對單個V&V工具的可靠性要求。
2)專用工具的使用。在核安全級儀控系統(tǒng)軟件開發(fā)過程中,軟件開發(fā)團(tuán)隊的內(nèi)部V&V 人員為提高效率,節(jié)省工作時間,會根據(jù)開發(fā)軟件的特點,有針對性地開發(fā)配套的專用軟件測試工具,采用圖形化建模、仿真等手段設(shè)計專用測試裝置。此類工具不像市場成熟的工具經(jīng)過產(chǎn)品鑒定、認(rèn)證,沒有經(jīng)過專業(yè)的性能測試和質(zhì)量評估,在使用這類工具前,應(yīng)評估其可靠性及引入錯誤的可能性,并針對其開發(fā)環(huán)境和開發(fā)過程是否滿足法規(guī)標(biāo)準(zhǔn)的要求和其測試準(zhǔn)確性進(jìn)行評估,在確保專用測試工具的可靠性和安全性后,方能引入到儀控系統(tǒng)軟件的V&V 過程中。
3)鑒定測試。在做第三方獨立V&V 時,技術(shù)獨立性意味著V&V 工具應(yīng)區(qū)別于開發(fā)人員所使用的工具,若IV&V 人員與開發(fā)人員使用相同的工具,則應(yīng)對該工具進(jìn)行鑒定測試,以保證相同的工具不會包含可能掩蓋用于分析和測試系統(tǒng)錯誤的錯誤。對于有廣泛應(yīng)用業(yè)績的成熟工具產(chǎn)品,一般不要求進(jìn)行鑒定測試。
核電站安全級數(shù)字化儀控系統(tǒng)軟件對安全性、可靠性有很高的要求,雖然依據(jù)相同的標(biāo)準(zhǔn),但是不同的V&V 團(tuán)隊會有不同的成效,本文從核電站實際項目的經(jīng)驗反饋出發(fā),針對軟件V&V 人員在測試過程中應(yīng)重點關(guān)注的事項,總結(jié)得到如下關(guān)鍵因素。
1)人員的經(jīng)驗與能力。目前代碼測試普遍采用的方法是人工走查和自動化測試工具相結(jié)合的做法,幾乎80%的代碼問題是由人工走查發(fā)現(xiàn),20%的代碼問題由測試工具查出,對于V&V 人員的軟件檢測能力和測試經(jīng)驗要求很高。另外,V&V 人員在開展工作前應(yīng)對測試對象(數(shù)字化儀控系統(tǒng)功能)進(jìn)行深入了解,若是具備核電儀控設(shè)計經(jīng)驗的人員參與V&V 活動效果將會更佳。
2)軟件質(zhì)量管理。在軟件V&V 過程中,即使有先進(jìn)的檢測工具,成熟的技術(shù),但缺乏質(zhì)量管理仍不能確保軟件V&V 的效果和有效性,尤其是在進(jìn)度和資源的壓力下,很容易出現(xiàn)質(zhì)量管理流于形式、管理混亂的現(xiàn)象。所以,在軟件V&V 開始時就應(yīng)將質(zhì)量管理提上高度,提高授權(quán),專人專管,并將質(zhì)量管理貫徹始終。
3)經(jīng)驗反饋。在開展核電站安全級數(shù)字化儀控系統(tǒng)軟件V&V 工作前,應(yīng)充分針對航天、軍工等安全關(guān)鍵軟件的V&V 活動進(jìn)行調(diào)研,吸取其在V&V 項目進(jìn)行過程中的經(jīng)驗反饋,如可靠性測試如何有效開展、軟件開發(fā)過程中容易出現(xiàn)的錯誤、測試用例設(shè)計方法、自動測試工具的選取、測試階段的劃分、測試報告的編制等。
4)介入時機。軟件V&V 活動若在軟件開發(fā)初期介入,其缺陷識別成本、缺陷解決成本將大幅降低,避免開發(fā)初期引入的錯誤或缺陷被層層放大,極大地提高V&V 活動的成效,同時,V&V 活動應(yīng)伴隨著軟件生命周期的全過程,形成V&V 小循環(huán),且V&V 團(tuán)隊在人員設(shè)置上應(yīng)與軟件開發(fā)團(tuán)隊相近。
軟件V&V 作為軟件質(zhì)量驗證最有效的手段之一,貫穿于整個軟件開發(fā)生命周期,在軟件開發(fā)完成后也可進(jìn)行獨立的第三方V&V。針對每項V&V工作任務(wù),IV&V 工作均應(yīng)采用多樣化的技術(shù)、方法和工具,以保證任務(wù)完成的質(zhì)量,并滿足相關(guān)國家、國際標(biāo)準(zhǔn)對于核安全級數(shù)字化儀控系統(tǒng)軟件V&V 的可靠性要求。本文所闡述的方法不僅適用于核電站安全級數(shù)字化儀控系統(tǒng)軟件,也適用于核電站其他關(guān)鍵設(shè)備軟件的V&V,對于非核項目也具有很好的通用性。
[1] HAF 102—2004 核動力廠設(shè)計安全規(guī)定[S].北京:國家核安全局,2004.
[2] HAD 102/16—2004 核動力廠基于計算機的安全重要系統(tǒng)軟件[S].北京:國家核安全局,2004.
[3] IEEE Std 1012—2012 IEEE standard for system and software verification and validation[S].New York:IEEE,2012.
[4] 劉真,江國進(jìn),孫永濱.核電安全級儀控系統(tǒng)軟件V&V 活動及其方法研究[J].核科學(xué)與工程,2011,12(S2):45-50.LIU Zhen,JIANG Guojin,SUN Yongbin.The V&V activities and techniques for safety-class I&C system in the nuclear power plant[J].Chinese Journal of Nuclear Science and Engineering,2011,12(S2):45-50(in Chinese).
[5] 劉斌.軟件驗證與確認(rèn)[M].北京:國防工業(yè)出版社,2011.
[6] IEC 60880—2006 Nuclear power plants instrumentation and control systems important to safety-software aspect for computer-based systems performing category functions[S].Switzerland:IEC,2006.
[7] IEEE 7-4.3.2—2010 IEEE standard criteria for digital computers in safety systems of nuclear power generating stations[S]. New York:IEEE,2010.