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