王 陽, 張振華, 孔祥營
(江蘇自動化研究所, 江蘇 連云港 222061)
復(fù)雜軟件系統(tǒng)[1]是指由多個(gè)具有獨(dú)立功能的子系統(tǒng)集成、耦合而成的大型軟件系統(tǒng),各軟件子系統(tǒng)間功能相對獨(dú)立且關(guān)系錯(cuò)綜復(fù)雜,整個(gè)系統(tǒng)的行為難以通過各子軟件系統(tǒng)特征的簡單疊加加以刻畫,能夠完成復(fù)雜、多任務(wù)關(guān)聯(lián)的大型任務(wù)。復(fù)雜軟件系統(tǒng)是一個(gè)多任務(wù)系統(tǒng)相互聯(lián)結(jié)交互的復(fù)雜系統(tǒng),這些基礎(chǔ)軟件系統(tǒng)的運(yùn)行狀態(tài)直接影響到整個(gè)系統(tǒng)的性能與任務(wù)的運(yùn)行安全[2]。
復(fù)雜軟件系統(tǒng)包含眾多子系統(tǒng),每個(gè)子系統(tǒng)又包含諸多的功能模塊,子系統(tǒng)間含有繁雜的任務(wù)構(gòu)件等,這些系統(tǒng)不可能由一個(gè)開發(fā)團(tuán)隊(duì)完成,往往需要多家單位、科研院所協(xié)作才能夠完成。對于已經(jīng)投入使用的復(fù)雜軟件系統(tǒng),由于新的需求、操作使用、運(yùn)行維護(hù)等目的,需要在原有的系統(tǒng)上進(jìn)行修改和擴(kuò)充是很困難的,會遇到設(shè)計(jì)風(fēng)格不一致、編程語言版本的差異、接口定義的不規(guī)范、開發(fā)文檔的丟失不完整和難于理解等諸多問題。由于復(fù)雜軟件系統(tǒng)運(yùn)行環(huán)境多種多樣,特別是在惡劣、極端環(huán)境中,極易影響軟件的正常運(yùn)行,傳統(tǒng)基于人工調(diào)試的軟件維護(hù)模式,難以應(yīng)對錯(cuò)綜復(fù)雜的軟件運(yùn)行環(huán)境。因此軟件系統(tǒng)在所處環(huán)境變化時(shí),具有良好的適應(yīng)能力,變得尤為重要。這時(shí)候,為了延長舊系統(tǒng)的生命周期,降低系統(tǒng)維護(hù)成本,就可以采用以原有系統(tǒng)進(jìn)行重構(gòu)的方法對軟件進(jìn)行重構(gòu),使其在改善程序結(jié)構(gòu)的基礎(chǔ)上適應(yīng)需求的變化。但是,復(fù)雜軟件系統(tǒng)規(guī)模龐大,即使軟件重構(gòu)也需要花費(fèi)大量的時(shí)間和人力投入,然而在一些特殊領(lǐng)域例如艦載復(fù)雜系統(tǒng)中,作戰(zhàn)需求與戰(zhàn)場環(huán)境瞬息萬變,這就需要自重構(gòu)來實(shí)現(xiàn)快速自動化的重構(gòu)過程。
軟件自重構(gòu)是在軟件重構(gòu)的基礎(chǔ)上,引入了控制論中軟件自適應(yīng)概念。軟件自適應(yīng)包含環(huán)境變化感知、策略決策執(zhí)行與軟件動態(tài)調(diào)整,其中以環(huán)境變化感知為基礎(chǔ),以策略決策執(zhí)行為中樞,以軟件動態(tài)調(diào)整為實(shí)現(xiàn)。通過引入自適應(yīng)功能,軟件自重構(gòu)能夠?qū)崟r(shí)感知軟件內(nèi)部與外部運(yùn)行環(huán)境的變化,通過自適應(yīng)的推理決策,預(yù)測下一時(shí)刻環(huán)境設(shè)備的運(yùn)行狀態(tài),依照合理的策略及時(shí)調(diào)整軟件的重構(gòu)遷移方案,從而實(shí)現(xiàn)快速自動化的軟件重構(gòu)過程。
目前國內(nèi)外針對軟件重構(gòu)和自適應(yīng)方面的研究很多[3],但把二者結(jié)合形成能夠讓軟件依據(jù)環(huán)境變化而改變的自重構(gòu)方法,鮮有文獻(xiàn)可查閱與借鑒,將自重構(gòu)概念應(yīng)用于復(fù)雜軟件系統(tǒng)層次更是難以查找。本文主要將軟件重構(gòu)與軟件自適應(yīng)相結(jié)合,形成軟件自重構(gòu)概念并且應(yīng)用于復(fù)雜軟件系統(tǒng)中,以艦載環(huán)境為具體事例闡述了復(fù)雜軟件系統(tǒng)自重構(gòu)架構(gòu)與邏輯結(jié)構(gòu),結(jié)合使用虛擬機(jī)遷移技術(shù)和容器遷移技術(shù),實(shí)現(xiàn)基于關(guān)鍵任務(wù)的復(fù)雜軟件系統(tǒng)自重構(gòu)概念模型。該模型能夠依據(jù)運(yùn)行環(huán)境的改變快速實(shí)現(xiàn)應(yīng)用程序的遷移與重構(gòu),從而保證關(guān)鍵任務(wù)的中斷時(shí)間最小化,以及對整個(gè)復(fù)雜軟件系統(tǒng)實(shí)時(shí)性影響的最小化。
從概念上講重構(gòu)的目標(biāo)是對軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的進(jìn)行重組與優(yōu)化,使系統(tǒng)保持原有全部功能完整性的同時(shí),并具有易于重用和擴(kuò)展的特性。重構(gòu)的實(shí)質(zhì)是在保持可觀察行為不變的前提下,基于可擴(kuò)展性和可重用性對軟件進(jìn)行的調(diào)整??捎^測行為不變是指程序原有的功能、對外接口不變,但是對內(nèi)部結(jié)構(gòu)的調(diào)整往往會引起程序內(nèi)部耦合程度、響應(yīng)處理時(shí)間、數(shù)據(jù)吞吐量的改變,因此還需要對重構(gòu)后的程序做評估以判斷使用的重構(gòu)方法是否得當(dāng)。對軟件進(jìn)行調(diào)整的基礎(chǔ)是分析,因而,軟件重構(gòu)的本質(zhì)是分析。這就使得軟件重構(gòu)離不開人工的參與。一個(gè)典型的軟件自動化重構(gòu)的流程圖如圖1所示。
圖1 軟件自動化重構(gòu)流程
軟件自動化重構(gòu)需要先將源代碼或者字節(jié)碼作為輸入,先進(jìn)行預(yù)處理決定該目標(biāo)軟件是否適合代碼結(jié)構(gòu)的轉(zhuǎn)換,如果預(yù)處理的結(jié)果滿足要求,則開始進(jìn)行重構(gòu)。為了盡量減少人工的干預(yù)以及確保代碼轉(zhuǎn)換的正確性,軟件分析環(huán)節(jié)至關(guān)重要。軟件分析通常先將源代碼轉(zhuǎn)換為中間表示,根據(jù)重構(gòu)需求,應(yīng)用不同的軟件分析方法,典型的分析方法包括:visitor分析、數(shù)據(jù)流分析、控制流分析、指向分析和side-effect分析。使用軟件分析方法,基于中間表示構(gòu)建抽象二叉樹,遍歷抽象二叉樹查找能夠轉(zhuǎn)換的部分進(jìn)行重構(gòu)操作,并存儲change對象作為備份。接著對重構(gòu)后的程序進(jìn)行完整性驗(yàn)證來確保軟件原有功能性的完整,同時(shí)需要評估重構(gòu)操作對程序的影響來判斷該次重構(gòu)操作是否正確。
上述軟件自動化重構(gòu)過程,在理想條件下是不需要人工干預(yù)的。但是在現(xiàn)實(shí)情況中,理想條件的實(shí)現(xiàn)太過苛刻。因此學(xué)術(shù)界針對軟件重構(gòu)基于分析的本質(zhì),以及重構(gòu)的原則和目標(biāo),通過引入控制論中的自適應(yīng)決策和執(zhí)行機(jī)制,實(shí)現(xiàn)軟件的自重構(gòu)。在軟件自適應(yīng)中環(huán)境變化感知是基礎(chǔ),策略決策執(zhí)行是中樞,軟件動態(tài)調(diào)整是實(shí)現(xiàn)手段。自重構(gòu)就是在重構(gòu)的基礎(chǔ)上,引入了自適應(yīng)功能,能夠?qū)崟r(shí)感知軟件運(yùn)行環(huán)境的變化,預(yù)測下一時(shí)刻環(huán)境設(shè)備的運(yùn)行狀態(tài),及時(shí)調(diào)整軟件的重構(gòu)遷移方案。
軟件自重構(gòu)以自適應(yīng)為基礎(chǔ),因此需要在原有設(shè)備基礎(chǔ)上,增加一系列傳感器構(gòu)成傳感網(wǎng)絡(luò),構(gòu)建自適應(yīng)運(yùn)行環(huán)境。本文以實(shí)際的艦載復(fù)雜軟件系統(tǒng)為例,闡述復(fù)雜軟件系統(tǒng)自重構(gòu)需要的物理環(huán)境與邏輯構(gòu)成?,F(xiàn)代的艦船信息系統(tǒng)普遍采用基于公共計(jì)算服務(wù)的體系結(jié)構(gòu)。在公共計(jì)算服務(wù)體系結(jié)構(gòu)下,艦船信息系統(tǒng)由公共計(jì)算服務(wù)環(huán)境、前端設(shè)備、應(yīng)用軟件等組成。
物理上,公共計(jì)算服務(wù)環(huán)境由計(jì)算中心、控制中心和存儲中心組成,是支撐艦載復(fù)雜軟件系統(tǒng)運(yùn)行的軟硬件平臺,包含基礎(chǔ)的計(jì)算、存儲、控制、顯示與傳輸硬件與運(yùn)行在硬件之上的基礎(chǔ)軟件。為了有效地收集環(huán)境信息,構(gòu)建軟件自適應(yīng)層,需要在原有的公共計(jì)算環(huán)境基礎(chǔ)上,增加傳感器、傳感器網(wǎng)絡(luò),構(gòu)成環(huán)境信息采集設(shè)備,這樣公共計(jì)算環(huán)境與環(huán)境信息采集設(shè)備共同組成艦載自適應(yīng)運(yùn)行環(huán)境。如圖2所示。
圖2 自適應(yīng)運(yùn)行環(huán)境
邏輯上可將基于公共計(jì)算服務(wù)的體系結(jié)構(gòu)劃分為四個(gè)層次基礎(chǔ)硬件層、基礎(chǔ)軟件層、功能應(yīng)用軟件層、前端設(shè)備層。自適應(yīng)可重構(gòu)的艦載復(fù)雜軟件系統(tǒng)層次是在公共計(jì)算服務(wù)體系結(jié)構(gòu)的基礎(chǔ)上,增加一個(gè)邏輯的自適應(yīng)控制層,即在基礎(chǔ)硬件層外再增加環(huán)境信息采集設(shè)備,在基礎(chǔ)軟件層中增加自適應(yīng)中間件,在功能應(yīng)用軟件層增加自適應(yīng)運(yùn)行平臺軟件。這三者相互配合完成對環(huán)境變化感知、自適應(yīng)決策以及對功能應(yīng)用軟件系統(tǒng)的重構(gòu)。支持自適應(yīng)可重構(gòu)的艦載復(fù)雜軟件系統(tǒng)層次結(jié)構(gòu)如圖3所示。
圖3 層次結(jié)構(gòu)圖
環(huán)境信息采集設(shè)備包括艦外環(huán)境信息采集設(shè)備、艙室環(huán)境信息采集設(shè)備、硬件環(huán)境信息采集設(shè)備、軟件環(huán)境信息采集設(shè)備、以及任務(wù)環(huán)境信息采集設(shè)備等,用于實(shí)現(xiàn)對環(huán)境信息的實(shí)時(shí)采集。自適應(yīng)中間件是自適應(yīng)行為具體執(zhí)行者之一,與功能應(yīng)用軟件直接鏈接在一起運(yùn)行,一方面實(shí)現(xiàn)對功能應(yīng)用軟件運(yùn)行狀態(tài)信息的透明采集,另一方面接收自適應(yīng)運(yùn)行平臺軟件發(fā)出的自適應(yīng)中間件級操控指令,實(shí)現(xiàn)對功能應(yīng)用軟件行為的調(diào)控。
自適應(yīng)運(yùn)行平臺軟件是艦載復(fù)雜軟件系統(tǒng)實(shí)現(xiàn)自適應(yīng)行為的控制層功能實(shí)體,用于承載和實(shí)現(xiàn)自適應(yīng)模型中的感知-決策-執(zhí)行等自適應(yīng)行為,其一方面接收環(huán)境信息采集設(shè)備發(fā)出的各類環(huán)境信息,另一方面,針對環(huán)境信息進(jìn)行評估并做出重構(gòu)方案決策,并依據(jù)重構(gòu)方案對公共計(jì)算服務(wù)環(huán)境及其他相關(guān)軟硬件進(jìn)行操控,實(shí)現(xiàn)軟件重構(gòu)。
復(fù)雜軟件系統(tǒng)自重構(gòu)概念模型如圖所示,分為三層結(jié)構(gòu),如圖4所示。
圖4 復(fù)雜軟件系統(tǒng)自重構(gòu)概念模型
第一層,功能軟件層面
軟件的重構(gòu),可以依據(jù)其完成的任務(wù)劃分為各個(gè)構(gòu)件,可以依據(jù)其完成的功能劃分為各個(gè)模塊,也可以按照具體的代碼劃分到各個(gè)函數(shù)。因此在重構(gòu)粒度上,可以分為構(gòu)件[4-5]、模塊、函數(shù)級粒度的軟件重構(gòu),如圖5所示。
圖5 軟件重構(gòu)粒度
第二層,軟件系統(tǒng)層面
現(xiàn)在大型的軟件系統(tǒng)多由不同軟件集成而成,軟件之間的相互關(guān)聯(lián)能夠?qū)崿F(xiàn)多種功能和服務(wù),一個(gè)任務(wù)往往需要多個(gè)軟件協(xié)作才能夠完成。任務(wù)系統(tǒng)自重構(gòu)在軟件重構(gòu)的基礎(chǔ)上,加入了自適應(yīng)中的決策與執(zhí)行階段。通過對外部環(huán)境和實(shí)時(shí)的需求,以任務(wù)為最基本單位,為執(zhí)行該任務(wù)自主快速地配備功能軟件。
第三層,復(fù)雜軟件系統(tǒng)層面
復(fù)雜軟件系統(tǒng)在任務(wù)系統(tǒng)自重構(gòu)的基礎(chǔ)上,對重構(gòu)出來的每一個(gè)功能相對獨(dú)立的構(gòu)件,進(jìn)行重新封裝的工作,本項(xiàng)目使用的方法是利用統(tǒng)一的編程接口和處理函數(shù),對構(gòu)件以捆綁適應(yīng)環(huán)境中間件的方法,對原有的構(gòu)件進(jìn)行再次封裝打包。這樣處理的優(yōu)勢在于該方式對內(nèi)屏蔽內(nèi)部的數(shù)據(jù)流程圖、邏輯結(jié)構(gòu),對外提供該封裝模塊能夠?qū)崿F(xiàn)的功能、接收的數(shù)據(jù)和操作。雖然新增一些自重構(gòu)的功能函數(shù)與接口會增加代碼量,但在后續(xù)自重構(gòu)的時(shí)候,從邏輯上可以根據(jù)不同的需求和策略,快速實(shí)現(xiàn)復(fù)雜軟件系統(tǒng)構(gòu)件級的自重構(gòu)過程。
在軟件部署運(yùn)行環(huán)節(jié),為了使部署運(yùn)行的復(fù)雜軟件系統(tǒng)具備可用的動態(tài)重構(gòu)能力,需要研究軟件系統(tǒng)重構(gòu)的性能問題,這就需要研究如何減少系統(tǒng)的重構(gòu)時(shí)間。虛擬機(jī)和容器的出現(xiàn),能夠?qū)崿F(xiàn)封裝硬件條件與依賴庫的打包,使得應(yīng)用程序運(yùn)行環(huán)境的整體遷移或部分遷移變得更簡單更容易。因此復(fù)雜軟件系統(tǒng)自重構(gòu)采用虛擬機(jī)遷移技術(shù)與容器遷移技術(shù),能夠?qū)崿F(xiàn)系統(tǒng)的快速重構(gòu)。
虛擬機(jī)技術(shù)是一種通過軟件模擬硬件,將計(jì)算機(jī)系統(tǒng)運(yùn)行在一個(gè)完全隔離環(huán)境中的技術(shù)[6]。進(jìn)入虛擬系統(tǒng)后,所有操作都是在這個(gè)全新的獨(dú)立的虛擬系統(tǒng)里面進(jìn)行,可以獨(dú)立安裝運(yùn)行軟件,保存數(shù)據(jù),擁有自己的完整資源,不會對底層的操作系統(tǒng)產(chǎn)生任何影響,而且能夠在現(xiàn)有系統(tǒng)與虛擬系統(tǒng)之間靈活切換。虛擬機(jī)監(jiān)視器(Virtual Machine Monitor,VMM)是虛擬機(jī)技術(shù)的核心,它是一層位于操作系統(tǒng)和計(jì)算機(jī)硬件之間的代碼,用來將硬件平臺分割成多個(gè)虛擬機(jī)。虛擬機(jī)監(jiān)視器運(yùn)行在特權(quán)模式,主要作用是隔離并且管理上層運(yùn)行的多個(gè)虛擬機(jī),仲裁它們對底層硬件的訪問,并為每個(gè)客戶操作系統(tǒng)虛擬一套獨(dú)立于實(shí)際硬件的虛擬硬件環(huán)境(包括處理器,內(nèi)存,I/O 設(shè)備)。虛擬機(jī)監(jiān)視器采用某種調(diào)度算法在各個(gè)虛擬機(jī)之間共享CPU,如采用時(shí)間片輪轉(zhuǎn)調(diào)度算法。
容器技術(shù)也是目前一種主流技術(shù),它通過生成現(xiàn)有操作系統(tǒng)的全新虛擬鏡像,具有真實(shí)系統(tǒng)完全一樣的功能,它和傳統(tǒng)的虛擬機(jī)的不同之處在于:容器技術(shù)不會降低電腦的性能,啟動容器不需要像啟動真實(shí)操作系統(tǒng)那樣耗費(fèi)時(shí)間,運(yùn)行程序更加方便快捷;容器技術(shù)只能模擬和現(xiàn)有操作系統(tǒng)相同的環(huán)境,而虛擬機(jī)則可以模擬出其他種類的操作系統(tǒng);和容器技術(shù)相比,虛擬機(jī)需要模擬底層的硬件指令,所以在應(yīng)用程序運(yùn)行速度上比容器慢得多。
通過分析重構(gòu)時(shí)源平臺與目標(biāo)平臺的屬性,復(fù)雜軟件自重構(gòu)模型將兩種不同虛擬技術(shù)相結(jié)合的方式實(shí)現(xiàn)系統(tǒng)的遷移式重構(gòu),如圖6所示,即對于目標(biāo)平臺與宿主平臺一致系統(tǒng)的虛擬,采用基于容器的輕量化遷移技術(shù),以獲得更好的性能;對于目標(biāo)平臺與宿主平臺不一致的系統(tǒng),采用基于虛擬機(jī)的遷移技術(shù),通過虛擬目標(biāo)平臺軟件運(yùn)行所需要的所有硬件及對應(yīng)的操作系統(tǒng),仿真所需的軟硬件環(huán)境,從而保障軟件系統(tǒng)的平滑遷移重構(gòu)。
圖6 虛擬機(jī)遷移與容器遷移
對于關(guān)鍵任務(wù),面向異構(gòu)平臺采用備份啟動的方式實(shí)現(xiàn)系統(tǒng)的快速重構(gòu),從而減小重構(gòu)的時(shí)間開銷,保證關(guān)鍵任務(wù)的快速恢復(fù)?;陉P(guān)鍵任務(wù)的復(fù)雜軟件系統(tǒng)自重構(gòu)概念模型結(jié)合復(fù)雜軟件系統(tǒng)自適應(yīng)技術(shù)與自重構(gòu)技術(shù)以及基于虛擬機(jī)和容器的軟件系統(tǒng)快速重構(gòu)技術(shù),能夠?qū)崿F(xiàn)根據(jù)復(fù)雜軟件系統(tǒng)自身運(yùn)行環(huán)境變化,實(shí)時(shí)調(diào)整軟件自重構(gòu)方案,保證關(guān)鍵任務(wù)平穩(wěn)運(yùn)行不因環(huán)境改變而中斷。
當(dāng)外界環(huán)境發(fā)生變化時(shí),系統(tǒng)的自適應(yīng)感知機(jī)制察覺到環(huán)境的變化可能在下一時(shí)刻對應(yīng)用軟件的運(yùn)行產(chǎn)生影響,并且決定是否采取重構(gòu)策略。由自適應(yīng)決策階段生成系統(tǒng)重構(gòu)方案,對具體的應(yīng)用程序進(jìn)行按需重構(gòu)。對于關(guān)鍵任務(wù),為了保證其運(yùn)行狀態(tài),根據(jù)目標(biāo)平臺底層操作系統(tǒng)的不同選擇采用虛擬機(jī)遷移或容器遷移。
某一時(shí)刻,如圖7所示,宿主機(jī)運(yùn)行有應(yīng)用程序A、B、C,關(guān)鍵任務(wù)P是由應(yīng)用程序A、B、C相互協(xié)作而成。某一時(shí)刻環(huán)境信息采集設(shè)備得知下一時(shí)刻應(yīng)用程序A可能無法正常運(yùn)行,系統(tǒng)自適應(yīng)決策生成應(yīng)用程序A的構(gòu)件級重構(gòu)方案。因?yàn)樘摂M操作系統(tǒng)不同采用虛擬機(jī)遷移在目標(biāo)平臺虛擬機(jī)2上運(yùn)行著一個(gè)備份,包含A′、B′、C′。為保證關(guān)鍵任務(wù)P的不中斷,重構(gòu)方案將應(yīng)用程序A、B、C以構(gòu)件級粒度重構(gòu),關(guān)鍵任務(wù)P包含構(gòu)件:A2、B1、B3、C3、D3。同時(shí)在目標(biāo)平臺將應(yīng)用程序A′重構(gòu),使用A2′替換構(gòu)件A2,這樣重新組成的關(guān)鍵任務(wù)包含:A2′、B1、B3、C3、D3。這樣下一時(shí)刻由宿主機(jī)上的應(yīng)用程序B、C以及目標(biāo)平臺上的應(yīng)用程序A′共同支撐起關(guān)鍵任務(wù)P。
基于冗余備份的軟件啟動方法,能夠保證當(dāng)某一功能軟件發(fā)生故障時(shí),根據(jù)目標(biāo)平臺操作系統(tǒng)的不同,選擇虛擬機(jī)遷移或容器遷移實(shí)現(xiàn)軟件的備份啟動,在目標(biāo)平臺完成軟件重構(gòu),替換關(guān)鍵任務(wù)需要的構(gòu)件,這使得關(guān)鍵任務(wù)中斷的時(shí)間,從原有的宕機(jī)拷貝——再運(yùn)行,變?yōu)闃?gòu)件切換——同步,前者耗費(fèi)時(shí)間多,后者的時(shí)間能夠控制在系統(tǒng)允許的中斷范圍內(nèi),實(shí)現(xiàn)關(guān)鍵任務(wù)運(yùn)行的“不中斷”。
圖7 基于關(guān)鍵任務(wù)的自重構(gòu)模型
本文以軟件重構(gòu)與自適應(yīng)為基礎(chǔ),將軟件自重構(gòu)概念引入到復(fù)雜軟件系統(tǒng)領(lǐng)域,構(gòu)建復(fù)雜軟件系統(tǒng)自重構(gòu)概念模型,使得復(fù)雜軟件系統(tǒng)在應(yīng)對周圍環(huán)境變化時(shí)能夠生成合理的重構(gòu)方案并且執(zhí)行,從而保證整個(gè)系統(tǒng)不因內(nèi)外部環(huán)境變化而運(yùn)行中斷。同時(shí)結(jié)合虛擬機(jī)遷移技術(shù)與容器遷移技術(shù)實(shí)現(xiàn)基于關(guān)鍵任務(wù)“不中斷”的軟件快速重構(gòu)。復(fù)雜軟件系統(tǒng)自重構(gòu)概念模型能夠給后續(xù)自適應(yīng)可重構(gòu)軟件開發(fā)設(shè)計(jì)提供指導(dǎo),亦可通過中間件的支撐對已有軟件進(jìn)行重構(gòu),實(shí)現(xiàn)復(fù)雜軟件系統(tǒng)內(nèi)部結(jié)構(gòu)深度優(yōu)化和外部構(gòu)件的重用與擴(kuò)展。
參考文獻(xiàn):
[1]王懷民, 吳文峻, 毛新軍, 等. 復(fù)雜軟件系統(tǒng)的成長性構(gòu)造與適應(yīng)性演化[J]. 中國科學(xué): 信息科學(xué), 2014, 44: 743-761.
[2]丁博,王懷民,史殿習(xí).構(gòu)造具備自適應(yīng)能力的軟件[J].軟件學(xué)報(bào),2013,24(9):1981-2000.
[3]雷達(dá)成. 基于分解的重構(gòu)構(gòu)驗(yàn)證的研究[D].上海交通大學(xué), 2012.
[4]竇蕾.面向構(gòu)件的復(fù)雜軟件系統(tǒng)中動態(tài)配置技術(shù)的研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2005.
[5]張文婷, 池志強(qiáng), 趙恒. 艦載指控系統(tǒng)構(gòu)件模型研究[C]. 艦船電子學(xué)會學(xué)術(shù)年會論文集, 2006.
[6]孫建朋,邢建平,韓言妮,等.自適應(yīng)的多虛擬機(jī)遷移調(diào)度算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2017,38(5):1125-1131.