★北京廣利核系統(tǒng)工程有限公司 申高軍,張亞棟,梁中起,劉春明
軟件V&V基于嚴(yán)重性分級(jí)的異常處理流程研究
★北京廣利核系統(tǒng)工程有限公司 申高軍,張亞棟,梁中起,劉春明
軟件V&V是核安全級(jí)軟件開發(fā)過(guò)程中評(píng)估軟件產(chǎn)品的一種系統(tǒng)性方法,與軟件開發(fā)同步開展。通過(guò)軟件V&V活動(dòng),辨識(shí)和解決異常,對(duì)軟件開發(fā)中出現(xiàn)的偏離進(jìn)行控制。本文結(jié)合安全級(jí)軟件開發(fā)生命周期的特點(diǎn),優(yōu)化異常處理流程,軟件V&V對(duì)每一階段發(fā)現(xiàn)的異常問(wèn)題進(jìn)行影響評(píng)估,按后果嚴(yán)重性進(jìn)行分級(jí),確定異常關(guān)鍵等級(jí)。上一階段關(guān)鍵異常的解決作為下一階段軟件開發(fā)結(jié)束的必要條件,前一設(shè)計(jì)階段的關(guān)鍵異常全部解決后,下一階段的設(shè)計(jì)活動(dòng)才能結(jié)束。該異常處理流程可推進(jìn)關(guān)鍵異常及時(shí)解決,防止向后續(xù)開發(fā)過(guò)程傳遞,有效減少開發(fā)后期的異常數(shù)量及修復(fù)成本。該流程已在某核電項(xiàng)目中得以實(shí)施,并取得良好效果。
安全級(jí)軟件;驗(yàn)證與確認(rèn);異常處理流程
隨著核電事業(yè)的高速發(fā)展,在核電站儀控系統(tǒng)中,基于計(jì)算機(jī)的數(shù)字化技術(shù)已經(jīng)逐步取代傳統(tǒng)的模擬技術(shù),并且應(yīng)用于高可靠性要求的核電站安全保護(hù)系統(tǒng)中。數(shù)字化技術(shù)的應(yīng)用提高了儀控保護(hù)系統(tǒng)認(rèn)證的難度,如何有效保證安全級(jí)軟件的安全性和可靠性是實(shí)現(xiàn)數(shù)字化保護(hù)系統(tǒng)的關(guān)鍵技術(shù)[1]。根據(jù)核電相關(guān)國(guó)際標(biāo)準(zhǔn),采用獨(dú)立的驗(yàn)證與確認(rèn)(Verification and Validation)技術(shù)是保證安全級(jí)軟件質(zhì)量的重要舉措和必要步驟[2]。
安全級(jí)軟件V&V驗(yàn)證安全級(jí)軟件產(chǎn)品是否符合它的預(yù)期要求和用戶需求,貫穿于軟件產(chǎn)品開發(fā)的整個(gè)生命周期,軟件V&V活動(dòng)與軟件開發(fā)活動(dòng)同步開展,按照IEEE1012對(duì)軟件V&V過(guò)程要求,對(duì)應(yīng)軟件開發(fā)生命周期的系統(tǒng)設(shè)計(jì)、軟件需求、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件集成各階段,V&V活動(dòng)分為概念V&V、需求V&V、設(shè)計(jì)V&V、實(shí)現(xiàn)V&V、測(cè)試V&V[3]。在V&V活動(dòng)的每一階段,要驗(yàn)證該階段的產(chǎn)品輸出是否符合本階段的輸入要求,識(shí)別驗(yàn)證對(duì)象中存在的異常,并進(jìn)行分析和評(píng)估,確定異常后果的嚴(yán)重程度。一般來(lái)說(shuō),在開發(fā)階段盡早發(fā)現(xiàn)并解決異常是有好處的,但是還應(yīng)避免為解決不必要異常而中斷開發(fā)過(guò)程。因此軟件V&V與軟件開發(fā)過(guò)程之間的匹配關(guān)系,各階段異常的影響評(píng)估、以及關(guān)鍵異常問(wèn)題的解決時(shí)機(jī),對(duì)于提升軟件產(chǎn)品質(zhì)量,具有重要的作用。
基于核電站安全級(jí)DCS系統(tǒng)高安全性和可靠性的要求,加強(qiáng)軟件開發(fā)過(guò)程的質(zhì)量控制,軟件V&V對(duì)每一階段的異常進(jìn)行影響評(píng)估,前一階段關(guān)鍵異常全部解決后,下一個(gè)階段設(shè)計(jì)工作才可以結(jié)束,保證關(guān)鍵異常不向開發(fā)后續(xù)階段傳遞,減少后續(xù)階段異常修復(fù)的數(shù)量和成本。
軟件V&V活動(dòng)與軟件開發(fā)活動(dòng)同步開展,雙方按照軟件開發(fā)生命周期模型分階段開展工作,每一階段的開發(fā)活動(dòng)結(jié)束后,將當(dāng)前階段的輸出文檔、編碼和數(shù)據(jù)等提交V&V團(tuán)隊(duì)驗(yàn)證,V&V團(tuán)隊(duì)采取評(píng)審、分析和測(cè)試技術(shù)對(duì)開發(fā)過(guò)程的設(shè)計(jì)輸出進(jìn)行驗(yàn)證,確定當(dāng)前階段的設(shè)計(jì)輸出是否滿足設(shè)計(jì)輸入要求,識(shí)別異常問(wèn)題,對(duì)異常問(wèn)題進(jìn)行影響評(píng)估和關(guān)鍵性分級(jí),并反饋給開發(fā)團(tuán)隊(duì)。
對(duì)于易導(dǎo)致嚴(yán)重后果影響的異常問(wèn)題應(yīng)在下一階段設(shè)計(jì)工作結(jié)束前解決,保證該異常問(wèn)題不會(huì)傳遞到下一階段的設(shè)計(jì)輸出中,防止異常問(wèn)題向產(chǎn)品開發(fā)的后期傳遞而帶來(lái)的產(chǎn)品質(zhì)量的下降和異常修復(fù)成本的提高。對(duì)于后果輕微異常問(wèn)題,開發(fā)團(tuán)隊(duì)可以根據(jù)進(jìn)度安排,在適當(dāng)?shù)臅r(shí)候解決。
軟件V&V與軟件開發(fā)活動(dòng)分階段交叉開展,形成一定制約關(guān)系,設(shè)計(jì)階段活動(dòng)完成后提交V&V團(tuán)隊(duì)驗(yàn)證,此過(guò)程中,開發(fā)可開展下一階段的活動(dòng),但只有在該階段發(fā)現(xiàn)的關(guān)鍵異常問(wèn)題全部解決后,開發(fā)團(tuán)隊(duì)才能結(jié)束下一階段的設(shè)計(jì)活動(dòng),保證關(guān)鍵異常及時(shí)解決,防止向開發(fā)后期傳遞。
軟件V&V中異常處理流程圖如圖1所示。
通過(guò)對(duì)各階段的輸出產(chǎn)品如:需求說(shuō)明書、設(shè)計(jì)說(shuō)明書、邏輯圖、代碼等與輸入基準(zhǔn)要求對(duì)照檢查,辨識(shí)出輸出產(chǎn)品中的異常。對(duì)于辨識(shí)出的每個(gè)異常問(wèn)題,建立一個(gè)異常記錄檔案,記錄該異常處理的整個(gè)過(guò)程信息,如:異常編號(hào)、異常位置、異常處理過(guò)程執(zhí)行人、異常描述、原因分析、影響分析、關(guān)鍵性等級(jí)、修復(fù)緊急度、解決方案、處理結(jié)果等內(nèi)容,便于異常的追蹤管理[4]。
圖1 軟件V&V中異常處理流程圖
要分析異常對(duì)核電廠安全運(yùn)行的影響,根據(jù)評(píng)估結(jié)果,確定異常的關(guān)鍵性及修復(fù)緊急度。對(duì)異??赡茉斐傻暮穗姀S安全運(yùn)行后果進(jìn)行系統(tǒng)定性或定量的評(píng)價(jià)[3]。這些后果可能包括任務(wù)失敗、經(jīng)濟(jì)損失、財(cái)產(chǎn)損失、環(huán)境破壞或負(fù)面社會(huì)影響。
表1 異常影響分級(jí)
綜合分析異常對(duì)核電廠安全運(yùn)行影響后果的嚴(yán)重性,確定異常的關(guān)鍵性等級(jí),具體如表1所示。根據(jù)關(guān)鍵性等級(jí)確定不同的修復(fù)緊急度要求。
對(duì)于不同關(guān)鍵性異常的修復(fù)緊急度要求如下:
(1)關(guān)鍵異常:對(duì)核電廠安全運(yùn)行有災(zāi)難性和嚴(yán)重性影響的異常問(wèn)題,應(yīng)在下一階段軟件開發(fā)活動(dòng)結(jié)束前解決。
(2)非關(guān)鍵異常:該異常對(duì)核電廠安全運(yùn)行影響一般或輕微,且不影響軟件開發(fā)的后續(xù)活動(dòng),可以根據(jù)項(xiàng)目進(jìn)度需要,在產(chǎn)品交付用戶前解決。
V&V團(tuán)隊(duì)識(shí)別出異常并進(jìn)行分析后,應(yīng)給相應(yīng)開發(fā)人員和管理人員進(jìn)行報(bào)告,提示項(xiàng)目存在的風(fēng)險(xiǎn),并為項(xiàng)目質(zhì)量、進(jìn)度和成本控制決策提供建議。
異常報(bào)告要選擇恰當(dāng)?shù)臅r(shí)機(jī),既要保證盡可能早地報(bào)告并及時(shí)解決異常,又要避免開發(fā)過(guò)程被不必要的通知中斷,一般根據(jù)異常的修復(fù)緊急度要求分批進(jìn)行報(bào)告。
異常的解決方案可能是復(fù)雜的、主觀的和耗費(fèi)時(shí)間的,可能導(dǎo)致文檔集、軟件或硬件的更改[6],主要通過(guò)輸出產(chǎn)品的變更升級(jí),使目前的異常在新版輸出產(chǎn)品中得以解決。開發(fā)團(tuán)隊(duì)根據(jù)異常的修復(fù)緊急度要求,在下一階段開發(fā)工作結(jié)束前,及時(shí)解決每項(xiàng)關(guān)鍵異常,保證關(guān)鍵異常不向開發(fā)后續(xù)階段傳遞。對(duì)于沒(méi)有及時(shí)解決的非關(guān)鍵異常,應(yīng)繼續(xù)進(jìn)行跟蹤,確保在產(chǎn)品交付用戶前解決。
異常會(huì)導(dǎo)致軟件的開發(fā)不滿足預(yù)定功能和質(zhì)量要求,異常的積累會(huì)給產(chǎn)品質(zhì)量、項(xiàng)目進(jìn)度、項(xiàng)目成本帶來(lái)極大的風(fēng)險(xiǎn)。因此V&V活動(dòng)中一項(xiàng)重要任務(wù)就是,對(duì)驗(yàn)證過(guò)程中發(fā)現(xiàn)的異常進(jìn)行分類統(tǒng)計(jì),對(duì)異常出現(xiàn)的頻次、關(guān)鍵性分布、影響范圍、解決情況等進(jìn)行統(tǒng)計(jì)分析,提示項(xiàng)目風(fēng)險(xiǎn)[7]。下面是基本的統(tǒng)計(jì)分析舉例:
(1)統(tǒng)計(jì)每個(gè)輸出驗(yàn)證對(duì)象檢查項(xiàng)總數(shù)和該驗(yàn)證對(duì)象出現(xiàn)的異常項(xiàng)數(shù),以及不同嚴(yán)重等級(jí)異常的數(shù)量,分析異常項(xiàng)占檢查總項(xiàng)的比例,得出產(chǎn)品開發(fā)輸出對(duì)輸入基準(zhǔn)的偏離程度,提示設(shè)計(jì)風(fēng)險(xiǎn)。
如表2所示為異常分類統(tǒng)計(jì)數(shù)據(jù),可以得出異常項(xiàng)占檢查項(xiàng)總數(shù)的比例為47/385,即該階段設(shè)計(jì)偏離程度為12%,存在設(shè)計(jì)風(fēng)險(xiǎn)。參考圖3異常分布柱形圖,可以得知單個(gè)驗(yàn)證對(duì)象的設(shè)計(jì)偏離程度。
表2 異常分類統(tǒng)計(jì)表(示例)
圖2 設(shè)計(jì)偏離分布圖(示例)
(2)對(duì)異常的解決情況進(jìn)行跟蹤,統(tǒng)計(jì)每個(gè)關(guān)鍵性等級(jí)的異常項(xiàng)數(shù)和異常解決數(shù),分析關(guān)鍵、非關(guān)鍵異常解決項(xiàng)數(shù),如果關(guān)鍵異常項(xiàng)沒(méi)有全部解決,需要提示開發(fā)團(tuán)隊(duì),不得結(jié)束下一階段的開發(fā)工作,防止該階段的關(guān)鍵異常引入到下一階段的工作中去。如圖3所示,XXX.1,XXX.2的關(guān)鍵異常項(xiàng)沒(méi)有全部解決,因此XXX.1,XXX.2的設(shè)計(jì)不得結(jié)束下一階段的開發(fā)工作。
圖3 關(guān)鍵異常解決情況圖(示例)
該異常處理流程,在某核電機(jī)組安全級(jí)DCS開發(fā)過(guò)程中得以應(yīng)用。每階段的異常問(wèn)題經(jīng)過(guò)分析評(píng)估,并確定關(guān)鍵性等級(jí),設(shè)計(jì)團(tuán)隊(duì)按修復(fù)緊急度要求進(jìn)行異常解決,在下一階段設(shè)計(jì)工作結(jié)束前,將關(guān)鍵異常問(wèn)題全部解決,防止關(guān)鍵異常向開發(fā)的后續(xù)階段傳遞。減少了后續(xù)階段異常的數(shù)量,降低了開發(fā)后期異常修復(fù)的成本。
表3 異常統(tǒng)計(jì)數(shù)據(jù)
核安全級(jí)軟件開發(fā)與V&V過(guò)程階段同步執(zhí)行,及時(shí)發(fā)現(xiàn)軟件開發(fā)過(guò)程中產(chǎn)品的異常問(wèn)題并進(jìn)行報(bào)告,對(duì)軟件在開發(fā)過(guò)程中出現(xiàn)的偏離進(jìn)行控制,保證每一開發(fā)階段的產(chǎn)品滿足前一階段的需求?;诋惓5挠绊懞蠊麌?yán)重性確定其關(guān)鍵性等級(jí),前一階段的關(guān)鍵異常在下一階段開發(fā)活動(dòng)結(jié)束前必須全部解決,有效避免了關(guān)鍵異常向開發(fā)的后續(xù)階段傳遞,大大減少了后續(xù)階段異常的數(shù)量,降低了開發(fā)后期異常修復(fù)的成本。
圖4 異常分布趨勢(shì)圖
[1] 李鐸, 張良駒, 馮俊婷. 安全軟件驗(yàn)證與確認(rèn)中的單元模塊測(cè)試技術(shù)[J]. 原子能科學(xué)技術(shù) 2008, 42( 6 ) : 552 - 556.
[2] RG1.168-2013, VERIFICATION, VALIDATION, REVIEWS, AND AUDITS FOR DIGITAL COMPUTER SOFTWARE USED IN SAFETY SYSTEMS OF NUCLEAR POWER PLANTS.
[3] IEEE1012-2004, IEEE Standard for Software Verification and Validation[S].
[4] 張冬偉, 李運(yùn)堅(jiān), 李相建. 核電廠安全級(jí)DCS應(yīng)用軟件V&V缺陷分類體系研究與應(yīng)用[R]. 中國(guó)核科學(xué)技術(shù)進(jìn)展報(bào)告(第二卷)——中國(guó)核學(xué)會(huì)2011年學(xué)術(shù)年會(huì)論文集第10冊(cè)(核情報(bào)(含計(jì)算機(jī)技術(shù))分卷、核技術(shù)經(jīng)濟(jì)與管理現(xiàn)代化分卷), 2011.
[5] 李靜霞, 于勁松. 核電站安全級(jí)DCS缺陷危害性分級(jí)的研究與應(yīng)用[J]. 自動(dòng)化博覽, 2015, 32 ( 3 ) : 64 - 67.
[6] IEEE1059-1993, IEEE Guide for Software Verification and Validation Plans[S].
[7] IEEE1044-1993, IEEE Standard Classification for Software Anomalies[S].
Study on Software V&V Anomaly Procedures Base on Severity Classif i cation
Software Verification and Validation (V&V) is a disciplined approach to assessing software products throughout the product life cycle, and is carried out in parallel with software development. Software V&V activities identify and resolve anomalies, to control deviations in software development. Based on the characteristics of the software development lifecycle, the software V&V is used to evaluate the abnormal problems found in each stage, and the critical severity is determined according to the severity of the consequences. As a necessary condition for the end of the next stage of software development, after the key exception of the previous design stage is completely solved, the design activities of the next stage can be finished. The anomaly procedure can promote critical anomalies in a timely manner to prevent the follow-up to the development process to pass, effectively reduce the development of the late number of abnormal and repair costs. The process has been implemented in the Power Plant Project, and achieved good results.
Safety software; Verification and validation (V&V); Anomaly procedure
申高軍(1982-),男,山西人,工程師,本科,現(xiàn)就職于北京廣利核系統(tǒng)工程有限公司,任軟件V&V主管工程師,主要研究方向?yàn)楹税踩?jí)數(shù)字化儀控系統(tǒng)軟件驗(yàn)證與確認(rèn)(V&V)。