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