毛志洋 王偉 黃榮
(蘇州長風航空電子有限公司 江蘇省蘇州市 215151)
由于軍用軟件應用領域的軍事性、相關信息的保密性,軍用軟件的開發透明度不高[1],其開發主要集中在軍工企業及相關研究院所,開發過程相對壟斷,市場競爭機制難以發揮其應有的效用。但是隨著武器裝備的集成化發展,軟件作為武器裝備中功能實現的重要載體,軟件所需實現的占比極大提高、軟件研制規模也成幾何性增長、開發過程也逐步趨于模塊化和集成化,多個廠家研制的軟件集成于一個硬件平臺中運行的局面已經逐漸顯現,相比以往軟件規模小、集成化低的軟件管控過程,如何改進中單個產品中多個不同研制單位的軍用軟件的開發管理方式,已成為當前軍用軟件開發過程中急需解決的一項問題。
隨著產品集成化程度的提高,軟件開發基于“協同化平臺”進行,在一個完整的硬件平臺多,可同時運行多個廠家的應用軟件。在近幾年的產品研制中,軟件的協同化開發也日趨明顯,產品中安裝的應用軟件涉及多家單位,如何管控好各個單位的軟件開發過程、及時驗證軟件更改的正確性,確保整個產品交付的質量,成為專用軟件外包管理過程中的重要目標。但隨著軍用軟件外包產品的而增加,部分問題也逐漸凸顯,也成為影響軍用外包軟件有效管控的主要方面,主要包含如下:
(1)流程定義不完整:外包流程的定義往往局限于部分專業、部分過程,如更多關注點在硬件外包、設備外包,對軟件外包活動定義不夠完整,通常與硬件設備的開發一并考慮定義;
(2)開發過程要求不明確[2]:流程定義不夠細化,僅關注外包軟件如何確定、如何獲取,往往缺少對中間研制過程的監控要求:
(3)人員職責存在缺失:人員設置中通常關注工程技術相關人員,與GJB 5000A-2008《軍用軟件研制能力成熟度模型》中定義的活動和人員相比較,缺少配置管理、質量保證等管理和支持類人員工作的定義。

圖1:軍用軟件外包管理流程

圖2:軍用軟件外包維護過程關系圖
軍用軟件外包作為軟件協同化開發過程中重要的管理過程,對研制軟件的開發是否成功起著重要的作用。GJB 5000A-2008《軍用軟件研制能力成熟度模型》中定義了“供方協議管理”[3]過程域,針對軟件外包活動作出明確要求,從建立供方協議、滿足供方協議兩個目標進行規定,并設置了確定獲取方式、選擇供方共8 個專用實踐和12 個共用實踐,為軍用軟件外包管理單位的活動執行提供了依據,具體的描述見表1。
針對軍用軟件外包承制方,開發過程中應遵循軍用軟件開發的各項軍標要求,涉及項目管理、工程過程、支持過程等方面,研制當為通常以GJB 2786A-2009《軍用軟件開發通用要求》為過程研制的主要依據,其中涉及的開發過程活動定義見表2。
軍用軟件開發過程通常跟隨型號產品研制過程一并開展,受型號產品功能規模、性能要求等影響,從單個SRU 到系統級的研制調試,時間往往從幾個月到幾年不等,尤其是外包軟件產品投入使用后,維護周期長達數年。因此,為確保軍用軟件外包產品的全生命周期的管理,外包過程制定過程中充分考慮研制過程和維護過程的特點,將外包過程管理分解為開發過程和維護過程兩部分。其中,開發過程管理將伴隨軟件研制過程,從項目立項到順利交付用戶的研制過程;維護過程管理是在軟件交付用戶使用后,到型號退役之間的所有過程。

表1:供方協議過程域目標和實踐要求

表2:軟件開發過程活動定義

表3:外包管理單元人員及職責要求
軍用軟件外包管理涉及技術、管理、支持等活動,只有相關的專業人員參與進行過程活動,并對相應過程活動進行有效的監督檢查,才能確外包軟件開發和維護過程中各項活動按照標準要求執行到位,最終確保軟件開發質量。針對外包軟件管理活動中所需參與的人員進行分析,明確外包管理單位所需參與相關活動的人員角色,并給出具體的活動執行要求,具體見表3。
根據軍用軟件中外包軟件的要求,結合軍用軟件研制過程中實際情況,參考GJB 2786A-2009《軍用軟件開發通用要求》中的研制過程活動的定義,依據軍用軟件開發基本活動對承制方研制過程活動進行梳理,并將GJB 5000A-2008 中的軟件外包過程至軟件開發過程中各活動,并結合軟件外包過程要求,分解當前外包管理單位所需執行的外包實施活動,具體參見表4。

表4:軍用軟件外包開發過程實施要求分析
根據表2 中的分析,結合外包管理單位的型號研制管理要求,對已梳理的開發過程中的進行進一步分解,主要包含的活動如下:
(1)軍用軟件外包獲取方式:確定相關軟件的獲取方式(自研、重用、外包等);
(2)軍用軟件外包管理活動策劃:針對已確定需外包的軟件,進行外包相關活動的策劃,明確外包管理單位需參與的具體活動;
(3)軍用軟件外包協議書簽訂:與外包軟件承制單位協商并簽署外包協議書;
(4)軍用軟件外包協議監督和控制:按照協議書中的要求,對軟件外包過程中監督和控制;
(5)軍用專用軟件外包產品驗收:組織開展軍用軟件外包產品的驗收;
(6)軍用軟件外包產品交付:組織進行軍用外包軟件的移交,獲取最終產品。
基于上述活動,根據外包軟件具體活動和外包人員職責安排,確定外包管理單位工作的具體流程,詳見圖1。
維護過程涉及軟件的更改以及外場的部署等工作,一般是由于用戶提出新要求進行更改變更、或者在使用過程中發現問題之后的修正變更,維護過程通過都包含變更過程。因此,該過程中重點對做好對需求變更的控制,確保各項活動要求均按照已定義的變更流程開展,并能夠將正確部署到外場產品中。
針對活動要求進行梳理,將軍用軟件外包維護過程分為三部分,具體定義如下:
(1)承制方變更控制:根據用戶使用過程中提出的問題或者改進意見,承制方獲取需變更的內容、評估變更的可行性并開展變更工作;
(2)委托方入庫控制:委托方根據承制方的變更內容描述以及入庫申請,確認變更流程的有效性、核對變更內容描述的一致性,并按照組織的入庫流程將顯示軟件納入配置管理;
(3)軟件外場升級維護:根據外場產品使用要求及用戶其他要求,申請將更改后的軟件進行外場升級維護。
具體的過程活動關系參見圖2。
通過對軍用軟件外包過程的梳理和總結,進一步完善了組織內部外包軟件管理的水平,有效的提升了外包管理過程中的狀態監控,確保了外包軟件維護控制過程的有效實施。