作者:COLIN DOYLE,STEPHEN DENMAN
軍事系統(tǒng)和產(chǎn)品中的組件過時是一個眾所周知的挑戰(zhàn),但它已經(jīng)發(fā)展出一個相對較新的轉(zhuǎn)折點:嵌入式軟件數(shù)量的快速增長。雖然軟件在某種程度上已經(jīng)嵌入軍事電子元件中數(shù)十年,但在過去十年中,這一趨勢已經(jīng)加速到白熱化的程度;我們的系統(tǒng)和產(chǎn)品中越來越多的關(guān)鍵功能依賴于軟件。在大多數(shù)其他復(fù)雜的軍事系統(tǒng)和產(chǎn)品中都可以找到類似形狀的曲線,包括所有其他飛機、海軍艦艇、地面車輛、C4ISR 系統(tǒng)和場外支持系統(tǒng)。
事實上,航空航天和國防工業(yè)的許多人會聲稱,軟件早已取代硬件成為創(chuàng)新的主要來源。軟件與硬件一樣,不能免受需要升級或更換這些組件的問題的影響。但是,與硬件不同,這些問題往往具有不同的性質(zhì),因此需要不同的處理。
硬件就像人 – 軟件就像酒
硬件和軟件組件之間最大的區(qū)別之一是硬件往往會隨著時間的推移和使用而降級,而軟件保持不變。給定相同的輸入,軟件每次都會生成相同的結(jié)果。另一方面,硬件在達到或超過其使用壽命時,由于磨損、腐蝕和/或疲勞開裂,最終會發(fā)生故障或停止按規(guī)格運行。
這并不是說軟件不包含缺陷;只是這些缺陷在軟件生產(chǎn)時就潛伏在軟件中,而不是隨著時間的推移而通過使用而引入。軟件不是在與硬件相同的意義上“制造”的。一旦開發(fā)出軟件組件,就可以以基本上零成本和自動復(fù)制過程引入的零缺陷進行復(fù)制。軟件組件的可靠性往往表現(xiàn)出“浴缸”形狀,其中最初的使用揭示了許多這些潛在缺陷,然后通過軟件更新來解決這些缺陷,然后是相對較長的低缺陷率,然后隨著操作環(huán)境的變化,作為軟件組件基礎(chǔ)的原始設(shè)計假設(shè)和約束失效,問題增加。像葡萄酒一樣,軟件組件往往會隨著時間的推移而改進,因為更多的潛在缺陷被發(fā)現(xiàn)和解決。
鑒于軟件沒有與硬件制造相關(guān)的容差問題,軟件也不會因使用而磨損,傳統(tǒng)的硬件報廢措施(如平均故障間隔時間 (MTBF))與軟件沒有太大相關(guān)性。因此,如果軟件隨著年齡的增長而變得更好,它如何加劇軍事組件過時的挑戰(zhàn)?要回答這個問題,我們需要了解是什么會導(dǎo)致軟件過時。
軟件過時的根本原因
軟件組件過時的主要原因有三個:
軟件必須運行的環(huán)境更改(兼容性)
潛在缺陷的暴露
軟件必須執(zhí)行的角色和功能的更改
軟件只是一系列編碼指令,用于控制其執(zhí)行的硬件平臺的行為。軟件組件依賴于底層電子組件來提供正確的接口并按指定運行。因此,軟件過時的一個主要因素是由于電子元件過時而導(dǎo)致底層硬件平臺的變化。電子元件過時是一個眾所周知的問題,因為基礎(chǔ)技術(shù)變化迅速,而且與商業(yè)應(yīng)用相比,軍事采購量相對較低。每當軟件與之交互或運行時的底層電子元件發(fā)生變化時,還必須重新評估軟件,并可能升級或更換軟件。
一個典型的例子是 5 年的阿麗亞娜 501 航班 1996,它在發(fā)射 40 秒后以火箭被摧毀而告終。故障的根本原因是重復(fù)使用阿麗亞娜4號的慣性參考系統(tǒng),而沒有在阿麗亞娜5號設(shè)計的背景下對該子系統(tǒng)背后的約束和假設(shè)進行適當?shù)脑u估。慣性參考系統(tǒng)被重復(fù)使用,因為它被認為是經(jīng)過驗證和驗證的設(shè)計。然而,該系統(tǒng)是為火箭設(shè)計的,其發(fā)射剖面的功率更小,水平加速度明顯低于阿麗亞娜5。將浮點值轉(zhuǎn)換為 16 位整數(shù)觸發(fā)溢出錯誤,導(dǎo)致飛行控制系統(tǒng)崩潰。
顯然,當在軟件組件中發(fā)現(xiàn)缺陷時,必須解決它們。根據(jù)軟件組件及其相關(guān)硬件環(huán)境的性質(zhì),在現(xiàn)場執(zhí)行此類更新可能與通過網(wǎng)絡(luò)連接下載更新一樣簡單,或者與更換整個電子組件一樣昂貴。軟件組件的較大成本是分析缺陷、更新設(shè)計和實現(xiàn)以及在發(fā)布組件之前重新驗證組件所需的開發(fā)工作。此成本通常較大,因為更新的機會通常會導(dǎo)致第三個原因:軟件組件的角色和功能更改。
如前所述,軟件越來越成為產(chǎn)品創(chuàng)新的源泉。它是一種關(guān)鍵的系統(tǒng)集成技術(shù),許多系統(tǒng)的壽命通過軟件升級得到延長。在當前的軍事采購環(huán)境中,“及時”的備件采購方法變得越來越普遍,任何軟件更新機會通常都涉及增強功能,以延長系統(tǒng)的使用壽命或擴展功能,以及解決缺陷。隨著硬件平臺變得越來越強大,系統(tǒng)工程師將越來越多的功能分配給軟件,以減輕重量、降低成本并提高靈活性。正是這些特性導(dǎo)致了軍事系統(tǒng)中軟件的數(shù)量和復(fù)雜性的急劇增長。
軟件工程:不僅僅是即插即用
對于電子和軟件以外的組件,處理過時主要是為組件尋找替代制造來源的問題。如前所述,對于軟件,制造不是問題;組件過時需要重新設(shè)計軟件,無論是解決缺陷還是擴展和增強其功能。
如前所述,導(dǎo)致軟件過時的因素之一是軟件必須運行的環(huán)境的變化——包括平臺和與之交互的信號,以及軟件啟用的系統(tǒng)的目標和角色。在重新設(shè)計軟件組件時,需要考慮這種情況,而且往往沒有得到適當?shù)慕鉀Q。
軟件復(fù)雜性的快速增長、在系統(tǒng)工程環(huán)境中更新軟件組件的需求以及軟件的無形性質(zhì)都帶來了更新和維護軟件組件的挑戰(zhàn)。支持開發(fā)更復(fù)雜軟件的相同高級語言抽象也增加了隔離缺陷和確定提議更改的影響的挑戰(zhàn)。
傳統(tǒng)上,用于軟件組件維護的技術(shù)數(shù)據(jù)包側(cè)重于源代碼,將其作為與最終軟件組件最密切相關(guān)的工件,而不太強調(diào)其余的軟件工件,并且工件之間的凝聚力很小。如果需求、設(shè)計、實現(xiàn)和驗證工件之間沒有完全的可追溯性,就很容易錯過需要考慮的細微依賴關(guān)系。軟件組件源代碼的戰(zhàn)術(shù)“修補”可能導(dǎo)致軟件的單一、難以維護。需要對軟件組件采取更具凝聚力、更全面的方法來正確管理其復(fù)雜性。這種方法稱為應(yīng)用程序生命周期管理 (ALM)。ALM 管理定義、設(shè)計、實現(xiàn)和驗證軟件組件(以及這些工件和活動之間的關(guān)系)所需的所有工件和活動。
征服史詩般的挑戰(zhàn)
雖然嵌入式軟件的增長是一個挑戰(zhàn),但它也是一個巨大的機會,特別是在當前的軍事采購環(huán)境中,需要成本控制和戰(zhàn)略優(yōu)勢。軟件開發(fā)原則、實踐和工具正在成熟并不斷改進。以下建議可以大大有助于應(yīng)對組件過時帶來的軟件挑戰(zhàn):
采用系統(tǒng)工程方法進行電子和軟件組件開發(fā),對模塊化組件進行深思熟慮的規(guī)劃和架構(gòu),以支持跨不同系統(tǒng)的重用,并在組件之間定義明確的接口來管理復(fù)雜性。確保在使用這些組件的系統(tǒng)使用壽命內(nèi)捕獲和管理驅(qū)動組件定義的需求和關(guān)鍵設(shè)計決策。
實施全面的 ALM 方法來開發(fā)軟件組件,對所有工件和活動具有完全可追溯性,并具有管理開發(fā)各個方面的一致流程。投資工具以自動化和實施 ALM 實踐;尋找提供單一流程引擎來管理所有工件的系統(tǒng),這些系統(tǒng)與系統(tǒng)工程和硬件工程(如 PLM 系統(tǒng))有著密切的聯(lián)系。管理整個工具鏈,包括構(gòu)建和發(fā)布管理系統(tǒng),以確保在維護或更新軟件組件時獲得可預(yù)測的結(jié)果。
使用迭代和增量開發(fā)實踐來縮短反饋周期,并提高組件發(fā)布的可預(yù)測性和質(zhì)量。在組件更新中涉及所有學(xué)科(硬件和軟件),以確保理解并完全解決組件之間的任何依賴關(guān)系。實施主動變體管理,以最大限度地重用組件并控制變體來源,例如更改角色或技術(shù)。
有了這些建議,軍事系統(tǒng)設(shè)計人員可以使用軟件來區(qū)分變體而不是硬件,從而可能降低成本,減輕重量和功耗。制造商發(fā)現(xiàn),基于通用硬件平臺設(shè)計產(chǎn)品,該平臺能夠支持所有產(chǎn)品線變體功能,同時使用軟件創(chuàng)建單個變體,具有許多優(yōu)勢。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5091文章
19176瀏覽量
307192 -
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66894
發(fā)布評論請先 登錄
相關(guān)推薦
評論