芮吉祥
(上海船舶運輸科學(xué)研究所有限公司 艦船自動化系統(tǒng)事業(yè)部,上海 200135)
近年來,軍用軟件的工程化水平不斷提升,想要研制出高品質(zhì)的軍用產(chǎn)品,就必須大力發(fā)展軟件開發(fā)技術(shù),將其作為信息技術(shù)的核心[1]。目前很多國家都已將軟件的研制能力和生產(chǎn)效率作為衡量其經(jīng)濟和科技發(fā)展水平的重要標(biāo)準(zhǔn)之一[2]?!败浖x裝備”是武器裝備信息化、智能化發(fā)展的必然趨勢,軍用軟件在信息化戰(zhàn)爭和軍事智能化發(fā)展中起著基礎(chǔ)性、決定性作用。從建設(shè)世界一流軍隊、聚焦備戰(zhàn)的層面看,我國與軍事強國的競爭在某種意義上是軟件研制和生產(chǎn)能力的競爭。GJB 5000A是一種產(chǎn)品開發(fā)模型,描述的是一組有效過程的特征,提供的是一套最佳實踐。將軟件開發(fā)視為一個過程,根據(jù)該原則對軟件開發(fā)和維護進行過程監(jiān)控和研究,使其更科學(xué)化、標(biāo)準(zhǔn)化,能使企業(yè)更好地實現(xiàn)工程目標(biāo)。因此,不斷提升軟件產(chǎn)品的質(zhì)量是軟件研制工程中的核心任務(wù)之一。本文通過實例解析軍用軟件工作產(chǎn)品和過程活動的檢查要點,介紹質(zhì)量保證人員(Quality Assurance Personnel,QA)在軍用軟件開發(fā)階段的主要工作特點和起到的重要作用。
在《軍用軟件研制能力成熟度模型》體系文件中,共劃分了7個過程域,過程和產(chǎn)品質(zhì)量保證(Process and Product Quality Assurance,PPQA)貫穿整個軟件生命周期,占據(jù)著非常重要的地位[3]。項目級軟件QA制訂并維護《軟件質(zhì)量保證計劃》,根據(jù)適用的過程說明、標(biāo)準(zhǔn)和規(guī)程,對軟件項目遵循的過程和工作產(chǎn)品進行客觀的評價,記錄、跟蹤不符合項,并向組織級QA、軟件項目組(或軟件開發(fā)組)成員和管理部門領(lǐng)導(dǎo)反饋質(zhì)量保證活動的結(jié)果,確保不符合項得到解決[3]。PPQA活動的流程見圖1。
項目級QA制訂和維護《軟件質(zhì)量保證計劃》,對軟件項目的過程和產(chǎn)品進行客觀評價,交流、分析在對過程和產(chǎn)品進行評價時發(fā)現(xiàn)的問題,記錄、跟蹤不符合項,確保不符合項得到調(diào)整[3]。形成PPQA記錄,接受、配合評價工作,糾正不符合項。組織級QA審核《軟件質(zhì)量保證計劃》,在每個階段或里程碑節(jié)點對項目級QA的工作進行評價,審核其質(zhì)量活動和工作產(chǎn)品。
QA在整個軟件過程管理中對所有過程域進行監(jiān)督,能掌握過程中的第一手資料,對完善項目過程具有重要作用[4]。
對于具體項目而言,工作產(chǎn)品審核的依據(jù)是GJB 438B—2009 《軍用軟件開發(fā)文檔通用要求》,項目級QA應(yīng)嚴(yán)格按照標(biāo)準(zhǔn)審核,不得參雜任何主觀因素,做到客觀、公正、仔細(xì)、認(rèn)真。
例一:在《H1224電站監(jiān)控系統(tǒng)(下位機)軟件研制任務(wù)書V1.0》的審核中,項目級QA并沒有嚴(yán)格按GJB 438B—2009的要求審核,導(dǎo)致該任務(wù)書的軟、硬件環(huán)境描述內(nèi)容缺失,在組織級QA的審查和監(jiān)督下才對問題進行詳細(xì)記錄并跟蹤解決,見圖2。工作實踐表明,項目級QA與組織級QA之間的交流非常重要,有問題需及時溝通,項目級QA要虛心接受組織級QA的批評和指導(dǎo),保持積極進取的心態(tài),認(rèn)真彌補自己在審核工作中存在的不足,認(rèn)真查閱文檔,客觀公正地記錄不符合項,并跟蹤解決。
圖2 《H1224電站監(jiān)控系統(tǒng)軟件(下位機)軟件研制任務(wù)書V1.0》審核截圖
例二:在《H1224電站監(jiān)控系統(tǒng)(下位機)軟件設(shè)計說明V1.0》的審核中,項目級QA對工作產(chǎn)品的審核不能局限于當(dāng)前階段的工作產(chǎn)品,需建立系統(tǒng)性思維,貫穿前后、承上啟下,熟悉每項工作產(chǎn)品與其他工作產(chǎn)品之間的關(guān)系,查漏補缺,針對遺漏或錯誤的部分開出不符合項。
圖3為《H1224電站監(jiān)控系統(tǒng)(下位機)軟件需求規(guī)格說明V1.0》截圖;圖4為《H1224電站監(jiān)控系統(tǒng)(下位機)軟件設(shè)計說明V1.0》截圖。由圖3和圖4可知,“軟件設(shè)計說明”中的性能指標(biāo)應(yīng)與“軟件需求規(guī)格說明”中的有關(guān)性能指標(biāo)一一對應(yīng),遺漏的部分應(yīng)開出不符合項。
圖3 《H1224電站監(jiān)控系統(tǒng)(下位機)軟件需求規(guī)格說明V1.0》截圖
圖4 《H1224電站監(jiān)控系統(tǒng)(下位機)軟件設(shè)計說明V1.0》截圖
圖5為《H1224電站監(jiān)控系統(tǒng)軟件(下位機)軟件單元測試說明V1.0》截圖。單元測試計劃應(yīng)根據(jù)軟件設(shè)計說明中的詳細(xì)設(shè)計部分[5]編制,《H1224電站監(jiān)控系統(tǒng)軟件(下位機)軟件單元測試說明V1.0》第四章表2測試項列表中的測試項“直流模擬量輸入、直流模擬量輸出、預(yù)定義邏輯處理功能”在單元測試計劃相關(guān)章節(jié)中未見說明,內(nèi)容不能一一對應(yīng),此時也應(yīng)開出不符合項。
圖5 《H1224電站監(jiān)控系統(tǒng)軟件(下位機)軟件單元測試說明V1.0》截圖
例三:項目級QA應(yīng)有相應(yīng)的專業(yè)背景,比如了解電站監(jiān)控系統(tǒng)的基本技能,能對項目的性能指標(biāo)和技術(shù)參數(shù)熟記于心。《H1224電站監(jiān)控系統(tǒng)(下位機)軟件設(shè)計說明V1.0》中對性能的描述為“刷新時間100 ms”(見表1),《H1224電站監(jiān)控系統(tǒng)(下位機)軟件需求規(guī)格說明V1.0》中對性能需求的描述為“實時數(shù)據(jù)刷新頻率為10 ms”(見表2),二者之間存在沖突,很明顯此處數(shù)據(jù)錯誤,因此需對性能指標(biāo)數(shù)字的敏感程度形成條件反射。
表1 《H1224電站監(jiān)控系統(tǒng)(下位機)軟件設(shè)計說明V1.0》中的功能和性能描述
表2 《H1224電站監(jiān)控系統(tǒng)(下位機)軟件需求規(guī)格說明V1.0》中的功能和性能需求描述
例四:項目QA在進行代碼審查時應(yīng)嚴(yán)格按《過程和產(chǎn)品質(zhì)量保證過程域》中規(guī)定的百分比進行代碼抽查,例如H1224電站監(jiān)控系統(tǒng)軟件(下位機),該項目軟件估算表代碼行數(shù)為5 396行,實際代碼行數(shù)為4 999行,小于10 000行代碼應(yīng)按50%比例隨機抽查,實操中該項目QA抽查的代碼片段見圖6。
根據(jù)代碼注釋規(guī)范的要求,重要變量和典型算法必須有注釋,圖6中整形變量i的賦值運算(i=0)、算術(shù)運算(i++)和關(guān)系運算(i 1) 注釋建議采用英文及英文標(biāo)點符號。 2) 在注釋中應(yīng)標(biāo)明對象的完整名稱和用途,但應(yīng)避免代碼描述過于詳細(xì)。 3) 每行注釋的最大長度為100個字符。 4) 不允許給注釋加外框。 5) 在編寫代碼的同時給出注釋。 6) 重要變量必須有注釋。 7) 對變量的注釋與變量在同一行,所有注釋都要與相應(yīng)的變量對齊,與變量分開至少2個“Tab”鍵,例如: intm_iLevel,m_iCount; // m_iLevel…tree level // m_iCount…count of tree items stringm_strSql; //SQL 8) 典型算法必須有注釋。 9) 在循環(huán)和邏輯分支的上一行必須就近添加注釋。 10) 程序段或語句的注釋在程序段或語句的上一行添加。 11) 在代碼交付之前,必須刪掉臨時的或無關(guān)的注釋。 12) 為便于閱讀代碼,每行代碼的長度應(yīng)少于100個字符。 例五:當(dāng)發(fā)生計劃或需求變更時,項目級QA應(yīng)參加變更影響域分析,認(rèn)真核對因計劃或需求發(fā)生改變而需變更的工作產(chǎn)品,并在工作產(chǎn)品檢查單自定義欄添加需檢查的內(nèi)容,見圖7。 圖7 工作產(chǎn)品檢查單自定義欄片段 項目級QA參與軟件開發(fā)計劃的制訂工作,根據(jù)軟件開發(fā)計劃制訂《軟件質(zhì)量保證計劃》,并按計劃開展質(zhì)量保證活動。以H1224電站監(jiān)控系統(tǒng)軟件(下位機)項目過程活動審核計劃(見圖8)為例,分析如下。 軟件開發(fā)過程包含7個階段,各階段涉及的過程活動總結(jié)如下: 1) 軟件需求獲取階段,涉及的過程活動包括項目策劃活動、需求管理活動、測量分析活動、配置管理活動、任務(wù)管理活動、同行評審活動和聯(lián)合評審活動; 2) 軟件需求分析階段,涉及的過程活動包括項目策劃活動、需求管理活動、測量分析活動、配置管理活動、任務(wù)管理活動、項目監(jiān)控活動、同行評審活動、聯(lián)合評審活動、階段評審活動和里程碑評審活動; 3) 軟件設(shè)計階段,涉及的過程活動包括軟件設(shè)計活動、測量分析活動、配置管理活動、任務(wù)管理活動、項目監(jiān)控活動、需求管理活動、同行評審活動和階段評審活動; 4) 軟件實現(xiàn)與單元測試階段,涉及的過程活動包括軟件單元測試活動、測量分析活動、配置管理活動、任務(wù)管理活動、項目監(jiān)控活動、需求管理活動、同行評審活動和階段評審活動; 5) 軟件集成與測試階段,涉及的過程活動包括軟件單元集成與測試活動、測量分析活動、配置管理活動、任務(wù)管理活動、項目監(jiān)控活動、需求管理活動、同行評審活動和階段評審活動; 6) 軟件系統(tǒng)測試階段,涉及的過程活動包括軟件系統(tǒng)性合格測試活動、測量分析活動、配置管理活動、任務(wù)管理活動、項目監(jiān)控活動、需求管理活動、同行評審活動和階段評審活動; 7) 軟件驗收發(fā)布階段,涉及的過程活動包括測量分析活動、配置管理活動、任務(wù)管理活動、項目監(jiān)控活動、同行評審活動、階段評審活動和里程碑評審活動。 圖9為H1224主推進裝置控制監(jiān)測系統(tǒng)軟件實現(xiàn)與單元測試階段的過程活動。從圖9中可看出,項目任務(wù)管理活動和測量分析活動貫穿整個軟件生命周期,其中:階段時間超過45 d,在階段中和階段末各檢查1次;階段時間小于45 d,在階段末檢查。 圖9 H1224主推進裝置控制監(jiān)測系統(tǒng)軟件實現(xiàn)與單元測試階段的過程活動 涉及的變更活動包括需求變更和計劃變更:當(dāng)需求發(fā)生變更時,需進行需求管理過程活動,并配置管理過程活動檢查;當(dāng)計劃發(fā)生變更時,需進行項目監(jiān)控過程活動,并配置管理過程活動檢查。變更活動在整個過程活動中屬于比較重要的部分:當(dāng)涉及需求更改控制時,要確保識別出受影響的工作產(chǎn)品,并得到項目軟件研制人員的承諾,項目級QA需參加需求變更影響域分析;當(dāng)涉及計劃變更時,項目級QA需參加軟件開發(fā)計劃,更改影響域分析,梳理變更流程,確保后續(xù)工作按合理可行的計劃開展。關(guān)于變更涉及的需求變更和計劃變更過程活動示例如圖9所示。 在進行過程活動審核時,需特別注意到達里程碑節(jié)點的時間,整個軟件開發(fā)階段共有2個里程碑節(jié)點,分別是需求分析階段的里程碑評審活動和驗收發(fā)布階段的里程碑評審活動。需在時間節(jié)點內(nèi)檢查該階段的計劃完成情況,發(fā)現(xiàn)并糾正問題,為下一階段的工作打好基礎(chǔ)。H1224電站監(jiān)控系統(tǒng)軟件(下位機)需求分析階段的里程碑會議未在開發(fā)計劃規(guī)定的時間內(nèi)召開,這屬于嚴(yán)重不符合項,見圖10。 圖10 H1224電站監(jiān)控系統(tǒng)軟件(下位機)需求分析階段項目監(jiān)控過程活動嚴(yán)重不符合項片段 不符合項主要分為2類[4],其中: 1) 第一類不符合項可理解為項目級QA發(fā)現(xiàn)某個軟件工作產(chǎn)品或軟件過程活動存在不符合項,被評價人員認(rèn)可這是不符合項,同意立即或在約定的時間內(nèi)采取糾正措施; 2) 第二類不符合項可理解為項目級QA發(fā)現(xiàn)某個軟件工作產(chǎn)品或軟件過程活動存在不符合項,被評價人員不認(rèn)為這不是不符合項或被審核人員雖然認(rèn)為這是不符合項,但無法對其進行調(diào)整或?qū)m正措施不能達成一致。 不符合項的記錄方式是項目級QA在“軍用軟件過程管理平臺”上記錄,并在平臺的“不符合項”中提交。對于第二類不符合項,項目級QA還需將不符合項信息填寫在《軟件不符合項報告》中,例如H1224電站監(jiān)控系統(tǒng)軟件(下位機)需求分析階段的不符合項記錄情況見圖11。 在整個軟件生命周期內(nèi),將在質(zhì)量保證方面開展的工作分析體現(xiàn)在驗收發(fā)布階段撰寫的質(zhì)量保證總結(jié)報告中顯得尤為重要,下面以H1224電站監(jiān)控系統(tǒng)軟件(下位機)項目為例進行分析。 在該軟件的研制周期內(nèi)共檢查工作產(chǎn)品30個,發(fā)現(xiàn)不符合項41個,現(xiàn)已全部關(guān)閉。工作產(chǎn)品中的不符合項主要包括文檔編制依據(jù)羅列不齊全、測試項描述不完整、未描述測試相關(guān)人員的活動、文檔相應(yīng)章節(jié)遺漏有關(guān)保密的要求、工作產(chǎn)品中遺漏軟件功能和性能指標(biāo)、外部接口名稱描述不一致等。經(jīng)分析發(fā)現(xiàn),產(chǎn)生這些不符合項的主要原因有編制人員工作疏忽、對體系文件不熟悉和未嚴(yán)格按模板的要求編寫等。 在軟件研制周期內(nèi)共完成過程活動評價59個,發(fā)現(xiàn)不符合項5個,現(xiàn)已全部關(guān)閉。過程活動評價中的不符合項主要包括里程碑評審會議未在開發(fā)計劃規(guī)定的時間內(nèi)召開和周采集數(shù)據(jù)未及時提交等。經(jīng)分析,產(chǎn)生這些不符合項的主要原因有:軟件負(fù)責(zé)人臨時出差,無法在開發(fā)計劃規(guī)定的時間內(nèi)召開會議;項目組成員同時承擔(dān)多個項目,需不定期出差,造成周采集數(shù)據(jù)未能及時提交。整個軟件研制周期內(nèi)的不符合項數(shù)量統(tǒng)計見表3。 表3 不符合項數(shù)量統(tǒng)計 該項目軟件生存周期模型選用新研發(fā)的模型,其分析圖見圖12。整體質(zhì)量應(yīng)呈下降態(tài)勢,但在軟件驗收發(fā)布階段的不符合項數(shù)量呈上升態(tài)勢。通過分析發(fā)現(xiàn),出現(xiàn)該情況的原因是:軟件固件保障手冊和軟件用戶手冊編制人員的工作態(tài)度不夠端正,編寫水平有待提高,對體系文件的理解能力不到位??傮w分析該項目階段不符合項總數(shù)未出現(xiàn)持續(xù)2個階段增長的情況,整體質(zhì)量狀態(tài)和發(fā)展趨勢無異常。 圖12 新研發(fā)的軟件生存周期模型分析圖 該軟件研制周期內(nèi)的配置管理活動嚴(yán)格按《軟件配置管理計劃》執(zhí)行,不存在偏差,配置管理活動與規(guī)程相符,在《軟件配置管理計劃V1.0》中發(fā)現(xiàn)1個不符合項,已采取糾正措施,并對其進行跟蹤處理。當(dāng)配置項發(fā)生更改時,按體系文件的要求執(zhí)行更改控制,項目級配置管理員已及時更新《配置狀態(tài)報告》。 質(zhì)量保證是軟件研制能力成熟度實施中較為重要的過程,該過程執(zhí)行的質(zhì)量與軟件產(chǎn)品研制質(zhì)量有著非常重要的關(guān)系。本文重點介紹了GJB 5000A二級軟件成熟度模型7個過程域中的PPQA活動流程,闡述了項目級QA在軍用軟件開發(fā)階段的主要職責(zé)和工作步驟,通過實例解析了工作產(chǎn)品和過程活動的檢查要點,分析了不符合項的處理和反饋情況。由實踐結(jié)果可知,項目級QA對于軟件開發(fā)質(zhì)量而言具有重要的基礎(chǔ)保障作用。4 過程活動審核
5 不符合項實例分析
6 結(jié) 語