芮吉祥
(上海船舶運輸科學研究所有限公司 艦船自動化系統事業部,上海 200135)
近年來,軍用軟件的工程化水平不斷提升,想要研制出高品質的軍用產品,就必須大力發展軟件開發技術,將其作為信息技術的核心[1]。目前很多國家都已將軟件的研制能力和生產效率作為衡量其經濟和科技發展水平的重要標準之一[2]。“軟件定義裝備”是武器裝備信息化、智能化發展的必然趨勢,軍用軟件在信息化戰爭和軍事智能化發展中起著基礎性、決定性作用。從建設世界一流軍隊、聚焦備戰的層面看,我國與軍事強國的競爭在某種意義上是軟件研制和生產能力的競爭。GJB 5000A是一種產品開發模型,描述的是一組有效過程的特征,提供的是一套最佳實踐。將軟件開發視為一個過程,根據該原則對軟件開發和維護進行過程監控和研究,使其更科學化、標準化,能使企業更好地實現工程目標。因此,不斷提升軟件產品的質量是軟件研制工程中的核心任務之一。本文通過實例解析軍用軟件工作產品和過程活動的檢查要點,介紹質量保證人員(Quality Assurance Personnel,QA)在軍用軟件開發階段的主要工作特點和起到的重要作用。
在《軍用軟件研制能力成熟度模型》體系文件中,共劃分了7個過程域,過程和產品質量保證(Process and Product Quality Assurance,PPQA)貫穿整個軟件生命周期,占據著非常重要的地位[3]。項目級軟件QA制訂并維護《軟件質量保證計劃》,根據適用的過程說明、標準和規程,對軟件項目遵循的過程和工作產品進行客觀的評價,記錄、跟蹤不符合項,并向組織級QA、軟件項目組(或軟件開發組)成員和管理部門領導反饋質量保證活動的結果,確保不符合項得到解決[3]。PPQA活動的流程見圖1。
項目級QA制訂和維護《軟件質量保證計劃》,對軟件項目的過程和產品進行客觀評價,交流、分析在對過程和產品進行評價時發現的問題,記錄、跟蹤不符合項,確保不符合項得到調整[3]。形成PPQA記錄,接受、配合評價工作,糾正不符合項。組織級QA審核《軟件質量保證計劃》,在每個階段或里程碑節點對項目級QA的工作進行評價,審核其質量活動和工作產品。
QA在整個軟件過程管理中對所有過程域進行監督,能掌握過程中的第一手資料,對完善項目過程具有重要作用[4]。
對于具體項目而言,工作產品審核的依據是GJB 438B—2009 《軍用軟件開發文檔通用要求》,項目級QA應嚴格按照標準審核,不得參雜任何主觀因素,做到客觀、公正、仔細、認真。
例一:在《H1224電站監控系統(下位機)軟件研制任務書V1.0》的審核中,項目級QA并沒有嚴格按GJB 438B—2009的要求審核,導致該任務書的軟、硬件環境描述內容缺失,在組織級QA的審查和監督下才對問題進行詳細記錄并跟蹤解決,見圖2。工作實踐表明,項目級QA與組織級QA之間的交流非常重要,有問題需及時溝通,項目級QA要虛心接受組織級QA的批評和指導,保持積極進取的心態,認真彌補自己在審核工作中存在的不足,認真查閱文檔,客觀公正地記錄不符合項,并跟蹤解決。

圖2 《H1224電站監控系統軟件(下位機)軟件研制任務書V1.0》審核截圖
例二:在《H1224電站監控系統(下位機)軟件設計說明V1.0》的審核中,項目級QA對工作產品的審核不能局限于當前階段的工作產品,需建立系統性思維,貫穿前后、承上啟下,熟悉每項工作產品與其他工作產品之間的關系,查漏補缺,針對遺漏或錯誤的部分開出不符合項。
圖3為《H1224電站監控系統(下位機)軟件需求規格說明V1.0》截圖;圖4為《H1224電站監控系統(下位機)軟件設計說明V1.0》截圖。由圖3和圖4可知,“軟件設計說明”中的性能指標應與“軟件需求規格說明”中的有關性能指標一一對應,遺漏的部分應開出不符合項。

圖3 《H1224電站監控系統(下位機)軟件需求規格說明V1.0》截圖

圖4 《H1224電站監控系統(下位機)軟件設計說明V1.0》截圖
圖5為《H1224電站監控系統軟件(下位機)軟件單元測試說明V1.0》截圖。單元測試計劃應根據軟件設計說明中的詳細設計部分[5]編制,《H1224電站監控系統軟件(下位機)軟件單元測試說明V1.0》第四章表2測試項列表中的測試項“直流模擬量輸入、直流模擬量輸出、預定義邏輯處理功能”在單元測試計劃相關章節中未見說明,內容不能一一對應,此時也應開出不符合項。

圖5 《H1224電站監控系統軟件(下位機)軟件單元測試說明V1.0》截圖
例三:項目級QA應有相應的專業背景,比如了解電站監控系統的基本技能,能對項目的性能指標和技術參數熟記于心。《H1224電站監控系統(下位機)軟件設計說明V1.0》中對性能的描述為“刷新時間100 ms”(見表1),《H1224電站監控系統(下位機)軟件需求規格說明V1.0》中對性能需求的描述為“實時數據刷新頻率為10 ms”(見表2),二者之間存在沖突,很明顯此處數據錯誤,因此需對性能指標數字的敏感程度形成條件反射。

表1 《H1224電站監控系統(下位機)軟件設計說明V1.0》中的功能和性能描述

表2 《H1224電站監控系統(下位機)軟件需求規格說明V1.0》中的功能和性能需求描述
例四:項目QA在進行代碼審查時應嚴格按《過程和產品質量保證過程域》中規定的百分比進行代碼抽查,例如H1224電站監控系統軟件(下位機),該項目軟件估算表代碼行數為5 396行,實際代碼行數為4 999行,小于10 000行代碼應按50%比例隨機抽查,實操中該項目QA抽查的代碼片段見圖6。
根據代碼注釋規范的要求,重要變量和典型算法必須有注釋,圖6中整形變量i的賦值運算(i=0)、算術運算(i++)和關系運算(i 1) 注釋建議采用英文及英文標點符號。 2) 在注釋中應標明對象的完整名稱和用途,但應避免代碼描述過于詳細。 3) 每行注釋的最大長度為100個字符。 4) 不允許給注釋加外框。 5) 在編寫代碼的同時給出注釋。 6) 重要變量必須有注釋。 7) 對變量的注釋與變量在同一行,所有注釋都要與相應的變量對齊,與變量分開至少2個“Tab”鍵,例如: intm_iLevel,m_iCount; // m_iLevel…tree level // m_iCount…count of tree items stringm_strSql; //SQL 8) 典型算法必須有注釋。 9) 在循環和邏輯分支的上一行必須就近添加注釋。 10) 程序段或語句的注釋在程序段或語句的上一行添加。 11) 在代碼交付之前,必須刪掉臨時的或無關的注釋。 12) 為便于閱讀代碼,每行代碼的長度應少于100個字符。 例五:當發生計劃或需求變更時,項目級QA應參加變更影響域分析,認真核對因計劃或需求發生改變而需變更的工作產品,并在工作產品檢查單自定義欄添加需檢查的內容,見圖7。 圖7 工作產品檢查單自定義欄片段 項目級QA參與軟件開發計劃的制訂工作,根據軟件開發計劃制訂《軟件質量保證計劃》,并按計劃開展質量保證活動。以H1224電站監控系統軟件(下位機)項目過程活動審核計劃(見圖8)為例,分析如下。 軟件開發過程包含7個階段,各階段涉及的過程活動總結如下: 1) 軟件需求獲取階段,涉及的過程活動包括項目策劃活動、需求管理活動、測量分析活動、配置管理活動、任務管理活動、同行評審活動和聯合評審活動; 2) 軟件需求分析階段,涉及的過程活動包括項目策劃活動、需求管理活動、測量分析活動、配置管理活動、任務管理活動、項目監控活動、同行評審活動、聯合評審活動、階段評審活動和里程碑評審活動; 3) 軟件設計階段,涉及的過程活動包括軟件設計活動、測量分析活動、配置管理活動、任務管理活動、項目監控活動、需求管理活動、同行評審活動和階段評審活動; 4) 軟件實現與單元測試階段,涉及的過程活動包括軟件單元測試活動、測量分析活動、配置管理活動、任務管理活動、項目監控活動、需求管理活動、同行評審活動和階段評審活動; 5) 軟件集成與測試階段,涉及的過程活動包括軟件單元集成與測試活動、測量分析活動、配置管理活動、任務管理活動、項目監控活動、需求管理活動、同行評審活動和階段評審活動; 6) 軟件系統測試階段,涉及的過程活動包括軟件系統性合格測試活動、測量分析活動、配置管理活動、任務管理活動、項目監控活動、需求管理活動、同行評審活動和階段評審活動; 7) 軟件驗收發布階段,涉及的過程活動包括測量分析活動、配置管理活動、任務管理活動、項目監控活動、同行評審活動、階段評審活動和里程碑評審活動。 圖9為H1224主推進裝置控制監測系統軟件實現與單元測試階段的過程活動。從圖9中可看出,項目任務管理活動和測量分析活動貫穿整個軟件生命周期,其中:階段時間超過45 d,在階段中和階段末各檢查1次;階段時間小于45 d,在階段末檢查。 圖9 H1224主推進裝置控制監測系統軟件實現與單元測試階段的過程活動 涉及的變更活動包括需求變更和計劃變更:當需求發生變更時,需進行需求管理過程活動,并配置管理過程活動檢查;當計劃發生變更時,需進行項目監控過程活動,并配置管理過程活動檢查。變更活動在整個過程活動中屬于比較重要的部分:當涉及需求更改控制時,要確保識別出受影響的工作產品,并得到項目軟件研制人員的承諾,項目級QA需參加需求變更影響域分析;當涉及計劃變更時,項目級QA需參加軟件開發計劃,更改影響域分析,梳理變更流程,確保后續工作按合理可行的計劃開展。關于變更涉及的需求變更和計劃變更過程活動示例如圖9所示。 在進行過程活動審核時,需特別注意到達里程碑節點的時間,整個軟件開發階段共有2個里程碑節點,分別是需求分析階段的里程碑評審活動和驗收發布階段的里程碑評審活動。需在時間節點內檢查該階段的計劃完成情況,發現并糾正問題,為下一階段的工作打好基礎。H1224電站監控系統軟件(下位機)需求分析階段的里程碑會議未在開發計劃規定的時間內召開,這屬于嚴重不符合項,見圖10。 圖10 H1224電站監控系統軟件(下位機)需求分析階段項目監控過程活動嚴重不符合項片段 不符合項主要分為2類[4],其中: 1) 第一類不符合項可理解為項目級QA發現某個軟件工作產品或軟件過程活動存在不符合項,被評價人員認可這是不符合項,同意立即或在約定的時間內采取糾正措施; 2) 第二類不符合項可理解為項目級QA發現某個軟件工作產品或軟件過程活動存在不符合項,被評價人員不認為這不是不符合項或被審核人員雖然認為這是不符合項,但無法對其進行調整或對糾正措施不能達成一致。 不符合項的記錄方式是項目級QA在“軍用軟件過程管理平臺”上記錄,并在平臺的“不符合項”中提交。對于第二類不符合項,項目級QA還需將不符合項信息填寫在《軟件不符合項報告》中,例如H1224電站監控系統軟件(下位機)需求分析階段的不符合項記錄情況見圖11。 在整個軟件生命周期內,將在質量保證方面開展的工作分析體現在驗收發布階段撰寫的質量保證總結報告中顯得尤為重要,下面以H1224電站監控系統軟件(下位機)項目為例進行分析。 在該軟件的研制周期內共檢查工作產品30個,發現不符合項41個,現已全部關閉。工作產品中的不符合項主要包括文檔編制依據羅列不齊全、測試項描述不完整、未描述測試相關人員的活動、文檔相應章節遺漏有關保密的要求、工作產品中遺漏軟件功能和性能指標、外部接口名稱描述不一致等。經分析發現,產生這些不符合項的主要原因有編制人員工作疏忽、對體系文件不熟悉和未嚴格按模板的要求編寫等。 在軟件研制周期內共完成過程活動評價59個,發現不符合項5個,現已全部關閉。過程活動評價中的不符合項主要包括里程碑評審會議未在開發計劃規定的時間內召開和周采集數據未及時提交等。經分析,產生這些不符合項的主要原因有:軟件負責人臨時出差,無法在開發計劃規定的時間內召開會議;項目組成員同時承擔多個項目,需不定期出差,造成周采集數據未能及時提交。整個軟件研制周期內的不符合項數量統計見表3。 表3 不符合項數量統計 該項目軟件生存周期模型選用新研發的模型,其分析圖見圖12。整體質量應呈下降態勢,但在軟件驗收發布階段的不符合項數量呈上升態勢。通過分析發現,出現該情況的原因是:軟件固件保障手冊和軟件用戶手冊編制人員的工作態度不夠端正,編寫水平有待提高,對體系文件的理解能力不到位。總體分析該項目階段不符合項總數未出現持續2個階段增長的情況,整體質量狀態和發展趨勢無異常。 圖12 新研發的軟件生存周期模型分析圖 該軟件研制周期內的配置管理活動嚴格按《軟件配置管理計劃》執行,不存在偏差,配置管理活動與規程相符,在《軟件配置管理計劃V1.0》中發現1個不符合項,已采取糾正措施,并對其進行跟蹤處理。當配置項發生更改時,按體系文件的要求執行更改控制,項目級配置管理員已及時更新《配置狀態報告》。 質量保證是軟件研制能力成熟度實施中較為重要的過程,該過程執行的質量與軟件產品研制質量有著非常重要的關系。本文重點介紹了GJB 5000A二級軟件成熟度模型7個過程域中的PPQA活動流程,闡述了項目級QA在軍用軟件開發階段的主要職責和工作步驟,通過實例解析了工作產品和過程活動的檢查要點,分析了不符合項的處理和反饋情況。由實踐結果可知,項目級QA對于軟件開發質量而言具有重要的基礎保障作用。
4 過程活動審核


5 不符合項實例分析


6 結 語