夏丹陽(yáng),劉汪平
(1.中核控制系統(tǒng)工程有限公司,北京 100176;2.中國(guó)核電工程有限公司,北京 100189)
隨著國(guó)內(nèi)外控制系統(tǒng)的發(fā)展,DCS(Distributed Control System)被廣泛地應(yīng)用于核電項(xiàng)目及其他行業(yè)。安全性及可靠性是核級(jí)DCS最終考慮的因素,目的是開(kāi)發(fā)高質(zhì)量的軟件[1]。軟件系統(tǒng)開(kāi)發(fā)過(guò)程中最難的部分是對(duì)要開(kāi)發(fā)什么做出準(zhǔn)確性的判斷。所有概念性工作最難的是建立詳細(xì)的技術(shù)需求,這部分工作的錯(cuò)誤對(duì)最終系統(tǒng)的破壞最大,也最難糾正[2]。V&V是用于在全生命周期內(nèi)評(píng)估軟件產(chǎn)品的一種嚴(yán)謹(jǐn)方法,力求保證軟件質(zhì)量并滿足用戶的需求[3]。軟件的開(kāi)發(fā)及測(cè)試都以需求作為評(píng)估標(biāo)準(zhǔn),因此需求管理是軟件開(kāi)發(fā)過(guò)程的重要組成部分,貫穿核級(jí)DCS系統(tǒng)開(kāi)發(fā)及測(cè)試的整個(gè)階段。因DCS系統(tǒng)的開(kāi)發(fā)周期長(zhǎng)、用戶需求及開(kāi)發(fā)文檔數(shù)量多,進(jìn)而要求更為有效的需求管理。
Rational把需求定義為“(正在構(gòu)建的)系統(tǒng)必須符合的條件或具備的功能”。需求管理就是:一種獲取、組織并記錄系統(tǒng)需求的系統(tǒng)化方案,以及一個(gè)使客戶與項(xiàng)目團(tuán)隊(duì)對(duì)不斷變更的系統(tǒng)需求達(dá)成并保持一致的過(guò)程[4]。
目前的很多測(cè)試及配置管理工具均預(yù)留了與需求管理工具的接口,如TP、RTC等,足見(jiàn)其重要性。

表1 比較一覽表Table 1 Comparison table
目前比較常用的需求管理工具有RTM、Borland的CaliberRM,IBM Rational的RequisitePro,IBM的DOORS。以上這些需求管理軟件在其功能上存在一定的差異,所針對(duì)的項(xiàng)目也略有不同。其中CaliberRM、RequisitePro針對(duì)于中小型項(xiàng)目,但在版本管理方面的支持較弱,無(wú)法建立基線,記錄變更。而RTM雖然可應(yīng)用于大型項(xiàng)目,但無(wú)討論及同步功能,不利于需求評(píng)審工作地開(kāi)展。IBM 的DOORS通過(guò)使用DOORS/ERS,實(shí)施多種需求管理的方法,可使項(xiàng)目的管理更加透明。它不是單純的需求跟蹤工具,而是一個(gè)多平臺(tái)的需求管理解決方案。表1是對(duì)以上4種需求管理工具的比較。
結(jié)合本項(xiàng)目的規(guī)模,DCS系統(tǒng)的需求管理的要求及DOORS軟件在市場(chǎng)上占有的用戶份額-全球約有250000的用戶等因素,選擇DOORS軟件作為核電DCS系統(tǒng)的需求管理工具。
軟件測(cè)試是保證軟件質(zhì)量的重要環(huán)節(jié),而穩(wěn)定的需求則是軟件測(cè)試的關(guān)鍵[5,6]。然而在DCS系統(tǒng)開(kāi)發(fā)過(guò)程中需求變更頻繁,采用紙質(zhì)及電子版形式無(wú)法保證完整的記錄變更,需求管理工具則可以。其優(yōu)點(diǎn)在于以下幾個(gè)方面:
1)支持多人同時(shí)在線修改同一文檔。
2)保證需求更新后,開(kāi)發(fā)及測(cè)試人員知悉的實(shí)時(shí)性。
3)保證需求管理的同步性,有效解決開(kāi)發(fā)及測(cè)試人員之間對(duì)需求掌握的偏差問(wèn)題。
4)需求變更信息易得性,包括需求變更日期、變更人員、變更位置、變更后版本。

圖1 需求管理流程圖Fig.1 Requirements management process
5)可對(duì)需求建立討論,方便需求評(píng)審前意見(jiàn)的交流。
6)權(quán)限管理,通過(guò)設(shè)定相應(yīng)的權(quán)限,可控制重要文件的獲取。
7)通過(guò)打基線,可進(jìn)行版本的管理。
8)對(duì)于復(fù)雜的模塊,可通過(guò)DXL語(yǔ)言,在模板庫(kù)中建立模板,生成模塊時(shí)調(diào)用模板。
9)將全部需求、屬性和跟蹤信息存放在數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)可移植復(fù)用。
測(cè)試是為支持V&V目的而執(zhí)行的,測(cè)試包括4個(gè)階段,即部件測(cè)試、集成測(cè)試、回歸測(cè)試、系統(tǒng)測(cè)試,其中回歸測(cè)試貫穿于其他3個(gè)測(cè)試階段。需求的變更會(huì)導(dǎo)致測(cè)試用例的增加。DOORS軟件不僅可以進(jìn)行需求管理,也可進(jìn)行測(cè)試用例管理,在測(cè)試用例管理上,其優(yōu)點(diǎn)在于:
a)通過(guò)鏈接的功能,實(shí)現(xiàn)需求與測(cè)試用例之間的鏈接,鏈接可快速地跟蹤某個(gè)數(shù)據(jù)變化對(duì)系統(tǒng)其它部分的影響。
b)可進(jìn)行需求跟蹤,需求跟蹤可進(jìn)行入向及出向鏈接的分析,通過(guò)比較不同版本的需求跟蹤矩陣(RTM)模塊可以清楚地跟蹤到哪些需求及用例被更改過(guò),方便用例與需求的同步。
c)測(cè)試用例覆蓋率統(tǒng)計(jì),通過(guò)DOORS軟件可以統(tǒng)計(jì)測(cè)試用例對(duì)需求的覆蓋率,評(píng)估測(cè)試用例是否完全覆蓋到需求。
核級(jí)DCS系統(tǒng)所處的位置決定了其必須具備安全性、可靠性。而以需求作為重要評(píng)價(jià)依據(jù)的測(cè)試正是驗(yàn)證核電廠軟件功能可用性、可靠性、安全性的關(guān)鍵點(diǎn)。測(cè)試不系統(tǒng)、不全面,不僅會(huì)導(dǎo)致測(cè)試結(jié)果的錯(cuò)誤,還會(huì)影響后續(xù)現(xiàn)場(chǎng)調(diào)試,更為嚴(yán)重的是可能會(huì)對(duì)以后的核電廠運(yùn)行造成隱患。結(jié)合需求管理工具在需求及用例管理上的諸多優(yōu)點(diǎn),決定了DCS系統(tǒng)采用需求管理工具是必要的。

圖2 版本變更比較Fig.2 A version change
DCS系統(tǒng)需求管理是整個(gè)核電項(xiàng)目開(kāi)發(fā)及V&V中的重要環(huán)節(jié),開(kāi)發(fā)及V&V工程師工作的開(kāi)展均以需求作為評(píng)估。核電DCS系統(tǒng)需求管理貫穿于整個(gè)開(kāi)發(fā)及測(cè)試過(guò)程中,不容小視。
需求管理可分為:需求變更管理、需求版本管理、需求跟蹤管理。圖1為DCS系統(tǒng)需求管理的流程。
需求變更管理包括對(duì)評(píng)審?fù)ㄟ^(guò)的需求建立基線,確定需要跟蹤的重要依賴關(guān)系,建立相關(guān)項(xiàng)之間的可追溯性,以及變更控制等活動(dòng)。
需求是軟件開(kāi)發(fā)和測(cè)試的綱領(lǐng),其變更主要來(lái)自客戶對(duì)產(chǎn)品要求的變化,可分為需求刪除、需求增加、需求改變。

圖3 文檔跟蹤Fig.3 Document tracking
盡管需求變更是允許的,但需求變更不僅影響測(cè)試用例的數(shù)量及測(cè)試結(jié)果,還影響開(kāi)發(fā)工作的重新執(zhí)行,重新設(shè)計(jì)和編碼,應(yīng)該盡量地避免和減少。核電項(xiàng)目規(guī)模大,需求數(shù)量多,在實(shí)際研發(fā)過(guò)程中變更次數(shù)也較多。在DCS系統(tǒng)研發(fā)項(xiàng)目進(jìn)行過(guò)程中,需求管理員應(yīng)定期對(duì)軟件需求變更情況做記錄并進(jìn)行評(píng)估,分析變更對(duì)項(xiàng)目的影響。本項(xiàng)目對(duì)需求變更程度的評(píng)估是通過(guò)變更指標(biāo)實(shí)現(xiàn)的。設(shè)r為軟件需求變更指標(biāo),S為某個(gè)時(shí)間點(diǎn)的需求數(shù)量,C1為某時(shí)間段內(nèi)增加的需求數(shù)量,C2為某時(shí)間段修改的需求數(shù)量,C3為某時(shí)間段內(nèi)刪除的需求數(shù)量,則

r給出的是需求變更程度的量化度量。r指標(biāo)越接近于1,說(shuō)明被測(cè)試的軟件需求越穩(wěn)定。
需求管理及測(cè)試人員可以根據(jù)項(xiàng)目情況為r設(shè)置一個(gè)閾值,本項(xiàng)目設(shè)定的閾值為0.75,r指標(biāo)低于該閾值時(shí),表明軟件需求變更過(guò)于頻繁,應(yīng)暫停測(cè)試。
DOORS軟件可對(duì)需求文檔的版本進(jìn)行管理,無(wú)需借助其他版本管理工具,就可比較出版本的變化和差異。對(duì)于需求版本的管理是通過(guò)基線來(lái)實(shí)現(xiàn)的。需求管理員對(duì)評(píng)審?fù)ㄟ^(guò)的需求打基線,并進(jìn)行不同版本之間的比較,即比較當(dāng)前版本與歷史版本的基線。比較結(jié)果會(huì)以不同狀態(tài)顯示用戶修改、新增和刪除需求條目的情況。圖2為兩個(gè)不同版本需求的比較。

圖4 需求跟蹤矩陣Fig.4 Requirements traceability matrix

圖5 鏈接關(guān)系圖Fig.5 Link diagram

圖6 狀態(tài)跟蹤表Fig.6 State tracking table
需求跟蹤是開(kāi)發(fā)活動(dòng)的一項(xiàng)重要任務(wù),其結(jié)果可用于可追溯性分析,對(duì)配置管理、測(cè)試覆蓋分析、V&V結(jié)果分析、回歸測(cè)試、關(guān)鍵性評(píng)估和V&V管理決策起到支持作用。其目的是建立與維護(hù)“需求-設(shè)計(jì)-實(shí)現(xiàn)-測(cè)試-安裝與檢驗(yàn)-運(yùn)行與維護(hù)”之間的一致性。需求跟蹤要求對(duì)需求進(jìn)行正、反兩個(gè)方向的跟蹤,是存在于軟件生命各階段中一項(xiàng)持續(xù)和不斷更新的任務(wù)。需求跟蹤管理包括兩部分:創(chuàng)建需求跟蹤鏈及需求狀態(tài)跟蹤。
1)創(chuàng)建需求跟蹤鏈
需求跟蹤要依賴于跟蹤鏈,為了保證可跟蹤能力,每一個(gè)對(duì)象的標(biāo)識(shí)都要求是唯一的。DOORS軟件中DCS系統(tǒng)的需求跟蹤鏈?zhǔn)亲粉櫟接脩粜枨蟮?,鏈接的文檔包括開(kāi)發(fā)需求、測(cè)試需求、設(shè)計(jì)、測(cè)試用例等其他系統(tǒng)元素。在DOORS中通過(guò)traceability wizard(跟蹤向?qū)В┥筛櫼晥D,可顯示需求演化的整個(gè)過(guò)程。需求跟蹤結(jié)束后,需求管理員可以利用管理工具自動(dòng)生產(chǎn)一份RTM(Requirement Tracing Matrix,需求跟蹤矩陣),圖3、圖4為整個(gè)項(xiàng)目開(kāi)發(fā)中文檔的跟蹤關(guān)系及RTM。
DCS系統(tǒng)從結(jié)構(gòu)上可劃分為過(guò)程級(jí)、操作級(jí)和管理級(jí)。過(guò)程級(jí)主要由過(guò)程控制站、I/O單元和現(xiàn)場(chǎng)儀表組成。操作級(jí)包括操作員站和工程師站,分別完成HMI(人機(jī)交互界面)軟件的實(shí)時(shí)監(jiān)控及HMI軟件的組態(tài),其中HMI軟件的主要功能有報(bào)警、故障、當(dāng)前值、模擬流程圖、工況等。管理級(jí)主要是工廠管理信息系統(tǒng)[8]。IEEE 1012-2004是V&V遵循的主要標(biāo)準(zhǔn)[7],結(jié)合IEEE 1012的標(biāo)準(zhǔn)和研發(fā)過(guò)程相關(guān)要求及項(xiàng)目實(shí)際情況,DCS系統(tǒng)的需求跟蹤活動(dòng)介入軟件研發(fā)的各個(gè)階段,包括需求階段、概要設(shè)計(jì)階段、詳細(xì)設(shè)計(jì)階段和測(cè)試階段。每個(gè)階段都需進(jìn)行相關(guān)的鏈接,可以有效的管理變化。在每個(gè)階段需求管理員將跟蹤情況匯總,由DOORS軟件自動(dòng)生產(chǎn)RTM。同時(shí)進(jìn)行可追溯性分析,形成分析報(bào)告,評(píng)估需求跟蹤的一致性、完整性和正確性。3個(gè)階段完成后,可形成一個(gè)總的RTM,評(píng)估整個(gè)DCS系統(tǒng)需求在設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試的可追溯性關(guān)系。圖5的V模型顯示了DCS系統(tǒng)不同研發(fā)階段文檔之間的鏈接關(guān)系。
2)需求狀態(tài)跟蹤
在需求管理過(guò)程中,跟蹤每項(xiàng)需求的狀態(tài)也是需求管理的一個(gè)重要方面。需求狀態(tài)作為需求的一個(gè)屬性,可以反映需求的當(dāng)前情況。在每一種可能的狀態(tài)類別中,如果能周期性地報(bào)告各狀態(tài)類別在整個(gè)需求中所占的百分比將會(huì)改進(jìn)項(xiàng)目的監(jiān)控工作。圖6為一個(gè)需求狀態(tài)跟蹤表的例子。
本文在總結(jié)了需求管理工具在核電DCS系統(tǒng)研發(fā)中應(yīng)用的必要性的基礎(chǔ)上,給出了核電DCS開(kāi)發(fā)過(guò)程的需求管理中各子項(xiàng)管理的執(zhí)行流程,探索性地提出各研發(fā)階段的需求跟蹤任務(wù)和關(guān)鍵活動(dòng),為執(zhí)行其他行業(yè)的軟件需求管理提供參考。
[1]楊永祥,丁軍.核電站數(shù)字化儀控系統(tǒng)軟件驗(yàn)證和確認(rèn)[M].廈門:廈門大學(xué)出版社,2010:18-20.
[2]Brooks,F.P.,Jr.. No Silver Bullet Essence and Accidents of Software Engineering[J].Computer,1987,20(4):10-19.
[3]劉斌.軟件驗(yàn)證與確認(rèn)[M].北京:國(guó)防工業(yè)出版社,2011:4-5.
[4]吳艷艷,周長(zhǎng)倫,姜家軒,等.軟件項(xiàng)目管理中的需求管理[J].信息技術(shù)與信息化,2008,2:67-68.
[5]KENNER C,FALK J.計(jì)算機(jī)軟件測(cè)試[M].北京:機(jī)械工業(yè)出版社,2004:58.
[6]PERRY W E.軟件測(cè)試的有效方法[M].北京:機(jī)械工業(yè)出版社,2004:103.
[7]The institute electrical and electronics engineers,inc.IEEE standard for software verification and validation[S].2004.
[8]DCS[百度百科].http://baike.baidu.com/link?url=FsaYRQIwLl_a6e4RfOXsXbISXay6eaBkInBQn1Lqd91-fbOklOzJkiPH5AmeoXOF,2015.