/北京航天自動控制研究所
軟件配置管理活動貫穿于軟件項目的整個生命周期。隨著GJB5000A在北京航天自動控制研究所的全面應用以及型號軟件快速迭代的研制模式下對配置管理有了新的要求,從前的配置管理主要依靠人工操作,大量的時間用于打印表單、簽署審批、復制光盤等流程,不管在管理難度還是效率上都存在問題。
新的系統(tǒng)要實現(xiàn)配置管理全過程控制采用多級庫管理,實現(xiàn)基線管理、版本控制及變更控制等。實現(xiàn)配置管理狀態(tài)紀實、配置審計等功能并支持用戶管理、權限控制。支持軟件工程相關文檔的建立和維護等需求,實現(xiàn)自動流轉、自動審批、自動入庫等全電子化管理,同時滿足型號快速迭代研制模式的要求。配置管理一體化系統(tǒng)平臺CMTool,通過克服與Avidm系統(tǒng)掛接、不同批次不同狀態(tài)下的文檔版本延續(xù)性設計、生產(chǎn)流程的獨立模塊化設計等一些列技術難點,實現(xiàn)與現(xiàn)有項目管理系統(tǒng)Avidm集成,實現(xiàn)軟件研制全流程的管理,并能夠自動采集軟件管理過程數(shù)據(jù),為軟件過程精細化管理作好數(shù)據(jù)儲備,保證了軟件配置項標識、軟件基線、變更記錄、配置狀態(tài)等的正確性,軟件文檔的完整性,以及軟件版本的正確性與完整性,達到了型號軟件快速迭代研制模式下的新要求,保障型號軟件研制開發(fā)有條不紊的開展。
軟件配置管理工具是分布式、支持多庫、多層次、權限控制力度細致的適合大規(guī)模使用、適應快速迭代的研制模式系統(tǒng)。該系統(tǒng)針對型號軟件配置管理流程進行頂層設計、優(yōu)化,凝聚對型號軟件復雜流程的執(zhí)行和處理思路。
軟件配置管理系統(tǒng)由開發(fā)庫、所級受控庫、產(chǎn)品庫3庫構成。開發(fā)庫設在各研究室項目組,受控庫設在研究室,產(chǎn)品庫設在所技術保障室。
軟件配置管理系統(tǒng)利用VS2012和C#5.0進行開發(fā),采用分層軟件體系設計架構,將表現(xiàn)層、業(yè)務邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)庫分別獨立,以適應快速迭代研制模式要求。
軟件配置管理系統(tǒng)分層軟件體系結構設計以及系統(tǒng)構成如圖1、2所示。
配置管理系統(tǒng)符合分級保護3員要求,組織角色包含組織級配置管理員、室級配置管理員、主管設計以及開發(fā)人員。
圖1 分層軟件體系結構設計
圖2 軟件配置管理系統(tǒng)構成圖
項目管理工作流程,如圖3所示。
項目配置計劃。室級配置管理員和項目負責人可以對配置策劃信息(包含審批組織策劃、階段與管理項策劃、版本策劃、依賴關系管理、基線策劃、導入導出同步策劃等)進行編輯。其他項目成員僅可查看項目策劃信息。
新建項目時室級配置管理員必須指定規(guī)則,系統(tǒng)在項目的創(chuàng)建過程中自動將規(guī)則中內(nèi)容導入到項目的策劃信息中。室級配置管理員和項目負責人可以在規(guī)則的基礎上對策劃信息進行裁剪。
配置管理控制流程和要求。軟件的配置管理整體流程總體上分為受控庫和產(chǎn)品庫的管理,分別具有不同的管理流程和具體管理內(nèi)容。受控庫的整體管理流程,如圖4所示。
圖3 項目管理整體工作流程
圖4 受控庫配置管理總體流程
快速迭代模式下的配置管理控制。CMTool系統(tǒng)針對型號研制過程中快速變化等復雜狀態(tài),提出了一些適應性設計。
一是不同批次在不同狀態(tài)下文檔的延續(xù)性設計。由于某型號軟件的發(fā)批次較多,研發(fā)過程一般比較短,所以不同發(fā)批次之間的型號文檔要求有一定的延續(xù)性和繼承性。然而不同狀態(tài)下的文檔在初始入庫時一般將版本判定為1.00,且有些狀態(tài)的繼承關系較為復雜,這就需要型號配置管理員人為設定繼承關系及初始繼承版本。為此在項目建項時增加了是否延用項目的選項,可為項目選擇它所延用的某個狀態(tài)下的配置項,然后系統(tǒng)就會自動將文檔版本號繼承排列,并寫入到文檔封面中。這樣同一型號不同狀態(tài)下的文檔也能保留其延續(xù)性和繼承性,方便設計更改及管理追查。
二是適應多種結構的目錄樹設計。系統(tǒng)設計之初,在項目目錄樹設計上只做了型號一階段一狀態(tài)一配置項的4級固定目錄樹結構,但在后續(xù)的使用中發(fā)現(xiàn)不適用于管理單機、單板軟件。這就要求將原本固定的目錄樹結構重新設計,通過和型號主任設計師的溝通,添加了型號一階段一狀態(tài)一單機一配置項及型號—階段—狀態(tài)—單機—單板—配置項等5、6級目錄樹,根據(jù)配置項信息的有效性靈活地按級別掛接節(jié)點,從而適應了型號各軟件多種目錄樹結構的實際使用情況。
三是特殊過程中的流程控制設計。在某型號軟件的研制過程中,面對快速迭代的研制模式及多批次的型號研制任務,實際工作中會存在一些較為特殊的流程,如受控庫出庫例外放行、產(chǎn)品庫入庫例外放行等。為此增設例外放行流程,除了達到例外放行流程嚴格審批受控外,更重要的是理清例外放行流程與配置管理自身流程之間的關系,以及放行后的閉環(huán)規(guī)則。同時,在原有的固定流程基礎上進行修改,使系統(tǒng)能夠在正常審批流程的基礎上兼顧配置審核問題閉環(huán)流程。
適應快速迭代模式配置管理亮點。
一是與Avidm系統(tǒng)的深度集成。因某型號軟件是在快速迭代模式下進行開發(fā),在受控庫中有許多版本,由于Avidm作為項目管理工具,在計劃提交時需有文檔提交入庫,因此需要CMTool中的文檔作為提交物,為避免CMTool與Avidm之間的重復性工作,需要和原有的Avidm系統(tǒng)進行集成,在CMTool中完成文檔的審批、簽署以及數(shù)據(jù)的流轉,入受控庫的同時需要提交文件到Avidm的個人工作目錄,為實現(xiàn)該功能,專門設計了應用程序開發(fā)接口(API)實現(xiàn)方案。
在Avidm系統(tǒng)集成中實現(xiàn)的注入式API技術包括3個組成部分:服務器后端程序注入,可以模擬Avidm系統(tǒng)提供動態(tài)加密密鑰傳遞、身份認證、應用數(shù)據(jù)提交等功能。前端注入,可以與后端注入程序配合,實現(xiàn)自動登錄;模擬Avidm系統(tǒng)創(chuàng)建數(shù)據(jù)表單并提交到后臺;與后端程序配合自動提交和上傳文件;數(shù)據(jù)庫注入,分析Avidm系統(tǒng)的數(shù)據(jù)庫系統(tǒng),在上萬個數(shù)據(jù)庫表中定位到接口所需的數(shù)據(jù)庫表和字段,并通過后端注入程序將數(shù)據(jù)插入到Avidm數(shù)據(jù)庫中。通過這3個方面的功能組合實現(xiàn)的接口將可以達到Avidm定制開發(fā)接口的效果,設計人員在CMTool進行文檔入庫時不需要重復登錄或提交數(shù)據(jù)文件便可將文件提交到Avidm的個人工作目錄。
在實際執(zhí)行的過程中,在文檔加密的環(huán)節(jié)遇到了較大的技術困難,過程中適用了3種技術方案:一是利用Avidm平臺的文檔加密組件實現(xiàn)文檔加密,利用遠程Webservice上傳文件方式實現(xiàn)2個服務器之間的實體文件同步;利用POST頁面技術實現(xiàn)文件的加密和文件傳輸,但是Avidm平臺的頁面作了POST提交限制,每次提交時頁面有隨機生成的密碼;反編譯Avidm的相關功能代碼,在Avidm服務器上編寫了多個JSP頁面實現(xiàn)了加密和文件傳輸。
二是數(shù)據(jù)正確性一致性保證。在項目運行過程中,由于采用快速迭代方式進行軟件開發(fā),產(chǎn)生的諸多版本從始至終要保證其正確性,因此CMTool系統(tǒng)通過設置配置管理項依賴關系、選擇審批流程達到對入庫配置項的控制,同時CMtool實現(xiàn)了從軟件入庫到產(chǎn)品出庫生產(chǎn)的全流程管理和控制,在軟件生產(chǎn)過程中要將從CMTool中出庫的產(chǎn)品進行原始數(shù)據(jù)的光盤刻錄,這就對數(shù)據(jù)的正確性、刻錄數(shù)據(jù)與原始數(shù)據(jù)的一致性提出了很高的要求。
為確保數(shù)據(jù)的正確性和一致性,系統(tǒng)進行了設計。首先,研制專用文件上傳壓縮工具CmtoolZip,用于壓縮代碼類文件。使用該工具壓縮時,工具對壓縮文件夾下所有的文件進行MD5碼校驗,并生成一個標準的xml文件,并將該文件一并添加到zip文件中;其次,文件在入受控庫、產(chǎn)品庫過程中,一直保留這種固化格式的zip格式文件;接著文件在出庫進行刻錄時系統(tǒng)讀取該zip文件,并使用相同的MD5碼加密算法,與xml文件中保留的MD5碼信息逐一比對文件的正確性,確認無誤后再從原始文件中去掉xml文件,發(fā)送至光盤刻錄服務器進行刻錄。
通過以上方法,均可以有效保證刻錄文件與上傳原始文件的一致性,并避免傳輸、保存過程中數(shù)據(jù)出現(xiàn)錯誤的情況發(fā)生。
三是與生產(chǎn)流程的獨立模塊化設計。CMTool系統(tǒng)自身用于軟件的全生命周期配置管理,研制中又采用了快速迭代的開發(fā)模式,系統(tǒng)的數(shù)據(jù)庫中保留了大量軟件相關的信息,以以此為基礎應用于軟件相關的其它管理中,如軟件生產(chǎn)流程管理等。但是過多的管理功能如果集成,如果設計不好,就會造成系統(tǒng)龐大,使用復雜。為了避免該情況發(fā)生,在CMTool系統(tǒng)基礎上擴展其它軟件相關流程時,采用了1套數(shù)據(jù)、多個獨立模塊使用的設計思想。在該方法中,所有的模塊均使用系統(tǒng)中的用戶數(shù)據(jù),并統(tǒng)一登錄主界面。在系統(tǒng)的實現(xiàn)方面,采用了數(shù)據(jù)層、業(yè)務層和界面層的分層設計,在各個層級中,分別針對不同的業(yè)務模塊進行獨立化模塊設計。
數(shù)據(jù)層:軟件配置管理數(shù)據(jù)作為系統(tǒng)的核心數(shù)據(jù),不僅給配套管理模塊提供數(shù)據(jù)服務,還給其他相關的軟件管理流程模塊提供數(shù)據(jù)服務。此外,各個業(yè)務模塊根據(jù)自身的業(yè)務管理需求建立自身的數(shù)據(jù),該數(shù)據(jù)通常僅為本業(yè)務服務。單系統(tǒng)的用戶數(shù)據(jù)是公共數(shù)據(jù),在各個模塊中均可使用。
業(yè)務層:根據(jù)各個管理模塊的業(yè)務實際需求進行業(yè)務邏輯設計。在業(yè)務層各個軟件相關管理模塊的控制邏輯相互之間獨立,沒有任何關聯(lián)關系。所有的業(yè)務模塊僅從數(shù)據(jù)使用的角度上與配置管理模塊之間發(fā)生聯(lián)系。
界面層:界面是為業(yè)務流程服務的。在本系統(tǒng)中,所有業(yè)務管理模塊具有統(tǒng)一的登錄主界面,但是在登錄后根據(jù)用戶選擇,會分別進入各自的業(yè)務管理模塊,不同業(yè)務管理模塊之間的界面沒有關聯(lián)關系。
使用以上設計方法,可以確保每一個獨立功能模塊的可靠性、健壯性、易用性,并可以最大程度地保證新加模塊未來的擴展性和靈活性。
配置狀態(tài)報告及配置審核。在版本控制與配置狀態(tài)紀實的基礎上,采用事件驅動與定期相結合的方式自動生成配置狀態(tài)報告,快速迭代下的所有配置狀態(tài)通過電子郵件提交給組織級配置管理員、項目經(jīng)理、質(zhì)量人員和其它受影響的小組,使各相關利益方都能及時、快速的了解項目的進程。室級配置管理員還以事件驅動的方式對各項目軟件進行配置審核,填寫配置審核報告,并同步發(fā)送到相關利益方。針對快速迭代以及復雜狀態(tài)極易出現(xiàn)問題的現(xiàn)狀,特意設計軟件配置管理問題處理閉環(huán)流程,以確保交付軟件版本的正確性、連續(xù)性和完整性。
軟件配置管理問題處理閉環(huán)流程示意圖,如圖5所示。
圖5 軟件配置審核問題處理閉環(huán)流程
根據(jù)該方法開展的軟件配置管理活動,解決了多狀態(tài)并行研制模式下控制系統(tǒng)軟件配置項易發(fā)生沖突的問題以及了軟件配置項易發(fā)生管理混亂的問題,提出了嚴格的配置管理控制要求,制定了軟件配置管理活動的實施細則,保障了型號軟件研制過程的有序、可靠?;谠摲椒▽π吞柸找鎻碗s和多變的技術狀態(tài)進行配置管理,能夠使軟件研制過程的可控性大大提高,確保軟件產(chǎn)品版本的正確性。
快速迭代狀態(tài)下控制系統(tǒng)軟件配置管理新技術已應用于航天某型號20個軟件配置項的研制開發(fā)的全過程。結果表明,較好的適應了型號軟件多狀態(tài)多批次快速變化的要求,解決了軟件配置項易發(fā)生管理混亂的問題。該型號軟件項目至今已在CMTool上運行并完成了多發(fā)的飛行試驗,該項目的研制成果較好的滿足了本階段的任務要求,達到了預期的效果,保障了型號軟件研制過程的有序、可靠,最終使得該型號研制的軟件在不同狀態(tài)下的版本零錯誤。
該方法同樣適用于其它型號軟件的研制流程,隨著研究所對CMTool宣貫力度的進一步加大,已經(jīng)有越來越多的型號軟件上線運行,員工的過程管理的意識有了提高,能夠動運用工具,并逐漸融入到日常的科研生產(chǎn)中;并且工具在一些關鍵點上進行了強制限制,規(guī)范研制流程,幫助設計人員養(yǎng)成良好的習慣;同時工具除了進行配置管理,還和Avidm等工具進行了深度連接,以及把產(chǎn)品庫及技術保障室的有關工作也納入進來一并管理,整個流程目前運轉正常,大大的提高了全員勞動效率。后續(xù)工作中,將深入開展軟件配置管理自動化平臺系統(tǒng)的研究,也將探索與型號任務管理相關工具的連接,通過不斷實踐,持續(xù)探索配置管理系統(tǒng)對于軟件過程改進的更為便捷有效的方法。該系統(tǒng)目前已推廣到運載、戰(zhàn)略、戰(zhàn)術等全型號配套軟件配置項研制開發(fā)的全過程,應用效果和潛在應用前景十分明顯,具有廣泛的推廣價值。