劉志蕾、張建國、王效亮、丁懷龍、宋茜 /北京精密機電控制設(shè)備研究所
軟件開發(fā)過程需要按照一定的生命周期模型開展,一般軟件開發(fā)包括以下幾個階段:需求分析、軟件設(shè)計、軟件測試、驗收交付和運行維護。當(dāng)從零開始進行開發(fā)時,有大量的重復(fù)性工作,例如:不同軟件具有相同或相似的功能時,有重復(fù)性需求分析、編碼、測試及重復(fù)的項目文檔。
隨著型號任務(wù)的不斷增多,各型號配套伺服軟件開發(fā)設(shè)計及測試任務(wù)也越來越繁重,每個軟件設(shè)計/測試人員同時負(fù)責(zé)5 ~10 個型號軟件的開發(fā)/測試工作。為了在有限的人力資源條件下,縮短型號伺服軟件的開發(fā)及測試周期、降低開發(fā)難度的同時,進一步保證和提高軟件設(shè)計質(zhì)量,研究所開展了軟件組件產(chǎn)品化工作。
目前,研究所伺服軟件主要為伺服控制類、CPLD/FPGA 類和地面測試類三大類,3 類軟件持續(xù)開展產(chǎn)品化設(shè)計工作,在產(chǎn)品級、框架級、模塊級3 個層次形成系列化彈箭上伺服軟件產(chǎn)品,按照軟件工程化相關(guān)要求,完成產(chǎn)品化組件的代碼走查、單元測試、開發(fā)方測試、第三方測試和系統(tǒng)聯(lián)試,有條件的通過飛行試驗驗證,彈箭上伺服控制軟件重用率力爭達(dá)到60%以上。軟件產(chǎn)品化規(guī)劃框架如圖1 所示。
圖1 軟件產(chǎn)品化規(guī)劃框架
產(chǎn)品級組件主要是針對3 種情況:一是當(dāng)一個型號完全借用另一個型號的硬件產(chǎn)品,且伺服控制類軟件不做任何修改時,該伺服控制類軟件屬于產(chǎn)品級重用;二是當(dāng)硬件處理器平臺及其外圍電路模塊(主要是外圍邏輯電路)相同或基本相同,所配置的CPLD/FPGA 軟件可以實現(xiàn)產(chǎn)品級重用;三是地面測試類軟件中完成特定功能、可在多個型號通用的軟件也屬于產(chǎn)品級重用。產(chǎn)品級組件可以實現(xiàn)目標(biāo)碼級的重用。
框架級組件主要依托不同的處理器平臺來開展,一個處理器平臺一般開發(fā)出一個通用框架級組件產(chǎn)品,所有以此處理器為平臺的軟件都重用此框架級組件產(chǎn)品。框架級組件產(chǎn)品一般為源代碼級的重用。
模塊級組件主要面向功能單元,當(dāng)一個功能單元功能基本固定、性能基本一致的情況下,可以采取模塊封裝的形式形成模塊級組件產(chǎn)品,模塊級組件產(chǎn)品可以有很多,規(guī)模一般很小,主要是在軟件研制過程中積累起來的。模塊級組件產(chǎn)品可以實現(xiàn)目標(biāo)碼級或源代碼級的重用。
研究所根據(jù)軟件組件的設(shè)計、測試、使用等方面的特點,結(jié)合軟件工程化實際,制定了《嵌入式軟件組件產(chǎn)品化設(shè)計要求》和《基于源代碼的軟件組件產(chǎn)品化設(shè)計要求》2 項標(biāo)準(zhǔn),用于指導(dǎo)和推動軟件產(chǎn)品組件的研制和應(yīng)用。同時,還制定了《軟件工程過程方針及通用要求》《軟件工程過程文檔及記錄格式要求》《軟件研制過程》《嵌入式軟件C語言編程要求》《可編程邏輯器件Verilog HDL 代碼設(shè)計要求》《伺服軟件靜態(tài)測試規(guī)范》《伺服軟件單元測試規(guī)范》和《伺服軟件配置項測試規(guī)范》等多項標(biāo)準(zhǔn),用于指導(dǎo)軟件的編碼、研制文檔的編寫和軟件測試用例的設(shè)計,推動軟件產(chǎn)品化進程。
對伺服控制軟件進行功能分析和總結(jié),各型號嵌入式伺服軟件的主要功能為采用1553B/CAN/422 總線完成與控制、遙測系統(tǒng)的信息通信,并完成系統(tǒng)閉環(huán)控制及性能補償功能。系統(tǒng)測試過程中,可以通過1553B/CAN/422 總線完成軟件的升級及控制參數(shù)的更改。
按照軟件功能的不同,軟件模塊主要有初始化模塊、閉環(huán)控制模塊、參數(shù)采集處理模塊、通信處理模塊和總線在線程序下載及參數(shù)裝訂模塊等5 大類。初始化模塊和閉環(huán)控制模塊由于各型號使用資源或需求的差異,不能達(dá)到較高的通用性和一致性,設(shè)計為源代碼模塊級組件。參數(shù)采集處理模塊、通信處理模塊和總線在線程序下載及參數(shù)裝訂模塊均涉及到軟件內(nèi)外接口,通過進一步分析,參數(shù)采集處理模塊中常用的包括AD 采集和旋變位置采集處理,由于使用的通道和處理方式差異性較大,設(shè)計為源代碼模塊級組件。通信處理模塊中各軟件1553B 總線通信處理一致性更高,而CAN 總線和422 總線相對協(xié)議差異較大,不易統(tǒng)一,故1553B 總線通信處理模塊設(shè)計成目標(biāo)碼模塊級組件,CAN/422總線通訊處理模塊設(shè)計成源代碼模塊級組件??偩€在線程序下載及參數(shù)裝訂模塊均為研究所內(nèi)使用,協(xié)議可統(tǒng)一,故均設(shè)計為目標(biāo)碼模塊級組件。
源代碼模塊級組件和目標(biāo)碼模塊級組件的開發(fā)流程均按照軟件工程化及GJB5000A 三級認(rèn)證要求執(zhí)行,其開發(fā)流程略有不同。目標(biāo)碼模塊級組件開發(fā)流程見圖2。目標(biāo)碼模塊級組件開發(fā)工作包括以下幾個方面:
圖2 軟件目標(biāo)碼模塊級組件開發(fā)流程圖
(1)目標(biāo)碼模塊級組件開發(fā)時需要組成專門的項目組,項目組設(shè)置可以在任務(wù)書中明確,至少要明確項目負(fù)責(zé)人、任務(wù)書提出人員、需求分析及設(shè)計人員、測試人員和配置管理人員,任務(wù)書提出人員、需求分析及設(shè)計人員、測試人員要相互獨立;
(2)目標(biāo)碼模塊級組件需進行代碼走查、靜態(tài)分析、單元測試和配置項測試(需要有調(diào)用此組件的軟件配合),組件更改后需要進行代碼走查、靜態(tài)分析、單元測試、配置項測試和回歸測試,測試通過后作為組件產(chǎn)品發(fā)布新版本;
(3)目標(biāo)碼模塊級組件的開發(fā)方配置項測試和第三方配置項測試應(yīng)進行正式評審,一般與調(diào)用該組件的型號軟件一同開展。
源代碼模塊級組件開發(fā)要求如下:
(1)源碼模塊級組件的源代碼需從已交付使用過的軟件中提??;
(2)源碼模塊級組件研制過程中輸出2 個文檔,分別是組件使用說明和組件源代碼文件;
(3)源碼模塊級組件使用說明包含組件概述、組成、使用說明等部分;
(4)源代碼文件格式由所使用的編譯環(huán)境和編程語言決定,如.c、.cpp、.cs 文件等;
(5)源代碼需開展代碼走查,以會議紀(jì)要方式記錄,走查問題的跟蹤以會議問題的管理方式開展。
框架級組件開發(fā)要求如下:
(1)選擇經(jīng)過飛行試驗考核的有代表性的各平臺軟件,整個軟件工程作為框架級組件;
(2)框架級組件輸出2 個文檔,分別是組件使用說明和組件源代碼文件。其他要求與源碼模塊級組件開發(fā)要求基本相同。
框架級組件根據(jù)伺服軟件處理器平臺和配套伺服系統(tǒng)的不同進行設(shè)計開發(fā),目前研究所共有6 個框架級組件。
產(chǎn)品級組件開發(fā)流程與要求目標(biāo)碼模塊級組件基本相同,不同之處在于地面測試類產(chǎn)品級組件無第三方測試要求。
針對3 種情況的產(chǎn)品級組件進行梳理,目前研究所可完全做到產(chǎn)品級重用的組件共11 個。
各類型組件均作為一個獨立的軟件配置項進行開發(fā)庫、受控庫和產(chǎn)品庫的配置管理,嚴(yán)格履行軟件審批,組件通過第三方測試后方可納入產(chǎn)品庫。
組件納入配置管理后,通過評審后由組件設(shè)計人員納入組織級組件庫。納入組件庫時,需將組件源代碼/目標(biāo)碼、組件使用說明和組件評審結(jié)論一同納入。
組件重用人員必須清楚組件的功能、性能、接口等內(nèi)容,使用前需要詳細(xì)解讀組件使用說明中的所有內(nèi)容,對組件的重用依據(jù),包括組件的使用方式、數(shù)據(jù)接口、協(xié)議接口、調(diào)用方法、編程環(huán)境、硬件平臺、編譯器選項等內(nèi)容進行分析,確保滿足組件的重用條件后從組織資產(chǎn)的組件庫中出庫。出庫時需要寫明應(yīng)用的軟件,經(jīng)過審批和再次確認(rèn)方能進行實際應(yīng)用。
重用組件型號軟件的相關(guān)設(shè)計文檔中需對軟件組件進行重用說明,并開展相應(yīng)評審。
目標(biāo)碼組件重用時不允許組件重用人員直接調(diào)用軟件源代碼,不允許其更改源代碼,不可對組件封裝庫進行更改。
續(xù)表表1 組件重用情況
源代碼組件重用時,如重用的需求與組件的功能不同,可以將源代碼復(fù)制修改后使用。
目標(biāo)碼組件和產(chǎn)品級組件如果確實需要添加新的功能、性能要求,需與軟件組件項目負(fù)責(zé)人商議進行軟件升級;其更改由組件的設(shè)計人員進行,不允許組件使用者對其進行更改,更改必需履行更改審批,必要時進行評審。組件更改時需從受控庫出庫,組件更改完成后必須經(jīng)過相應(yīng)的測試,測試通過后方可納入配置管理。
截至目前,研究所共有各級別組件37 個,其中模塊級組件20 個,框架級組件6 個,產(chǎn)品級組件11 個,且除地面測試類產(chǎn)品級組件外的其他30 個組件均已經(jīng)過飛行試驗的考核,各組件自納入組織資產(chǎn)庫后應(yīng)用情況見表1。
表1 組件重用情況
研究所在2012 年之前,軟件重用基本為框架重用,重用率約為17%;在線程序下載及參數(shù)裝訂組件成功應(yīng)用后,重用率達(dá)到30%;1553B 總線控制軟件組件成功應(yīng)用后,重用率約為33%;近年隨著源代碼級模塊組件逐步應(yīng)用,軟件產(chǎn)品化進一步發(fā)展,目前軟件重用率可達(dá)65%。
各組件的成功應(yīng)用實現(xiàn)了各軟件設(shè)計人員的優(yōu)勢互補,集結(jié)每個設(shè)計人員的優(yōu)勢、經(jīng)驗和教訓(xùn),消除了包括分析、設(shè)計、編碼等大量的重復(fù)性工作,提高了軟件開發(fā)的效率;同時避免相似程序模塊的重復(fù)測試,減少了測試人員的工作量,測試效率可提高30%以上。軟件組件產(chǎn)品化工作的開展對縮短軟件開發(fā)周期、提高軟件產(chǎn)品質(zhì)量都有著極其重大的意義。