程國
摘要:針對軍事氣象水文軟件的特點,結合軍事氣象水文軟件開發(fā)中存在的問題,探討軍內常用的軟件質量控制方法。根據國際上流行的CMMI軟件質量控制方法,建立一種新的適用于軍事氣象水文軟件的質量控制模型,對全面提升軍事氣象水文軟件可靠性具有參考價值。
關鍵詞:軟件質量;CMMI;過程域;質量控制模型
DOIDOI:10.11907/rjdk.143680
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:16727800(2015)001009502
0 引言
軍事氣象水文保障工作的日益發(fā)展,對軍事氣象水文保障的實時性、精確性和綜合性的要求越來越高。保障水平的高低很大程度上依賴于氣象水文裝備質量的優(yōu)劣,而軟件在氣象水文裝備系統(tǒng)的研發(fā)過程中起著神經中樞的作用,軟件質量的好壞關系到氣象水文裝備的效能能否有效發(fā)揮,關系到軍隊戰(zhàn)時能否充分應用氣象水文條件。因此根據氣象水文軟件的特點研發(fā)高質量的軟件是實施正確的作戰(zhàn)指揮,取得作戰(zhàn)勝利的重要前提之一。
1 軍事氣象水文軟件特點
(1)政治性。軍事氣象水文軟件的質量關乎國家軍隊的根本利益,這就要求軟件研發(fā)人員要始終保持高度的政治敏感性和覺悟,并保持高度的事業(yè)心和責任心。
(2)秘密性。軍事氣象水文軟件是整套裝備系統(tǒng)的神經樞紐,關乎到國家的安全,必須具有一定的保密等級。
(3)及時性。普通軟件的研發(fā)往往因為一些意外情況導致項目進程的滯后,但是由于軍事氣象水文軟件的軍事屬性,要求軟件的研發(fā)必須按時交付。
(4)精確性。軍事氣象水文軟件是戰(zhàn)時軍隊了解、運用氣象水文條件的工具,必須能為軍隊提供具有代表性、精確性的氣象水文資料,不能有絲毫的差錯。
軍事氣象水文軟件的特殊性對軟件的研發(fā)提出了更高的要求。目前,氣象水文軟件在研發(fā)過程中存在諸多問題,導致軟件的質量不盡人意,特別是與硬件的可靠性相比,軟件的可靠性有待提升。
2 軍事氣象水文軟件開發(fā)中存在的問題
(1)軟件開發(fā)進度難以控制。在軍事氣象水文軟件開發(fā)過程中,經常出現資源匱乏、人員流失、資金不到位等情況,導致軟件開發(fā)難以按計劃實施,往往后期為了能按時交付不顧質量好壞而加快進度。
(2)軟件研發(fā)成本日益增長。隨著計算機市場化和民用化進程的加速,軟件開發(fā)成本不斷增加。在硬件成本不斷降低的情況下軟件成本在整套裝備系統(tǒng)中所占的比例越來越大,通過犧牲軟件質量來縮減成本的情況日趨明顯。
(3)軟件交付后難以維護。軟件交付并不意味著開發(fā)工作結束,軟件本身隱含的一些錯誤只會在某些特定的情況下才暴露出來。隨著時間的推移,用戶需求及軟件的運行環(huán)境也會發(fā)生變化,從而導致軟件的可靠性大大降低。
上述問題是軍事氣象水文軟件研發(fā)中普遍存在的現象,亟待改進。要解決上述問題,最根本的一條是必須“樹立軟件產品質量觀念”和“用軟件工程方法組織軟件開發(fā)”[1],并按照軟件工程方法的基本原則不斷改進軟件開發(fā)過程。目前,國內控制軟件質量比較常用的方法是采用質量管理體系。
3 軍內軟件質量控制方法及其缺陷
目前,軍用軟件研制質量控制模型源于GJB 9001B《質量管理體系要求》,該標準明確了軍用軟件立項論證、設計、研制、生產、試驗、審查、維修的質量管理體系,并為實施質量管理體系的評定提供了依據,推動了軍工產品質量管理體系建設的迅速發(fā)展,促進了軍用產品質量與可靠性水平的提高。對于軟件的設計和開發(fā),GJB 9001B強調“按軟件工程方法,設計和開發(fā)計算機軟件”[2]。通過強調過程,將組織內所有的工作定義為明確的過程進行質量保證和評估,使影響軟件產品質量的因素在產品形成的全過程中始終處于受控狀態(tài),以此來提高其使用的可靠性、安全性,將持續(xù)改進作為提高質量管理水平的重要手段[3]。
僅依據GJB 9001B《質量管理體系要求》模型來控制軍用軟件的質量存在一定缺陷:①GJB 9001B主要針對硬件、軟件、流程和服務類產品,是由制造業(yè)的質量理論和實踐總結發(fā)展而成,不可能針對軟件產品及其制造的特點展開說明,尤其是在型號不斷改進,裝備狀態(tài)的多次更改之后,對軍用軟件的配置管理等更高層次的問題缺乏行之有效的指導;②各組織在實施該標準時沒有引起足夠的重視,認為不發(fā)生安全事故就萬事大吉,對質量沒有提出更高的要求,忽略了該標準反復強調的“必須持續(xù)進行質量改進”[2],研制單位缺乏一套適用的質量管理體系;③GJB 9001B評估的目的是認證組織是否建立了有效的質量管理體系,給出簡明、科學、原則性的要求,評估結論只是合格與否,無法找出軟件研制過程中的強項和弱項,不能就軟件開發(fā)過程給出詳細描述,對能力提高不能指出簡明科學途徑。
軍事氣象水文軟件質量控制中應用質量管理體系,采用過程模式,將軟件質量的持續(xù)改進作為控制軟件質量的重要手段,具有深遠意義。但僅運用該模式難以使軟件質量控制有質的提高,提出一種新的軍事氣象水文軟件質量控制方法勢在必行。
4 基于CMMI的軍事氣象水文軟件質量控制方法
4.1 CMMI軟件質量控制思想
CMMI(Capability Maturity Model Integration)即能力成熟度集成模型,由美國卡內基·梅隆大學的軟件工程研究所提出[4]。它采用了質量管理體系的過程管理思想,將軟件開發(fā)視為過程,對軟件開發(fā)和維護過程進行監(jiān)控和研究,使其更加科學化、標準化,使企業(yè)能夠更好地實現商業(yè)目標;從集成產品與過程發(fā)展的角度出發(fā),建立起包含健全系統(tǒng)開發(fā)原則的軟件過程改進模型。
CMMI側重軟件過程開發(fā)的管理及軟件工程能力改進與評估[5],它的本質是通過軟件研制過程中關鍵過程域的精確定義,使軟件研制從一個不確定的“黑箱”操作過程,變成一個各步驟可視化、偏差可隨時控制的“透明”操作過程[6]。消除不同模型之間的不一致和重復,以系統(tǒng)和一致的框架來指導組織改善軟件開發(fā)過程,降低成本。因此,它被廣泛應用于軟件開發(fā)能力評價并幫助組織改善軟件開發(fā)質量,是目前國際上最流行、最實用的軟件生產過程標準和軟件企業(yè)成熟度等級認證標準。
4.2 基于CMMI的軍事氣象水文軟件質量控制模型
軍事氣象水文軟件開發(fā)程序一般分為問題定義、需求分析、總體設計、詳細設計、程序編碼和軟件測試與評估6個步驟。本文將CMMI中關鍵過程域與軍事氣象水文軟件開發(fā)的一般流程相結合,提出一種新的質量控制模型(見圖1)。
圖1 基于CMMI的軍事氣象水文軟件質量控制模型
基于該模型,軍事氣象水文軟件質量監(jiān)控過程如下:
(1)問題定義。本階段主要任務是對軟件需求進行論證,以確定軟件開發(fā)的目標及可行性。
(2)需求分析。本階段通過需求管理和需求開發(fā)兩個關鍵過程域對軟件需要實現的功能進行分析,選定適當的規(guī)范,通過與客戶交流制定軟件質量大綱實施計劃。在軟件開發(fā)全過程中進行需求跟蹤和需求驗證,將跟蹤和驗證的結果及時反饋給客戶,確??蛻粜枨蟮玫綕M足。
(3)總體設計。根據GJB 9001B的總體要求,通過項目策劃對軟件項目進行整體規(guī)劃??傮w設計是軟件項目管理的基礎,沒有切合實際的計劃就不可能有效進行項目管理。質量控制的任務是通過估計軟件產品的規(guī)模及所需要的資源,制定時間表,評估軟件風險;根據客戶需求、GJB 9001B以及CMMI總體要求編寫軟件總體設計說明。
(4)詳細設計。通過配置管理、過程與產品質量保證、項目監(jiān)督與控制3個關鍵過程域對項目進行全方位設計。對項目進行全程監(jiān)督和質量控制,實現項目進展可視化。更改配置必須遵循軟件更改規(guī)范,更改后必須進行測試和驗證;及時發(fā)現項目計劃偏離,并采取有效措施進行調整,并最終形成相應的文檔;質量管理部門通過評審過程文檔,依據CMMI識別軟件開發(fā)過程中的強項和弱項,針對性地開展工作,保障軟件質量。
(5)程序編碼。將軟件設計的結果轉化為計算機可運行的程序代碼,進行程序靜態(tài)分析和單元測試,并編寫軟件使用說明。嚴格軟件配置管理,確保編碼中所有工程活動在CMMI的框架下進行。根據程序單元測試規(guī)程進行源程序走查和單元測試,測試完畢后提交測試報告。
(6)軟件測試與評估。通過測量分析與驗證兩個關鍵過程域檢驗軟件能否滿足客戶需求。通過文檔審閱、代碼走查、數據整合和驗證進行階段評審,生成評審結果草案;通過階段性文檔審閱,數據整合和驗證檢查本階段的工作是否滿足質量要求和技術指標,進而作出決策是否可以進入下一階段。軟件研制成功后,通過內部測試和第三方測試對軟件進行質量驗證,根據測試結果查找缺陷;根據CMMI評判的等級審閱評審結果草案,采取措施糾正、完善,直到客戶滿意為止。
(7)持續(xù)過程改進。根據評估報告、客戶需求及軟件交付后運行的實際情況,提出持續(xù)改進建議并制定相應計劃。通過加強軟件配置管理,嚴格控制軟件更改,加強更改后的回歸測試和二次評審,使軟件質量缺陷得到系統(tǒng)解決。
5 結語
軍事氣象水文軟件的研制應該牢固樹立“質量第一”的觀點。在信息化高速發(fā)展的今天,只有加強質量管理,才能保證軍事氣象水文軟件質量可靠性,提高軍事氣象保障的精確度和效率。本模型將CMMI關鍵過程域的理念融入到軍事氣象水文軟件開發(fā)常規(guī)流程中,通過軟件開發(fā)過程管理,提升軍事氣象水文軟件的質量及服務能力,進而提高武器裝備的質量。