趙偉忠 丁小芩
上海機(jī)電工程研究所, 上海 201109
?
發(fā)控設(shè)備軟件通用化技術(shù)實(shí)現(xiàn)探討
趙偉忠 丁小芩
上海機(jī)電工程研究所, 上海 201109
針對(duì)發(fā)控設(shè)備軟件研制的現(xiàn)狀,分析了存在的問題,結(jié)合軟件業(yè)內(nèi)的成熟做法和成功經(jīng)驗(yàn),提出了如何實(shí)現(xiàn)發(fā)控設(shè)備軟件的通用化,從而有效提高發(fā)控設(shè)備軟件生產(chǎn)效率以及有效保證發(fā)控設(shè)備軟件質(zhì)量。
發(fā)控設(shè)備軟件;通用化技術(shù);軟件架構(gòu)
發(fā)控設(shè)備軟件(以下簡(jiǎn)稱發(fā)控軟件)是指與發(fā)控設(shè)備相關(guān)的軟件,大多數(shù)屬于控制軟件,運(yùn)行在嵌入式芯片上,具有如下的技術(shù)特點(diǎn): 1)以C語(yǔ)言為主的嵌入式軟件; 2)開發(fā)、聯(lián)試周期長(zhǎng); 3)復(fù)雜接口、復(fù)雜流程和復(fù)雜時(shí)序要求; 4) 高實(shí)時(shí)性; 5) 高安全性 ; 6) 高可靠性。隨著戰(zhàn)術(shù)型號(hào)領(lǐng)域的跨越式發(fā)展,在研型號(hào)任務(wù)越來越多,意味著多個(gè)型號(hào)的多款發(fā)控軟件同時(shí)開始工程化開發(fā),對(duì)發(fā)控軟件人員的需求出現(xiàn)了急劇增長(zhǎng),現(xiàn)有的發(fā)控軟件人員儲(chǔ)備已經(jīng)疲于應(yīng)對(duì),急需尋求解決辦法。如何實(shí)現(xiàn)發(fā)控軟件的通用化,從而有效提高發(fā)控軟件生產(chǎn)效率以及有效保證發(fā)控軟件質(zhì)量,是值得探討的問題。
按照軟件實(shí)際運(yùn)行環(huán)境分類,發(fā)控軟件配置項(xiàng)大致可以分為基于VxWorks操作系統(tǒng)的產(chǎn)品軟件、基于DSP平臺(tái)的產(chǎn)品軟件以及基于Windows操作系統(tǒng)的產(chǎn)品軟件,其中,基于VxWorks操作系統(tǒng)的產(chǎn)品軟件一般是功能最為豐富、設(shè)計(jì)最為復(fù)雜的軟件,本文以基于VxWorks操作系統(tǒng)的產(chǎn)品軟件為例加以說明。
一般來講,各型號(hào)的發(fā)控軟件工作模式有相似性,都是在上級(jí)系統(tǒng)的指揮下,根據(jù)通信報(bào)文進(jìn)行數(shù)據(jù)分析、模型解算,進(jìn)而完成對(duì)下級(jí)的數(shù)據(jù)傳遞、對(duì)設(shè)備的自動(dòng)化控制等。
總體來說,隨著X86,ARM,PowerPC等先進(jìn)嵌入式硬件平臺(tái)的廣泛應(yīng)用,基于實(shí)時(shí)多任務(wù)嵌入式操作系統(tǒng)VxWorks進(jìn)行開發(fā)的產(chǎn)品軟件也越來越多。在軟件規(guī)模方面,1套發(fā)控軟件大約會(huì)包含4個(gè)左右產(chǎn)品軟件配置項(xiàng)和6個(gè)左右模擬器軟件。每個(gè)產(chǎn)品軟件代碼行數(shù)從3000~20000不等。
在研發(fā)模式方面,現(xiàn)階段,一個(gè)型號(hào)對(duì)應(yīng)一支軟件隊(duì)伍,如圖1所示。軟件研發(fā)均以型號(hào)為主線,各型號(hào)軟件產(chǎn)品的開發(fā)由各型號(hào)的設(shè)計(jì)師團(tuán)隊(duì)單獨(dú)完成,貫穿了設(shè)計(jì)、開發(fā)、調(diào)試、測(cè)試和維護(hù)等軟件全生命周期,即以型號(hào)為牽引、以軟件工程化管理為核心的研發(fā)模式 。
圖1 目前的型號(hào)軟件研發(fā)模式
目前發(fā)控軟件研發(fā)主要存在以下問題:
(1) 生產(chǎn)效率低,人力資源矛盾突出
生產(chǎn)效率低的核心原因是各項(xiàng)目各自為戰(zhàn),相互間沒有共享設(shè)計(jì)成果。每個(gè)型號(hào)軟件都要獨(dú)立完成軟件開發(fā)的各個(gè)步驟,軟件設(shè)計(jì)各自為戰(zhàn),軟件復(fù)用能力低,開發(fā)周期長(zhǎng),而每個(gè)型號(hào)針對(duì)每個(gè)軟件配置項(xiàng)均需要配備一個(gè)軟件設(shè)計(jì)人員,一旦型號(hào)任務(wù)多,則型號(hào)兼項(xiàng)情況嚴(yán)重,軟件設(shè)計(jì)人員任務(wù)負(fù)擔(dān)過重。
(2) 質(zhì)量難以保證
以型號(hào)為主線的管理模式,導(dǎo)致各型號(hào)的設(shè)計(jì)師團(tuán)隊(duì)相互溝通較少,缺少共同探討的學(xué)習(xí)平臺(tái),產(chǎn)品設(shè)計(jì)水平的高低主要由型號(hào)設(shè)計(jì)師的設(shè)計(jì)能力和經(jīng)驗(yàn)來保證,無(wú)法借鑒其它型號(hào)的設(shè)計(jì)經(jīng)驗(yàn)和優(yōu)秀設(shè)計(jì)模式,容易造成軟件設(shè)計(jì)質(zhì)量參差不齊,軟件質(zhì)量較大程度依賴于個(gè)人水平,從而影響產(chǎn)品的可靠性、維修性和通用性。
(3) 可擴(kuò)展差
軟件產(chǎn)品可擴(kuò)展性差的主要原因是軟件產(chǎn)品在設(shè)計(jì)之初沒有充分考慮拓展需求,也沒有充分考慮軟件整體架構(gòu)。深層次的原因是各軟件項(xiàng)目在需求分析時(shí)各自為戰(zhàn),對(duì)需求分析沒有挖掘充分和在廣度上拓展,導(dǎo)致后期出現(xiàn)需求變更時(shí)改動(dòng)量大,靈活性差,不便于功能擴(kuò)展。
(4) 軟件測(cè)評(píng)效率低
每個(gè)型號(hào)都要完成獨(dú)立的測(cè)評(píng),因?yàn)闆]有形成獨(dú)立的復(fù)用函數(shù)或者代碼庫(kù),對(duì)于部分復(fù)用的代碼依然要完成全部的測(cè)評(píng)。
(5) 后期維護(hù)困難(特別是人員變更以后)
多數(shù)型號(hào)軟件是依據(jù)設(shè)計(jì)師個(gè)人思路和邏輯形成代碼的,缺乏統(tǒng)一的、整體性框架的約束,在型號(hào)研制后期或者批產(chǎn)階段,如果相應(yīng)設(shè)計(jì)師換人,對(duì)原代碼的熟悉是一個(gè)漫長(zhǎng)而痛苦的過程。
(6) 難以創(chuàng)新
難以進(jìn)行高層次創(chuàng)新的主要原因是缺少高層次的決策指導(dǎo)。不斷創(chuàng)新是航天工程持續(xù)發(fā)展的不竭動(dòng)力。以往,每個(gè)軟件項(xiàng)目都是以滿足上級(jí)任務(wù)書要求為基本目標(biāo),加之時(shí)間、人手的限制,很少主動(dòng)去考慮技術(shù)創(chuàng)新,并且有大量低層次的重復(fù)勞動(dòng)。長(zhǎng)此以往下去,會(huì)造成技術(shù)停滯不前。
首先觀察一下整個(gè)軟件行業(yè),在解決代碼復(fù)用的問題上,目前業(yè)界普遍在用3種不同層次的方法:代碼模式(函數(shù)模式)、設(shè)計(jì)模式和架構(gòu)模式。以下分別針對(duì)3種模式分析用于型號(hào)發(fā)控軟件研發(fā)的可行性和意義。
3.1 代碼模式
代碼模式(函數(shù)模式)主要指函數(shù)的復(fù)用,目前已開始運(yùn)用,但是局限在一些細(xì)節(jié)層面,整體利用率低,因?yàn)楹瘮?shù)是最基本的復(fù)用單元,如果沒有統(tǒng)一的規(guī)劃,單純進(jìn)行函數(shù)復(fù)用,很難提高整體復(fù)用率。例如某型號(hào)的發(fā)控軟件的函數(shù)復(fù)用率僅為3%左右,具體數(shù)據(jù)如表1所示。
表1 函數(shù)復(fù)用率具體數(shù)據(jù)舉例
3.2 設(shè)計(jì)模式
設(shè)計(jì)模式是對(duì)被用來在特定場(chǎng)景下解決一般設(shè)計(jì)問題的類和相互通信的對(duì)象的描述。它確定了所包含的類和實(shí)例,它們的角色、協(xié)作方式以及職責(zé)分配。每一個(gè)設(shè)計(jì)模式都集中于一個(gè)特定的面向?qū)ο笤O(shè)計(jì)問題或設(shè)計(jì)要點(diǎn),描述了什么時(shí)候使用它,在另一些設(shè)計(jì)約束條件下是否還能使用,以及使用的效果和如何取舍。因?yàn)樵O(shè)計(jì)模式描述的是面向?qū)ο笤O(shè)計(jì),其實(shí)現(xiàn)語(yǔ)言是C++、JAVA等主流面向?qū)ο缶幊陶Z(yǔ)言,而不是過程式語(yǔ)言。目前經(jīng)典的設(shè)計(jì)模式共包含23個(gè)(如抽象工廠模式、適配器模式、觀察者模式等)。設(shè)計(jì)模式可以幫助人們運(yùn)用對(duì)象、接口、類和繼承之類的概念寫出靈活的、可復(fù)用的軟件。
目前的型號(hào)發(fā)控軟件基本都是在VxWorks或DSP下使用C語(yǔ)言開發(fā)的,如果引入設(shè)計(jì)模式,需要采用面向?qū)ο蟮脑O(shè)計(jì)方法和面向?qū)ο笤O(shè)計(jì)語(yǔ)言,目前整個(gè)航天的軟件工程管理需要做一定的調(diào)整。這是一個(gè)發(fā)展方向,也是需要比較漫長(zhǎng)的過程。
3.3 架構(gòu)模式
軟件體系結(jié)構(gòu)通常被稱為軟件架構(gòu),指可以預(yù)制和可重構(gòu)的軟件框架結(jié)構(gòu)。軟件系統(tǒng)的架構(gòu)也被描述為軟件組件與組件之間的交互。軟件的架構(gòu)設(shè)計(jì)是軟件的核心,任何一個(gè)軟件都有其架構(gòu),區(qū)別在于架構(gòu)的好壞。總結(jié)來說,軟件架構(gòu)的主要特點(diǎn)如下:
1) 軟件架構(gòu)(Architecture) 不是軟件,而是關(guān)于如何設(shè)計(jì)的決策;
2) 框架 (FrameWork) 是軟件架構(gòu)的代碼實(shí)現(xiàn);
3) 架構(gòu)是關(guān)于如何劃分系統(tǒng),及各部分如何交互的;
4) 架構(gòu)是系統(tǒng)的高層次策略,可作為具體軟件體系結(jié)構(gòu)的模板;
5) 已經(jīng)成熟的軟件架構(gòu)模式包括十多種,如分層模式、倉(cāng)庫(kù)系統(tǒng)知識(shí)庫(kù)模式和過程控制模式等。
如果說函數(shù)是磚,設(shè)計(jì)模式是墻體,那么架構(gòu)是整棟建筑的框架。一旦將整棟建筑的框架設(shè)計(jì)好,在這個(gè)基礎(chǔ)上靈活地增加墻體和磚,就像軟件的二次開發(fā)和擴(kuò)展,是比較容易的事情。也即,只有將軟件的架構(gòu)設(shè)計(jì)好,才能研發(fā)出通用性好、擴(kuò)展性好、復(fù)用率高和代碼質(zhì)量高的軟件,才能進(jìn)一步地進(jìn)行功能創(chuàng)新。
綜上所述,基于通用架構(gòu)的軟件復(fù)用是最高層次、最具效率、能最大范圍規(guī)范產(chǎn)品質(zhì)量的復(fù)用模式。在型號(hào)發(fā)控軟件通用化研發(fā)方面,應(yīng)當(dāng)采用基于通用架構(gòu)的軟件復(fù)用方式進(jìn)行研發(fā),以最大程度提高軟件的復(fù)用率和質(zhì)量,保證發(fā)控軟件的生產(chǎn)效率。
依據(jù)軟件架構(gòu)設(shè)計(jì)思想,必須結(jié)合型號(hào)嵌入式軟件的自身特點(diǎn),有針對(duì)性地進(jìn)行型號(hào)軟件的通用化軟件架構(gòu)的設(shè)計(jì)。
現(xiàn)在研發(fā)的基于VxWorks系統(tǒng)的發(fā)控軟件一般有如下特點(diǎn):
1)操作系統(tǒng)VxWorks提供底層BSP支持、中斷處理、多任務(wù)調(diào)度和任務(wù)間通信等支持,其wind內(nèi)核保證任務(wù)間切換時(shí)間嚴(yán)格限制在毫秒級(jí),且任何時(shí)刻系統(tǒng)的狀態(tài)都可預(yù)測(cè);
2)驅(qū)動(dòng)程序一般由硬件開發(fā)商提供,負(fù)責(zé)處理與底層擴(kuò)展板卡的交互,包括網(wǎng)絡(luò)、CAN、1553B、串口、DIO、DA、AD和定時(shí)器等。在運(yùn)行時(shí)態(tài)上一般分為函數(shù)調(diào)用、中斷處理和任務(wù)查詢等幾種方式;
3)產(chǎn)品應(yīng)用代碼更多地關(guān)注功能的實(shí)現(xiàn),比如數(shù)據(jù)分析、算法解算和硬件自動(dòng)化控制,從而完成發(fā)控設(shè)備的工作流程。性能上,要實(shí)現(xiàn)軟件內(nèi)部復(fù)雜邏輯關(guān)系的有序銜接,必須規(guī)劃好任務(wù)間的時(shí)序,做好CPU的時(shí)間分配,多任務(wù)間資源的互斥保護(hù)等,最終依靠VxWorks操作系統(tǒng)的實(shí)時(shí)調(diào)度,保證軟件運(yùn)行的可靠性和可控性。
以上這點(diǎn)可以開發(fā)出性能出色的產(chǎn)品軟件,但是不能保證某些設(shè)計(jì)師寫出非常糟糕的代碼,為整個(gè)系統(tǒng)的后期聯(lián)調(diào)、試驗(yàn)埋下諸多隱患。因此必須在此基礎(chǔ)上,做好通用化的軟件架構(gòu),提升軟件整體質(zhì)量。而通用化軟件架構(gòu)的設(shè)計(jì)和行業(yè)的業(yè)務(wù)邏輯關(guān)系緊密,好的軟件架構(gòu)設(shè)計(jì)是建立在對(duì)業(yè)務(wù)邏輯、數(shù)學(xué)建模的充分理解之上的。
下面通過汽車電子行業(yè)標(biāo)準(zhǔn)的研究得到一些啟發(fā)。
現(xiàn)代汽車功能創(chuàng)新不斷、多樣化差異化加劇,給汽車電子系統(tǒng)的研發(fā)提出更多創(chuàng)新、定制、快速上市的要求。AutoSAR標(biāo)準(zhǔn)就是汽車電子控制單元(ECU)軟件研發(fā)的行業(yè)標(biāo)準(zhǔn),也就是行業(yè)頂層通用化軟件架構(gòu)。該標(biāo)準(zhǔn)的架構(gòu)目標(biāo)就是能跨平臺(tái)、跨產(chǎn)品復(fù)用軟件模塊,避免不同產(chǎn)品之間的代碼反復(fù)開發(fā)等。
AutoSAR標(biāo)準(zhǔn)的關(guān)鍵設(shè)計(jì)思想之一是將應(yīng)用層、服務(wù)層、ECU抽象層和微控制器抽象層的分離。其中,微控制器抽象層包括與微控制器相關(guān)的驅(qū)動(dòng),封裝了微控制器的控制細(xì)節(jié),使得上層模塊獨(dú)立于微控制器。ECU抽象層,將ECU結(jié)構(gòu)進(jìn)行抽象、封裝,該層的實(shí)現(xiàn)與ECU硬件相關(guān),但與控制器無(wú)關(guān)。服務(wù)層提供包括網(wǎng)絡(luò)服務(wù)、存儲(chǔ)服務(wù)和操作系統(tǒng)服務(wù)等系統(tǒng)服務(wù),與平臺(tái)無(wú)關(guān)。應(yīng)用層包括各種應(yīng)用程序,與硬件無(wú)關(guān)。具體如圖2所示。
圖2 汽車電子行業(yè)標(biāo)準(zhǔn)(AutoSAR)
這樣的分層模型,將一個(gè)大型軟件按實(shí)現(xiàn)功能不同分成了若干個(gè)能力單元,并歸入不同層中。這樣在面對(duì)不同的應(yīng)用需求時(shí),可以在每個(gè)分層中都做到最大程度的復(fù)用,而且各層之間的關(guān)系耦合度低,只要層與層之間的接口不變,改變某層的內(nèi)部代碼,不會(huì)影響其他層的運(yùn)行。借鑒外部經(jīng)驗(yàn),通過對(duì)發(fā)控設(shè)備的業(yè)務(wù)流程的分析,基于VxWorks的型號(hào)軟件通用化架構(gòu)非常適合采用分層模型。
總的來說,以VxWorks操作系統(tǒng)為平臺(tái),發(fā)控軟件架構(gòu)設(shè)計(jì)可以分為5層,自底向上分別為:
第1層——驅(qū)動(dòng)層:相關(guān)硬件驅(qū)動(dòng)。負(fù)責(zé)處理與底層擴(kuò)展板卡的最基本交互,主要是包括網(wǎng)絡(luò)、CAN、1553B、串口、DIO、DA、AD和定時(shí)器等芯片的初始設(shè)置、寄存器的操作等。在運(yùn)行時(shí)態(tài)上一般分為函數(shù)調(diào)用、中斷處理和任務(wù)查詢等幾種方式;
第2層——驅(qū)動(dòng)管理層:調(diào)用驅(qū)動(dòng)層的函數(shù)或者任務(wù)實(shí)現(xiàn)不同的通信功能或硬件動(dòng)作,比如網(wǎng)絡(luò)/串口/CAN/1553B的初始化、數(shù)據(jù)發(fā)送和接收,DIO,DA,AD的數(shù)據(jù)讀取與賦值等;
第3層——數(shù)據(jù)解析層:將從驅(qū)動(dòng)管理層接收到的報(bào)文解析后形成有定義的數(shù)據(jù)發(fā)送給過程層;將從過程層接收到的數(shù)據(jù)裝訂成報(bào)文發(fā)送給驅(qū)動(dòng)管理層。數(shù)據(jù)解析層只負(fù)責(zé)數(shù)據(jù)的解析和傳遞,與硬件和驅(qū)動(dòng)無(wú)關(guān)。報(bào)文的解析是可以根據(jù)不同的通信協(xié)議靈活定制的。該層的數(shù)據(jù)解析還包括了任務(wù)間的數(shù)據(jù)傳遞和解析;
第4層——過程層:也可以解釋為最小執(zhí)行單元層,系統(tǒng)工作流程被細(xì)化成最小執(zhí)行單元,這些最小執(zhí)行單元對(duì)于不同的型號(hào)來說,應(yīng)當(dāng)是相同的。比如目標(biāo)的加電、自檢、發(fā)射單步步驟、IO讀寫和故障檢測(cè)等。最小執(zhí)行單元被主控層調(diào)用;
第5層——主控層:負(fù)責(zé)根據(jù)不同型號(hào)的工作流程將最小執(zhí)行單元組織起來,完成特定的功能,這一層是根據(jù)不同型號(hào)的需求個(gè)性化定制的,包括與運(yùn)行機(jī)制相關(guān)的功能。
基于VxWorks的發(fā)控軟件通用架構(gòu)5層模型如圖3所示。
圖3 通用軟件架構(gòu)五層模型
在數(shù)據(jù)傳遞和軟件時(shí)序控制方面,架構(gòu)設(shè)計(jì)要充分考慮中斷、任務(wù)調(diào)度、內(nèi)存分配等因素,遵循數(shù)據(jù)傳遞的松耦合性、時(shí)序運(yùn)行的可控性原則,定義數(shù)據(jù)傳遞規(guī)則和流程,確立任務(wù)調(diào)度關(guān)系,從而將軟件的整體運(yùn)行框架固化。
分層模型首先就要解決數(shù)據(jù)傳遞的問題,主要包括層與層之間的數(shù)據(jù)傳遞。在5層模型中,層與層之間的數(shù)據(jù)傳遞要制定統(tǒng)一的協(xié)議,數(shù)據(jù)格式也要統(tǒng)一,這樣能保證個(gè)別層中發(fā)生更改,在數(shù)據(jù)接口不變的情況下不影響其他層。在數(shù)據(jù)傳遞機(jī)制上,各層大多以任務(wù)的形式在內(nèi)存中運(yùn)行,任務(wù)間要實(shí)現(xiàn)松耦合,可利用VxWorks的消息隊(duì)列或管道機(jī)制實(shí)現(xiàn)數(shù)據(jù)傳遞[1-2],必要時(shí)可以對(duì)消息隊(duì)列或管道進(jìn)行二次封裝。
在軟件運(yùn)行時(shí)序控制上,整個(gè)軟件是以主控層為核心運(yùn)行的。主控層以任務(wù)方式運(yùn)行,其基本調(diào)度模式有2種:1)靠定時(shí)器激勵(lì)的定周期模式;2)靠外部消息激勵(lì)的非定周期模式,包括外部報(bào)文、故障信息和任務(wù)間消息等。另外,驅(qū)動(dòng)層以函數(shù)調(diào)用方式運(yùn)行,是依靠外部激勵(lì)或者驅(qū)動(dòng)管理層的調(diào)用運(yùn)行的。驅(qū)動(dòng)管理層以任務(wù)方式運(yùn)行,依靠外部數(shù)據(jù)進(jìn)行激勵(lì),外部數(shù)據(jù)包括中斷處理、數(shù)據(jù)解析層傳遞的數(shù)據(jù)等。數(shù)據(jù)解析層以任務(wù)方式運(yùn)行,依靠外部數(shù)據(jù)進(jìn)行激勵(lì),外部數(shù)據(jù)包括驅(qū)動(dòng)管理層、過程層傳遞的數(shù)據(jù)等。過程層以函數(shù)調(diào)用或者任務(wù)方式運(yùn)行,依靠主控層的調(diào)用或者數(shù)據(jù)解析層傳遞的數(shù)據(jù)進(jìn)行激勵(lì)。
兩者結(jié)合起來的情況如圖4所示。
以上給出了通用發(fā)控軟件架構(gòu)的分層模型、數(shù)據(jù)流關(guān)系、時(shí)序控制邏輯,基本確定了一個(gè)發(fā)控軟件的核心,這樣的架構(gòu)可以普遍應(yīng)用于基于VxWorks的發(fā)控設(shè)備的產(chǎn)品軟件中。依據(jù)這樣的軟件架構(gòu)可以生成最基本的軟件框架代碼,這是對(duì)于各個(gè)型號(hào)、各個(gè)軟件都可用的軟件代碼。然后在此代碼的基礎(chǔ)上,進(jìn)一步開發(fā)個(gè)性功能的本地化,最終得到型號(hào)發(fā)控產(chǎn)品軟件。通過這種研發(fā)模式,實(shí)現(xiàn)軟件架構(gòu)的框架代碼被復(fù)用到各個(gè)型號(hào),提高了代碼復(fù)用率,規(guī)范了各個(gè)型號(hào)的軟件,也保證了代碼的質(zhì)量,實(shí)現(xiàn)了發(fā)控軟件產(chǎn)品化。
在項(xiàng)目管理方式上,由面向單項(xiàng)目管理改進(jìn)為項(xiàng)目集管理,設(shè)定項(xiàng)目集經(jīng)理進(jìn)行頂層管控,在各項(xiàng)目之間統(tǒng)籌人力和知識(shí)資源,促進(jìn)設(shè)計(jì)成果共享,協(xié)同完成各個(gè)項(xiàng)目。做好項(xiàng)目集管理的核心是各種資源的統(tǒng)籌復(fù)用,其中包括知識(shí)復(fù)用和人力復(fù)用。要實(shí)現(xiàn)知識(shí)復(fù)用,包括設(shè)計(jì)成果的復(fù)用,最好的方法就是發(fā)控軟件產(chǎn)品化,復(fù)用到各個(gè)型號(hào)中;要實(shí)現(xiàn)人力復(fù)用,需要對(duì)應(yīng)的組織架構(gòu)支持和考核辦法跟進(jìn)。
圖4 通用發(fā)控軟件架構(gòu)數(shù)據(jù)流和時(shí)序圖
目前面向多項(xiàng)目的發(fā)控軟件研發(fā)模式還缺乏足夠的實(shí)施案例,尚處于初期的研究與應(yīng)用中,雖然推廣這樣的研發(fā)模式非常具有價(jià)值,但是鑒于傳統(tǒng)的習(xí)慣做法和嚴(yán)格的規(guī)范要求,這種模式被廣泛接受和采納還需要時(shí)間。但型號(hào)軟件研發(fā)面臨的局面迫使管理者必須做出選擇,隨著應(yīng)用的推廣,該研發(fā)模式最終將被軟件工程化規(guī)范接納和吸收,成為指導(dǎo)所有型號(hào)軟件研制的依據(jù)之一。另外,如果在硬件設(shè)計(jì)、作戰(zhàn)流程設(shè)計(jì)及通信協(xié)議設(shè)計(jì)上考慮周全,不同型號(hào)間做到充分復(fù)用,那么不同型號(hào)間就可以實(shí)現(xiàn)軟件需求上的充分復(fù)用。
[1] 王雷,樊曉椏,王黨輝.龍芯3A平臺(tái)VxWorks移植的研究和實(shí)現(xiàn)[M].西安:微電子學(xué)與計(jì)算機(jī),2012,2.(Wang Lei,F(xiàn)an Xiaoya,Wang Danghui. The Research and Realization of VxWorks Transplant for LongXin 3A Platform[M]. Xi’an:Microelectronics & Computer,2012,2.)
[2] 陳智育,溫彥軍,陳琪.VxWorks程序開發(fā)實(shí)踐[M].北京:人民郵電出版社,2004,5. (Chen Zhiyu,Wen Yanjun,Chen Qi. The VxWorks’ Program Development Practice[M].Beijing: Posts and Telecommunications Press,2004,5.)
Research of the Generalized Technologies for the Software of Launch-Control Equipment
Zhao Weizhong1,Ding Xiaoqin2
Shanghai Electro-Mechanical Engineering Institute, Shanghai 201109, China
Theexistingproblemsaboutthestatus-quoofthedevelopmentofthelaunch-controlequipmentsoftwareareanalyzedinthispaper,whicharecombinedwiththematurityandsuccessfulexperienceofthesoftwareindustry.Thesolutionproposedishowtorealizethegeneralizedtechnologiesofthelaunch-controlequipmentsoftwareinordertoimprovetheproductivityofthelaunch-controlequipmentsoftwareandeffectivelyguaranteethequalityofthelaunch-controlequipmentsoftware.
Launch-controlequipmentsoftware;Generalizedtechnology;Softwarestructure
2015-12-07
趙偉忠(1970-),男,江蘇南通人,碩士研究生,高級(jí)工程師,主要研究方向?yàn)槲淦飨到y(tǒng)軟件總體設(shè)計(jì);丁小芩(1987-),女,安徽潛山人,碩士研究生,工程師,主要研究方向?yàn)槲淦飨到y(tǒng)軟件總體設(shè)計(jì)。
TP311.52
A
1006-3242(2016)03-0077-06