王定濤 賀濤 祝國(guó)錦
摘 要:軌道交通軟件作為SL4級(jí)別的高安全型軟件,其軟件開(kāi)發(fā)過(guò)程需要生成相應(yīng)的證據(jù),顯示其輸出可追蹤至相應(yīng)的活動(dòng)及輸入。在軟件開(kāi)發(fā)流程和安全驗(yàn)證管理中,本文對(duì)軟件生命周期的文檔通過(guò)提取文檔結(jié)構(gòu)的追溯矩陣對(duì)應(yīng)ID,私有定制正則表達(dá)式在需求管理工具中進(jìn)行文檔追溯管理。通過(guò)定制報(bào)告生成軟件文檔上下追溯管理報(bào)告。滿足安全認(rèn)證標(biāo)準(zhǔn)EN 50128:2011/IEC 62279:2015對(duì)高安全性軟件追溯性的要求。
關(guān)鍵詞:軌道交通;安全驗(yàn)證;文檔追溯;需求管理
在軌道交通領(lǐng)域,軟件開(kāi)發(fā)各個(gè)階段的可追溯性[ 1 ],在國(guó)際安全標(biāo)準(zhǔn)IEC 62279中被明確要求,在高安全軟件的安全認(rèn)證流程中,從系統(tǒng)需求到軟件需求、一直到源代碼之間的可追蹤性,可通過(guò)追蹤性來(lái)驗(yàn)證所有需求是否被完整地實(shí)現(xiàn)。需求管理作為需求工程的主要內(nèi)容[ 2 ]。很多時(shí)候作為一個(gè)軟件能否成功的標(biāo)準(zhǔn)。而借助于需求管理工具可以有效解決軟件項(xiàng)目生命周期中需求管理方面的問(wèn)題,有效縮減成本[ 3 ]。需求追蹤管理工具有需求追蹤和影響分析的解決方案,能夠規(guī)范軟件設(shè)計(jì)團(tuán)隊(duì)流程。同時(shí)軟件的需求管理是軟件的設(shè)計(jì)、開(kāi)發(fā)和維護(hù)的重要前提[ 4 ]。相對(duì)于人工建立的追溯矩陣,所有的內(nèi)容都需要從Word文檔中手動(dòng)提取相應(yīng)追溯矩陣,費(fèi)時(shí)費(fèi)力?;谛枨蠊芾砉ぞ邔?duì)軟件全過(guò)程開(kāi)發(fā)文檔進(jìn)行有效的控制。對(duì)軟件開(kāi)發(fā)各個(gè)階段的開(kāi)發(fā)、測(cè)試以及驗(yàn)證文檔在需求管理工具中進(jìn)行關(guān)聯(lián)性定義和跟蹤。能夠方便、快捷的給出最新的開(kāi)發(fā)文檔之間的追蹤信息,為軟件的安全認(rèn)證開(kāi)發(fā)提供最堅(jiān)實(shí)的證據(jù)流程。
1 需求管理工具結(jié)構(gòu)
RMGateway需求管理工具為軟件開(kāi)發(fā)過(guò)程提供了一個(gè)較好的追溯解決方案,它可以配置解析多種類(lèi)型文檔的可追溯信息,更新文件的可追溯關(guān)系,提供覆蓋率和影響分析。通過(guò)對(duì)需求與設(shè)計(jì)間的覆蓋分析,對(duì)需求變更等進(jìn)行管理,滿足高安全性嵌入式軟件對(duì)開(kāi)發(fā)流程的高要求。利用需求管理工具建立輸入與輸出的關(guān)聯(lián)關(guān)系,輸入一些文本處理文檔如Word,Excel,PDF等,代碼文件如C,C++等,通過(guò)需求管理工具圖形用戶(hù)界面進(jìn)行相應(yīng)的追溯管理,最后生成相應(yīng)的報(bào)告。需求管理工具實(shí)現(xiàn)軟件追溯的結(jié)構(gòu)流程如圖1所示。借助需求管理工具功能模塊,可以在軟件設(shè)計(jì)各階段中實(shí)現(xiàn)追溯性,同時(shí)能與其它需求管理工具如DOORS等的接口建立聯(lián)系,從而實(shí)現(xiàn)軟件追溯性的可移植、可共享。
2 軟件文檔追溯管理實(shí)現(xiàn)
2.1 應(yīng)用正則表達(dá)式配置文件分析類(lèi)型
對(duì)于需求管理工具,每個(gè)企業(yè)都有自己定義的輸入輸出方式。這里我們通過(guò)正則表達(dá)式用基于項(xiàng)目或企業(yè)標(biāo)準(zhǔn)的自定義模板,對(duì)于可追溯要素編輯正則表達(dá)式,從原始版本到My_type類(lèi)型,修改標(biāo)準(zhǔn)類(lèi)型中的某些元素,生成自定義類(lèi)型 ,生成配置文件和項(xiàng)目文件,最后生成相應(yīng)報(bào)告。
在RMGateway需求管理工具中在菜單上選擇
2.2 軟件文檔追蹤實(shí)現(xiàn)
為了定義文檔間的追蹤關(guān)系,如果想要新增其他待追蹤的文件,利用需求管理工具分析追蹤信息,通過(guò)正則表達(dá)式驗(yàn)證字符串ID是否符合指定特征,用來(lái)查找到特定的字符串,如上所述通過(guò)正則表達(dá)式來(lái)建立追溯關(guān)系的原理。我們通過(guò)設(shè)計(jì)正則表達(dá)式:(\s*追溯矩陣對(duì)應(yīng)ID:.*?(?:([\w*-]+)\d*)),對(duì)應(yīng)文檔中的結(jié)構(gòu)ID:(系統(tǒng)需求追溯矩陣對(duì)應(yīng)ID:RAMS-S-0001),而正則表達(dá)式(覆蓋的ID:(.*)\。)則對(duì)應(yīng)于(覆蓋的ID:D-S-0001。),點(diǎn)擊配置文件和項(xiàng)目文件,選擇需要追溯的文檔,配置成功后界面顯示文檔追蹤結(jié)果覆蓋鏈接關(guān)系以及追溯矩陣覆蓋百分比,如圖2所示。綠色線代表上下級(jí)文檔追溯矩陣完全覆蓋,黃色線表示追溯矩陣大部分覆蓋,紅色線表示追溯矩陣沒(méi)有覆蓋或者只有少部分覆蓋。通過(guò)這樣的追溯矩陣關(guān)系,我們能輕易查找出文檔間的追溯關(guān)系是否完整,每一條需求都完整實(shí)現(xiàn),給出軟件設(shè)計(jì)的各個(gè)文檔追溯關(guān)聯(lián)的的證據(jù)鏈,作為安全認(rèn)證的重要的證據(jù)。同時(shí)保證整個(gè)產(chǎn)品功能的順利實(shí)現(xiàn)。
在軟件測(cè)試時(shí),當(dāng)需要對(duì)軟件測(cè)試用例ID關(guān)聯(lián)需求或者設(shè)計(jì)ID時(shí),我們?cè)诰帉?xiě)測(cè)試測(cè)試用例時(shí),在測(cè)試用例中我們編寫(xiě)# Test Reference: CC_TEST_CDC_01,為了在測(cè)試用例中便于管理,我們可以使得在RMGateway需求管理工具中書(shū)寫(xiě)正則表達(dá)式^#[ \t]*Test[ \t]*Reference[ \t]*:[ \t]*(.+)$來(lái)匹配該需求編號(hào),同樣在測(cè)試用例中我們給每一條測(cè)試用例都對(duì)應(yīng)相應(yīng)的需求覆蓋編號(hào)# Covered Requirements: CC_HLR_CDC_01,同樣我們?cè)赗MGateway需求管理中編寫(xiě)^#[ \t]*Covered[ \t]*Requirements[ \t]*:[ \t]*(.+)$來(lái)覆蓋軟件需求中的與該測(cè)試用例對(duì)應(yīng)的需求編號(hào)CC_HLR_CDC_01。通過(guò)這樣對(duì)正則表達(dá)式的定制很好的將軟件需求和測(cè)試用例關(guān)聯(lián),以及軟件詳細(xì)設(shè)計(jì)和軟件結(jié)構(gòu)設(shè)計(jì)這些文檔,同理按照正則表達(dá)式定制字符串ID來(lái)進(jìn)行關(guān)聯(lián)覆蓋管理。
2.3 定制報(bào)告
需求管理工具缺省報(bào)告雖然可以做到雙向追溯,但是也存在一些問(wèn)題,格式內(nèi)容上不能完全滿足安全認(rèn)證的要求,每個(gè)追溯關(guān)系沒(méi)有對(duì)應(yīng)驗(yàn)證結(jié)論的列等。對(duì)于有些不能達(dá)到要求的不滿足項(xiàng),我們則通過(guò)定制報(bào)告功能來(lái)實(shí)現(xiàn)。
首先我們確定追溯需要的數(shù)據(jù)源:包括確定追溯對(duì)象文件、確定上游文件、從文件要提取哪些信息,例如追溯ID, 覆蓋信息,追溯正文內(nèi)容等。根據(jù)報(bào)告的結(jié)構(gòu)模式我們來(lái)定制報(bào)告。如下所示步驟:
A)定制報(bào)告的結(jié)構(gòu)的幾個(gè)部分:列表顯示格式化的元素,不同數(shù)據(jù)類(lèi)型,待追溯的文件。
B)創(chuàng)建報(bào)告的方式:新建或者從現(xiàn)有報(bào)告中復(fù)制生成。
C)創(chuàng)建A TABLE表:拖動(dòng)一個(gè)Table到指定區(qū)域,填寫(xiě)列的個(gè)數(shù),插入table row 元素,插入 Data in Reports。
與上述正則表達(dá)式定制特定字符串相類(lèi)似,在項(xiàng)目配置工程中建立TYPE files 類(lèi)型分析文件,執(zhí)行新的定制文件生成追溯矩陣,待追溯文件已指定覆蓋ID,選擇待追溯文件,從報(bào)告按鈕—工程報(bào)告中選擇新的定制報(bào)告文件名。這樣定制報(bào)告就生成了。
3 小結(jié)
本文為了保證軌道交通高安全性嵌入式軟件的可靠性和高安全性,本文介紹了如何依照需求管理工具對(duì)高安全類(lèi)軟件的設(shè)計(jì)文檔進(jìn)行追溯管理,設(shè)計(jì)了相關(guān)的正則表達(dá)式來(lái)關(guān)聯(lián)軟件生命周期中各個(gè)階段文檔的追溯矩陣對(duì)應(yīng)ID。用以保證整個(gè)軟件生命周期中軟件的開(kāi)發(fā)測(cè)試整個(gè)流程符合安全認(rèn)證中的要求。與在軟件追溯管理過(guò)程中應(yīng)用人工去手工提取追溯矩陣,所有的內(nèi)容都需從WORD文檔中手動(dòng)提取填寫(xiě)過(guò)于復(fù)雜相比。提出的應(yīng)用需求管理工具對(duì)軟件應(yīng)用追溯基于正則表達(dá)式自由定制追溯矩陣,具有定義清晰、概念完整、可度量且易于操作等突出特點(diǎn)。并且通過(guò)定制報(bào)告方式自由輸出進(jìn)行驗(yàn)證。通過(guò)在實(shí)際項(xiàng)目中應(yīng)用, 可有效追蹤需求變更等對(duì)軟件開(kāi)發(fā)過(guò)程產(chǎn)生的不良影響,同時(shí)對(duì)于整個(gè)軟件需求的順利實(shí)現(xiàn),產(chǎn)品的成功開(kāi)發(fā)都具有重要的意義。
參考文獻(xiàn):
[1] IEC 62279 Edition 2.0: Generic software development[s].2015.
[2] 徐小平.CMM中的需求管理[J].微機(jī)發(fā)展,2004,6:79-81
[3] 孫莉.淺談軟件項(xiàng)目中需求管理工具的作用.寧夏大學(xué),2012.
[4] 丁銳.淺析軟件項(xiàng)目管理中的需求管理.經(jīng)營(yíng)管理,摩卡軟件(天津)有限公司北京分公司,2009.
[5] Jeffrey E.F.Friedl著,余晟譯.精通正則表達(dá)式[M].第三版.北京:電子工業(yè)出版社,2007.
作者簡(jiǎn)介:王定濤(1987-),男,碩士,主要從事軌道交通及列車(chē)監(jiān)控方面軟硬件技術(shù)研究工作。