龍 捷 黃 鶯 劉 飛
(北京航天時(shí)代激光導(dǎo)航技術(shù)有限責(zé)任公司,北京,100094)
以“三化”思想為指導(dǎo)構(gòu)建激光慣組軟件構(gòu)件庫(kù)
龍 捷 黃 鶯 劉 飛
(北京航天時(shí)代激光導(dǎo)航技術(shù)有限責(zé)任公司,北京,100094)
文摘:分析激光慣組軟件研制現(xiàn)狀,對(duì)照企業(yè)軟件研制中出現(xiàn)的問(wèn)題,提出確定以“軟件復(fù)用技術(shù)”和“軟件構(gòu)件化開(kāi)發(fā)方法”作為激光慣組軟件“三化”的具體實(shí)現(xiàn)形式,建立激光慣組軟件構(gòu)件庫(kù),實(shí)施后的預(yù)期效果顯示可提高開(kāi)發(fā)效率50%以上。
軟件構(gòu)件;激光慣組;軟件復(fù)用;軟件構(gòu)件庫(kù);三化。
激光慣組是火箭、導(dǎo)彈等運(yùn)載體的控制系統(tǒng)關(guān)鍵單機(jī),型號(hào)軟件是激光慣組不可分割的重要組成部分,具有物理依賴(lài)度低、靈活性較強(qiáng)等特點(diǎn)。與硬件相比,軟件變更、運(yùn)行和維護(hù)的成本與代價(jià)更小,型號(hào)新需求、新功能更多的是通過(guò)軟件設(shè)計(jì)得以實(shí)現(xiàn),這使得軟件研發(fā)能力與型號(hào)軟件質(zhì)量變得尤為重要,從集團(tuán)公司到各院所對(duì)于軟件的重視程度不斷提升。在當(dāng)前“高密度研制、高密度發(fā)射、競(jìng)爭(zhēng)性發(fā)展”的新形勢(shì)和保證流程規(guī)范的前提下,如何確保型號(hào)軟件的研制開(kāi)發(fā)效率,如何保證又好又快地完成型號(hào)軟件研制任務(wù),是我們迫切需要解決的問(wèn)題。
我公司自成立以來(lái)始終致力于激光慣組技術(shù)的研究,目前我們研制生產(chǎn)的激光慣組產(chǎn)品已廣泛應(yīng)用于航天、航空和艦船等領(lǐng)域,在多項(xiàng)國(guó)家重點(diǎn)型號(hào)任務(wù)上均有出色表現(xiàn)。我們以“三化”(通用化、系列化和組合化(模塊化))思想作為指導(dǎo),開(kāi)展了激光慣組軟件構(gòu)件庫(kù)的一系列研究工作。
1.1 工程化管理與基礎(chǔ)技術(shù)工作不協(xié)調(diào)
按照軟件工程化要求開(kāi)展激光慣組軟件研制工作是型號(hào)硬性要求,其核心思想是對(duì)軟件進(jìn)行項(xiàng)目管理、加強(qiáng)過(guò)程控制。但在具體實(shí)施過(guò)程中,始終難以擺脫文實(shí)不符、根據(jù)結(jié)果補(bǔ)記錄等“兩層皮”現(xiàn)象。技術(shù)基礎(chǔ)跟不上管理要求的節(jié)奏,管理與技術(shù)不能形成相互促進(jìn)的良性循環(huán),不僅沒(méi)有收到管理的效益,反而使管理成為包袱,使設(shè)計(jì)人員疲于應(yīng)付各類(lèi)檢查。
1.2 管理模式不能適應(yīng)新形勢(shì)的需要
過(guò)去以型號(hào)為牽引劃分團(tuán)隊(duì)精耕細(xì)作的研發(fā)模式使得我們更加關(guān)注型號(hào)縱向發(fā)展,這在型號(hào)數(shù)量較少時(shí)尚能運(yùn)轉(zhuǎn)良好,但隨著型號(hào)數(shù)量激增,橫向?qū)I(yè)發(fā)展滯后的弊病開(kāi)始顯現(xiàn)。我公司現(xiàn)有軟件開(kāi)發(fā)與測(cè)試人員20多名,擔(dān)負(fù)各類(lèi)型號(hào)慣組研制任務(wù)40余個(gè),包括國(guó)家級(jí)重點(diǎn)型號(hào)16個(gè),如果還是按照原來(lái)的管理模式,則型號(hào)軟件研制能力不足、資源不夠的問(wèn)題就會(huì)日益凸顯。
1.3 重質(zhì)量與保進(jìn)度仍存在矛盾
近年來(lái),國(guó)家對(duì)于裝備質(zhì)量的重視程度上升到了一個(gè)新的高度,采取了質(zhì)量終身問(wèn)責(zé)制等舉措,不斷強(qiáng)化質(zhì)量意識(shí),強(qiáng)調(diào)“質(zhì)量就是生命”。作為裝備制造體系內(nèi)的科研企業(yè),在當(dāng)前高度競(jìng)爭(zhēng)的態(tài)勢(shì)下,要想謀求自身的發(fā)展壯大,在保證質(zhì)量的前提下,保證交付進(jìn)度同樣重要。在裝備行業(yè)整體大發(fā)展的背景下,承擔(dān)的型號(hào)任務(wù)數(shù)量還在不斷增長(zhǎng),總體要求的研制進(jìn)度越來(lái)越緊,對(duì)于過(guò)程控制的要求越來(lái)越高,如何保證型號(hào)軟件研制工作又好又快,兼顧品質(zhì)和發(fā)展,成為我們面臨的現(xiàn)實(shí)而迫切的問(wèn)題。
上述三個(gè)方面的問(wèn)題究其根源是軟件研發(fā)能力不足和效率不高,不能與企業(yè)當(dāng)前發(fā)展需求相適應(yīng)。要實(shí)現(xiàn)軟件研發(fā)能力與效率的全面提升,必須以系統(tǒng)性思維去認(rèn)識(shí)問(wèn)題、看待問(wèn)題,著力解決好由于組織管理中存在的多重割裂所導(dǎo)致的資源低效運(yùn)轉(zhuǎn)甚至是無(wú)效運(yùn)轉(zhuǎn)。
通用化、系列化和組合化的標(biāo)準(zhǔn)化形態(tài)可表述為:通用化是“點(diǎn)離散”統(tǒng)一形態(tài),包括產(chǎn)品通用化和技術(shù)通用化,通過(guò)對(duì)單一性的接口或功能進(jìn)行統(tǒng)一,弱化其專(zhuān)有屬性,形成普遍適用的基本單元;系列化是“線離散”統(tǒng)一形態(tài),對(duì)一組對(duì)象中具有規(guī)律性的離散值與分立性進(jìn)行統(tǒng)一,以較少的品種覆蓋較大的應(yīng)用范圍;組合化是“面離散”統(tǒng)一形態(tài),對(duì)較大規(guī)模的實(shí)體及其功能的多體、分布式的集成關(guān)系進(jìn)行統(tǒng)一,集成后的主體以接口互換性為基礎(chǔ),具有整體互換性。
軍工行業(yè)各領(lǐng)域長(zhǎng)期的科研生產(chǎn)實(shí)踐充分表明,“三化”是對(duì)產(chǎn)品進(jìn)行系統(tǒng)性規(guī)范控制的有效手段,是提高型號(hào)工程質(zhì)量和效能、縮短研制生產(chǎn)周期、降低研制成本的重要保證,是解決產(chǎn)品多樣化需求和批量化研制之間矛盾的必由之路。
對(duì)照我公司軟件研制中出現(xiàn)的問(wèn)題:技術(shù)與管理脫節(jié)、型號(hào)與專(zhuān)業(yè)失衡、質(zhì)量與進(jìn)度沖突,可以發(fā)現(xiàn),“三化”思想與我們的發(fā)展需求高度契合。
在長(zhǎng)期的科研生產(chǎn)實(shí)踐中,對(duì)于軟件“三化”的需求其實(shí)一直存在。如何讓軟件實(shí)現(xiàn)快捷、高效開(kāi)發(fā),并且保證質(zhì)量,很自然地就會(huì)想到要復(fù)用、要模塊化。軟件工程化各類(lèi)標(biāo)準(zhǔn)和要求對(duì)于軟件設(shè)計(jì)明確提出“模塊化”要求。僅對(duì)單一型號(hào)軟件考慮“模塊化”,其實(shí)與“三化”的要求相差甚遠(yuǎn),對(duì)于特定應(yīng)用而言,較好的模塊劃分,可能并不適用于其它應(yīng)用場(chǎng)合,不利于型號(hào)間的通用。深入貫徹“三化”思想,必須達(dá)到更高的抽象層次。
我公司以問(wèn)題為導(dǎo)向,經(jīng)過(guò)充分論證,形成激光慣組軟件“三化”工作思路,如圖1所示。
將型號(hào)軟件研制這一綜合性任務(wù)所包含的技術(shù)要素和管理要素進(jìn)行拆解和集成,同時(shí)結(jié)合我公司GJB 5000A體系建設(shè)工作,進(jìn)一步細(xì)分階段、規(guī)范流程、明確工作產(chǎn)品,促進(jìn)技術(shù)與管理的銜接融合。打通型號(hào)間壁壘,對(duì)各型號(hào)軟件的碎片化需求進(jìn)行歸納,從軟件專(zhuān)業(yè)維度進(jìn)行分類(lèi)和整合,建立層次化需求圖譜,統(tǒng)籌型號(hào)與專(zhuān)業(yè)的均衡發(fā)展,實(shí)現(xiàn)有限資源的高效運(yùn)轉(zhuǎn)。對(duì)已有型號(hào)軟件工作產(chǎn)品進(jìn)行再認(rèn)識(shí)和再發(fā)掘,提煉和固化其中的可復(fù)用資源,將長(zhǎng)期工程實(shí)踐中形成的經(jīng)驗(yàn)轉(zhuǎn)化為后續(xù)工作的基礎(chǔ)和資源,確保型號(hào)軟件質(zhì)量與進(jìn)度的又好又快。
以“三化”思想為指導(dǎo),經(jīng)過(guò)廣泛地調(diào)研與論證,我們最終確定以“軟件復(fù)用技術(shù)”和“軟件構(gòu)件化開(kāi)發(fā)方法”作為激光慣組軟件“三化”的具體實(shí)現(xiàn)形式,以激光慣組軟件構(gòu)件庫(kù)作為具體實(shí)施途徑。
3.1 基本概念
D.Mcllroy于1968年在NATO軟件工程會(huì)議上首次提出“軟件復(fù)用”概念,闡述了發(fā)展以可復(fù)用源代碼軟件構(gòu)件為基礎(chǔ)的軟件工業(yè)和利用COTS(Commercial Off The Shelf)構(gòu)建工業(yè)化生產(chǎn)軟件的觀點(diǎn)。復(fù)用對(duì)象包括軟件編碼,以及軟件生產(chǎn)過(guò)程中的其它勞動(dòng)成果,如項(xiàng)目計(jì)劃書(shū)、可行性報(bào)告、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試用例、文檔與使用手冊(cè)等。從1968年至今,軟件復(fù)用技術(shù)經(jīng)過(guò)了4個(gè)標(biāo)志性的發(fā)展階段:①1968年~1978年,Mcllroy首次提出軟件復(fù)用思想;②1979年~1983年,Lanergan研究人員通過(guò)對(duì)大量源程序進(jìn)行分析,發(fā)現(xiàn)不同軟件之間有60%以上的設(shè)計(jì)是重復(fù)的,同類(lèi)軟件中有60%以上的代碼是冗余的,只有通過(guò)復(fù)用才能實(shí)現(xiàn)高效、可靠的軟件規(guī)?;a(chǎn),軟件復(fù)用逐漸成為業(yè)界共識(shí);③1983年~1994年,美國(guó)IEEE軟件工程匯刊和IEEE軟件期刊先后出版了軟件復(fù)用相關(guān)技術(shù)的專(zhuān)輯,歐洲專(zhuān)門(mén)設(shè)立了軟件復(fù)用示范項(xiàng)目,這一系列舉措使得軟件復(fù)用技術(shù)理論體系得到了極大完善,實(shí)踐方法取得了長(zhǎng)足發(fā)展;④1994年至今,軟件復(fù)用受到業(yè)界高度重視,越來(lái)越多的人員和機(jī)構(gòu)投入到軟件復(fù)用技術(shù)的研究和應(yīng)用當(dāng)中,使之成為繼面向?qū)ο蠓治鲆约霸O(shè)計(jì)方法之后軟件領(lǐng)域新的發(fā)展趨勢(shì)。
基于構(gòu)件的軟件開(kāi)發(fā)方法(component-based software development,簡(jiǎn)稱(chēng)CBSD)將通?!八惴?數(shù)據(jù)結(jié)構(gòu)”的開(kāi)發(fā)模式轉(zhuǎn)變?yōu)榛凇皹?gòu)件開(kāi)發(fā)+構(gòu)架指導(dǎo)”的構(gòu)件組裝模式。與傳統(tǒng)軟件開(kāi)發(fā)方法相比,CBSD具有的特點(diǎn)是:構(gòu)件即插即用;接口與實(shí)現(xiàn)分離;高度穩(wěn)定性;高度可擴(kuò)展性。
3.2 關(guān)鍵技術(shù)
3.2.1 構(gòu)件分類(lèi)
構(gòu)件分類(lèi)技術(shù)是制定構(gòu)件組裝方法、使用說(shuō)明以及出入庫(kù)流程等管理要求的重要依據(jù),直接決定軟件構(gòu)件的實(shí)現(xiàn)形式和相應(yīng)的構(gòu)件管理方法。
一般而言,構(gòu)件可分為以下幾類(lèi):
·面向用戶的構(gòu)件:用于函數(shù)封裝、用戶接口和人機(jī)交互;
·面向底層的構(gòu)件:用于操作特定的計(jì)算機(jī)硬件資源以提供相應(yīng)服務(wù);
·面向數(shù)據(jù)庫(kù)的構(gòu)件:用于內(nèi)部/外部數(shù)據(jù)的存儲(chǔ)、讀取和管理。
采用面向領(lǐng)域的方法來(lái)對(duì)構(gòu)件進(jìn)行分類(lèi)則應(yīng)該包括以下三類(lèi)構(gòu)件:
·通用基本構(gòu)件,如基本數(shù)據(jù)結(jié)構(gòu)、常用接口、程序框架等;
·領(lǐng)域共性構(gòu)件,如導(dǎo)航算法、濾波算法等;
·應(yīng)用專(zhuān)用構(gòu)件,如各型號(hào)具體的接口控制和狀態(tài)轉(zhuǎn)換等。
參考領(lǐng)域工程相關(guān)理論,借鑒物理層、鏈路層、數(shù)據(jù)層和應(yīng)用層的逐級(jí)抽象模型,制定《激光慣組軟件構(gòu)件分類(lèi)方法》,作為構(gòu)件庫(kù)頂層約束文件之一,指導(dǎo)構(gòu)件庫(kù)的設(shè)計(jì)與開(kāi)發(fā)工作,保證軟件構(gòu)件的合理規(guī)劃和有效管理。
3.2.2 構(gòu)件獲取
通過(guò)對(duì)可復(fù)用信息與領(lǐng)域的分析,可以得到構(gòu)件??蓮?fù)用信息依賴(lài)于特定問(wèn)題和特定問(wèn)題的解決方法,具有領(lǐng)域特定性,識(shí)別、獲取和表示可復(fù)用信息時(shí)可采用面向領(lǐng)域的策略,如圖2所示。
構(gòu)件獲取以高可靠性為原則,優(yōu)先考慮從已用的軟件資源中直接獲取。
對(duì)于已經(jīng)完成設(shè)計(jì)定型的軟件,其核心算法和主要功能模塊經(jīng)過(guò)長(zhǎng)期飛行考核,被證明是成熟度高、可靠性高的實(shí)現(xiàn)形式,可以直接提取或作簡(jiǎn)單地適應(yīng)性修改,形成可復(fù)用的構(gòu)件。通過(guò)對(duì)型號(hào)軟件研制工作進(jìn)行歸納和總結(jié),分析工程中積累下來(lái)的優(yōu)秀實(shí)踐,將具有潛在復(fù)用價(jià)值的構(gòu)件提取出來(lái),也可得到可復(fù)用的構(gòu)件。無(wú)法從現(xiàn)用軟件資源中直接獲取的構(gòu)件,需重新開(kāi)發(fā)。通過(guò)制定《軟件構(gòu)件設(shè)計(jì)標(biāo)準(zhǔn)》和《軟件構(gòu)件編碼標(biāo)準(zhǔn)》,對(duì)全新開(kāi)發(fā)的軟件構(gòu)件進(jìn)行有效的設(shè)計(jì)統(tǒng)籌和規(guī)范化約束,保證軟件構(gòu)件的設(shè)計(jì)水平和產(chǎn)品質(zhì)量。
3.3 預(yù)期效果
為保證激光慣組軟件構(gòu)件庫(kù)研究有序開(kāi)展,針對(duì)構(gòu)件庫(kù)研究課題制定主要技術(shù)指標(biāo):①構(gòu)件庫(kù)通過(guò)自測(cè)試與三方測(cè)試,應(yīng)實(shí)現(xiàn)“0”缺陷;②構(gòu)件庫(kù)可重用性100%;③構(gòu)件庫(kù)對(duì)于不同型號(hào)、不同目標(biāo)機(jī)與宿主機(jī)覆蓋率100%;④構(gòu)件庫(kù)中的標(biāo)準(zhǔn)構(gòu)件對(duì)于各類(lèi)型號(hào)軟件頂層標(biāo)準(zhǔn)的符合程度不低于80%;⑤基于激光慣導(dǎo)軟件構(gòu)件庫(kù)開(kāi)發(fā)的型號(hào)軟件中標(biāo)準(zhǔn)構(gòu)件所占比重不低于50%。
以標(biāo)準(zhǔn)構(gòu)件為基礎(chǔ)的軟件復(fù)用技術(shù)可從根本上提升型號(hào)軟件質(zhì)量,預(yù)計(jì)可降低我公司軟件產(chǎn)品年均故障率40%以上,降低質(zhì)量維護(hù)成本。采用構(gòu)件化軟件開(kāi)發(fā)方法可大幅提高型號(hào)軟件開(kāi)發(fā)效率,以完善的軟件構(gòu)件庫(kù)為支撐,預(yù)計(jì)可提高開(kāi)發(fā)效率50%以上,降低研發(fā)成本。通過(guò)軟件構(gòu)件化技術(shù),可有效降低設(shè)計(jì)人員技術(shù)門(mén)檻,壓縮人力成本,減少人的因素造成的質(zhì)量風(fēng)險(xiǎn)。通過(guò)制定系列軟件模塊化標(biāo)準(zhǔn),可使軟件產(chǎn)品的規(guī)范性和標(biāo)準(zhǔn)化程度得到提高,全面提升軟件產(chǎn)品的技術(shù)水平和質(zhì)量形象。
國(guó)外大量的研究和實(shí)踐證明,軟件復(fù)用技術(shù)是改進(jìn)軟件開(kāi)發(fā)過(guò)程、提升軟件開(kāi)發(fā)效率和軟件產(chǎn)品質(zhì)量的一種有效的、可行的技術(shù)途徑。我公司積極開(kāi)展調(diào)研和論證,探索出以“三化”思想作為指導(dǎo),開(kāi)展激光慣組軟件構(gòu)件庫(kù)研究的工作思路,全面提升軟件研發(fā)能力與效率,使之與企業(yè)長(zhǎng)遠(yuǎn)發(fā)展需求相適應(yīng)。通過(guò)對(duì)軟件復(fù)用技術(shù)與軟件構(gòu)件化開(kāi)發(fā)方法的本地化,使其融入激光慣導(dǎo)嵌入式軟件的科研生產(chǎn)實(shí)踐,以期實(shí)現(xiàn)型號(hào)軟件研制模式從“研發(fā)”向“生產(chǎn)”的轉(zhuǎn)化,確保高效地產(chǎn)出高水品、高質(zhì)量的軟件產(chǎn)品,滿足型號(hào)慣組研制的需要,滿足我公司長(zhǎng)遠(yuǎn)發(fā)展的需要。
[1]鄧樂(lè).型號(hào)產(chǎn)品“三化”工作探討[J].科技視界,2014(5).
[2]麥綠波.標(biāo)準(zhǔn)化形式的理論譜系創(chuàng)建[J].中國(guó)標(biāo)準(zhǔn)化,2011(9).
[3]江天,李云剛.對(duì)海軍裝備“三化”工作未來(lái)發(fā)展的思考[J].論證與研究,2015,31(2).
[4]孟翠玲.產(chǎn)品研制中開(kāi)展“三化”工作的思路研究[C].航空標(biāo)準(zhǔn)化與質(zhì)量,2011(2).
[5]傅曉晴.產(chǎn)品型號(hào)標(biāo)準(zhǔn)化研究[D].天津:天津大學(xué)管理與經(jīng)濟(jì)學(xué)部,2012.
[6]Mcllroy D.Mass-produced Software Components.In:Buxton JMetc.Software Engineering Concept and Techniques.1968 NATO Confer ence of Software Engineering.New York∶Petrocelli/Charter,1969:88-98.
[7]Felix Bachman,Len Bass.Technical Concepts Component-Based Software Engineering Technical Report CMU/SEI-2000-TR-008,2000-05.
龍捷(1983年—),男,高級(jí)工程師,主要從事激光慣組系統(tǒng)設(shè)計(jì)與軟件研制工作。