毛志洋 王偉 黃榮
(蘇州長風航空電子有限公司 江蘇省蘇州市 215151)
由于軍用軟件應(yīng)用領(lǐng)域的軍事性、相關(guān)信息的保密性,軍用軟件的開發(fā)透明度不高[1],其開發(fā)主要集中在軍工企業(yè)及相關(guān)研究院所,開發(fā)過程相對壟斷,市場競爭機制難以發(fā)揮其應(yīng)有的效用。但是隨著武器裝備的集成化發(fā)展,軟件作為武器裝備中功能實現(xiàn)的重要載體,軟件所需實現(xiàn)的占比極大提高、軟件研制規(guī)模也成幾何性增長、開發(fā)過程也逐步趨于模塊化和集成化,多個廠家研制的軟件集成于一個硬件平臺中運行的局面已經(jīng)逐漸顯現(xiàn),相比以往軟件規(guī)模小、集成化低的軟件管控過程,如何改進中單個產(chǎn)品中多個不同研制單位的軍用軟件的開發(fā)管理方式,已成為當前軍用軟件開發(fā)過程中急需解決的一項問題。
隨著產(chǎn)品集成化程度的提高,軟件開發(fā)基于“協(xié)同化平臺”進行,在一個完整的硬件平臺多,可同時運行多個廠家的應(yīng)用軟件。在近幾年的產(chǎn)品研制中,軟件的協(xié)同化開發(fā)也日趨明顯,產(chǎn)品中安裝的應(yīng)用軟件涉及多家單位,如何管控好各個單位的軟件開發(fā)過程、及時驗證軟件更改的正確性,確保整個產(chǎn)品交付的質(zhì)量,成為專用軟件外包管理過程中的重要目標。但隨著軍用軟件外包產(chǎn)品的而增加,部分問題也逐漸凸顯,也成為影響軍用外包軟件有效管控的主要方面,主要包含如下:
(1)流程定義不完整:外包流程的定義往往局限于部分專業(yè)、部分過程,如更多關(guān)注點在硬件外包、設(shè)備外包,對軟件外包活動定義不夠完整,通常與硬件設(shè)備的開發(fā)一并考慮定義;
(2)開發(fā)過程要求不明確[2]:流程定義不夠細化,僅關(guān)注外包軟件如何確定、如何獲取,往往缺少對中間研制過程的監(jiān)控要求:
(3)人員職責存在缺失:人員設(shè)置中通常關(guān)注工程技術(shù)相關(guān)人員,與GJB 5000A-2008《軍用軟件研制能力成熟度模型》中定義的活動和人員相比較,缺少配置管理、質(zhì)量保證等管理和支持類人員工作的定義。
圖1:軍用軟件外包管理流程
圖2:軍用軟件外包維護過程關(guān)系圖
軍用軟件外包作為軟件協(xié)同化開發(fā)過程中重要的管理過程,對研制軟件的開發(fā)是否成功起著重要的作用。GJB 5000A-2008《軍用軟件研制能力成熟度模型》中定義了“供方協(xié)議管理”[3]過程域,針對軟件外包活動作出明確要求,從建立供方協(xié)議、滿足供方協(xié)議兩個目標進行規(guī)定,并設(shè)置了確定獲取方式、選擇供方共8 個專用實踐和12 個共用實踐,為軍用軟件外包管理單位的活動執(zhí)行提供了依據(jù),具體的描述見表1。
針對軍用軟件外包承制方,開發(fā)過程中應(yīng)遵循軍用軟件開發(fā)的各項軍標要求,涉及項目管理、工程過程、支持過程等方面,研制當為通常以GJB 2786A-2009《軍用軟件開發(fā)通用要求》為過程研制的主要依據(jù),其中涉及的開發(fā)過程活動定義見表2。
軍用軟件開發(fā)過程通常跟隨型號產(chǎn)品研制過程一并開展,受型號產(chǎn)品功能規(guī)模、性能要求等影響,從單個SRU 到系統(tǒng)級的研制調(diào)試,時間往往從幾個月到幾年不等,尤其是外包軟件產(chǎn)品投入使用后,維護周期長達數(shù)年。因此,為確保軍用軟件外包產(chǎn)品的全生命周期的管理,外包過程制定過程中充分考慮研制過程和維護過程的特點,將外包過程管理分解為開發(fā)過程和維護過程兩部分。其中,開發(fā)過程管理將伴隨軟件研制過程,從項目立項到順利交付用戶的研制過程;維護過程管理是在軟件交付用戶使用后,到型號退役之間的所有過程。
表1:供方協(xié)議過程域目標和實踐要求
表2:軟件開發(fā)過程活動定義
表3:外包管理單元人員及職責要求
軍用軟件外包管理涉及技術(shù)、管理、支持等活動,只有相關(guān)的專業(yè)人員參與進行過程活動,并對相應(yīng)過程活動進行有效的監(jiān)督檢查,才能確外包軟件開發(fā)和維護過程中各項活動按照標準要求執(zhí)行到位,最終確保軟件開發(fā)質(zhì)量。針對外包軟件管理活動中所需參與的人員進行分析,明確外包管理單位所需參與相關(guān)活動的人員角色,并給出具體的活動執(zhí)行要求,具體見表3。
根據(jù)軍用軟件中外包軟件的要求,結(jié)合軍用軟件研制過程中實際情況,參考GJB 2786A-2009《軍用軟件開發(fā)通用要求》中的研制過程活動的定義,依據(jù)軍用軟件開發(fā)基本活動對承制方研制過程活動進行梳理,并將GJB 5000A-2008 中的軟件外包過程至軟件開發(fā)過程中各活動,并結(jié)合軟件外包過程要求,分解當前外包管理單位所需執(zhí)行的外包實施活動,具體參見表4。
表4:軍用軟件外包開發(fā)過程實施要求分析
根據(jù)表2 中的分析,結(jié)合外包管理單位的型號研制管理要求,對已梳理的開發(fā)過程中的進行進一步分解,主要包含的活動如下:
(1)軍用軟件外包獲取方式:確定相關(guān)軟件的獲取方式(自研、重用、外包等);
(2)軍用軟件外包管理活動策劃:針對已確定需外包的軟件,進行外包相關(guān)活動的策劃,明確外包管理單位需參與的具體活動;
(3)軍用軟件外包協(xié)議書簽訂:與外包軟件承制單位協(xié)商并簽署外包協(xié)議書;
(4)軍用軟件外包協(xié)議監(jiān)督和控制:按照協(xié)議書中的要求,對軟件外包過程中監(jiān)督和控制;
(5)軍用專用軟件外包產(chǎn)品驗收:組織開展軍用軟件外包產(chǎn)品的驗收;
(6)軍用軟件外包產(chǎn)品交付:組織進行軍用外包軟件的移交,獲取最終產(chǎn)品。
基于上述活動,根據(jù)外包軟件具體活動和外包人員職責安排,確定外包管理單位工作的具體流程,詳見圖1。
維護過程涉及軟件的更改以及外場的部署等工作,一般是由于用戶提出新要求進行更改變更、或者在使用過程中發(fā)現(xiàn)問題之后的修正變更,維護過程通過都包含變更過程。因此,該過程中重點對做好對需求變更的控制,確保各項活動要求均按照已定義的變更流程開展,并能夠?qū)⒄_部署到外場產(chǎn)品中。
針對活動要求進行梳理,將軍用軟件外包維護過程分為三部分,具體定義如下:
(1)承制方變更控制:根據(jù)用戶使用過程中提出的問題或者改進意見,承制方獲取需變更的內(nèi)容、評估變更的可行性并開展變更工作;
(2)委托方入庫控制:委托方根據(jù)承制方的變更內(nèi)容描述以及入庫申請,確認變更流程的有效性、核對變更內(nèi)容描述的一致性,并按照組織的入庫流程將顯示軟件納入配置管理;
(3)軟件外場升級維護:根據(jù)外場產(chǎn)品使用要求及用戶其他要求,申請將更改后的軟件進行外場升級維護。
具體的過程活動關(guān)系參見圖2。
通過對軍用軟件外包過程的梳理和總結(jié),進一步完善了組織內(nèi)部外包軟件管理的水平,有效的提升了外包管理過程中的狀態(tài)監(jiān)控,確保了外包軟件維護控制過程的有效實施。