隨著國防工業(yè)軟件開發(fā)人員從 Ada 過渡到 Java 并升級其硬件,他們必須以保護現(xiàn)有應(yīng)用軟件的方式進行。支持實時和安全關(guān)鍵型 Java 的混合語言開發(fā)工具以及 Ada 和 C 等中堅工具提供了無縫升級路徑,可在保留遺留代碼的同時提高工作效率。
隨著國防工業(yè)軟件開發(fā)人員從 Ada 過渡到 Java 并升級其硬件,他們必須以保護現(xiàn)有應(yīng)用軟件的方式進行。支持實時和安全關(guān)鍵型 Java 的混合語言開發(fā)工具以及 Ada 和 C 等中堅工具提供了無縫升級路徑,可在保留遺留代碼的同時提高工作效率。
國防工業(yè)越來越需要解決軍事硬件過時和缺乏對老化軟件程序的支持。國防部和國防承包商越來越多地尋求將當前應(yīng)用程序遷移到新硬件上,并使用現(xiàn)代編程語言來增強系統(tǒng)功能,同時盡可能多地保留原始軟件投資。Java和多語言開發(fā)工具的增強版本支持傳統(tǒng)和現(xiàn)代軟件的合并,同時降低了系統(tǒng)增強的風(fēng)險和成本。
Ada相對于C/C++、Java的優(yōu)勢
軍事系統(tǒng)的壽命通常比其創(chuàng)建中使用的技術(shù)長幾十年,這使得增強甚至
保持系統(tǒng)的能力變得極其困難。對于用Ada語言編寫的軟件來說,這個問題尤其嚴重 -曾經(jīng)是軍事系統(tǒng)設(shè)計的強制性要求。在工具可用性和經(jīng)驗豐富的程序員數(shù)量方面,對 Ada 開發(fā)的支持遠遠落后于 C、C++ 和 Java 等當代編程語言。因此,許多國防承包商尋求將此類系統(tǒng)遷移到現(xiàn)代語言基礎(chǔ),以簡化維護和未來的增強。然而,與此同時,他們希望通過盡可能重用遺留軟件并利用基于標準的集成開發(fā)環(huán)境 (IDE) 而不是專有工具集來最大限度地降低遷移成本。
但是,當代語言并不能充分反映Ada中內(nèi)置的功能和屬性,而這些功能和屬性對于軍事應(yīng)用至關(guān)重要。
Ada專為嵌入式系統(tǒng)而設(shè)計,包括實時操作以及直接訪問和操作系統(tǒng)底層硬件的能力。Ada 也是一種“安全”的語言,其架構(gòu)和工具集可以防止編程錯誤或在開發(fā)過程的早期檢測到它們。
當代語言在這些屬性中的一個或多個方面存在不足。傳統(tǒng)的Java缺乏確定性和直接操作底層硬件的能力。C和C++都缺乏編程保障,使得這些語言本質(zhì)上不安全,并使軍事系統(tǒng)開發(fā)復(fù)雜化。內(nèi)存泄漏或?qū)Σ淮嬖趯ο蟮囊玫儒e誤可能導(dǎo)致現(xiàn)場致命的系統(tǒng)行為,但在 C 和 C++ 程序的開發(fā)過程中很容易逃脫檢測。大型航空航天和國防開發(fā)人員發(fā)現(xiàn),他們需要在 C 語言和 C++ 開發(fā)中添加 250 多條設(shè)計規(guī)則,以確??煽康能浖O(shè)計。
Java獲得真正的?和安全
然而,隨著專用Java配置文件的開發(fā),情況正在改善。實時Java(RTSJ)已經(jīng)問世好幾年了,它解決了實時嵌入式系統(tǒng)的確定性需求,硬件級接口可以通過C來處理。此外,Java本身還包括支持關(guān)鍵任務(wù)系統(tǒng)軟件開發(fā)的保護措施和語言功能(參見表1)。這些屬性使RTSJ與Ada相似,它能夠滿足軍事系統(tǒng)需求,同時利用Java工具和程序員的廣泛可用性。
圖1

Java社區(qū)中也有一種新的動力,將語言的適用性擴展到安全關(guān)鍵系統(tǒng)。JSR-302專家組正在定義一個“安全關(guān)鍵”的Java配置文件(SCJava)。RTSJ 的這個子集消除了許多類庫以及垃圾回收和動態(tài)
類加載等功能,這些功能可能導(dǎo)致不可預(yù)測且可能不安全的代碼執(zhí)行;這也允許隨時創(chuàng)建以最高可靠性執(zhí)行的程序。JSR-302專家組的目標是至少滿足DO-178B標準A級的要求,用于認證航空電子系統(tǒng)軟件。安全關(guān)鍵型Java規(guī)范的草案版本預(yù)計將于2008年年中發(fā)布以供審查,SCJ將在年底前首次實現(xiàn)。
遺留遷移不可避免
遺留軍事系統(tǒng)問題的完整解決辦法必須包括的不僅僅是適當?shù)恼Z言;必須包括一種適當?shù)恼Z言。但是,它還必須支持重用仍然有效的代碼。用新語言重寫應(yīng)用程序可能會有風(fēng)險,因為它總是會引入更改。例如
,Ada使用對象,而C不使用,C++使用對象,但方式不同。適應(yīng)這種差異很容易將行為變化引入系統(tǒng)操作。重寫代碼也會觸發(fā)重新測試代碼的需求,并且測試任務(wù)和安全關(guān)鍵型系統(tǒng)可能既費力又昂貴。
因此,完整遷移解決方案的一個關(guān)鍵要素是能夠?qū)?Ada、C 和 C++ 等
遺留語言以及 Java 混合到緊密耦合解決方案中的開發(fā)環(huán)境。這些工具,如DDC-I的基于Eclipse的OpenArbor框架,允許任何語言的每個程序元素能夠調(diào)用其他元素;它們還允許開發(fā)人員從同一會話同時編譯和調(diào)試它們。再加上用于未來開發(fā)的強大的語言(如SC Java),混合語言開發(fā)和調(diào)試工具使開發(fā)人員能夠重用遺留軟件并將其合并到當代語言程序中,以合理的成本維護和增強軍事系統(tǒng)。
審核編輯:郭婷
-
JAVA
+關(guān)注
關(guān)注
20文章
2992瀏覽量
114754 -
C++
+關(guān)注
關(guān)注
22文章
2120瀏覽量
76446
發(fā)布評論請先 登錄
無人機智能巡檢系統(tǒng)在現(xiàn)代工業(yè)運維中的全面應(yīng)用
NVMe高速傳輸之擺脫XDMA設(shè)計25: NVMe 子系統(tǒng)模型設(shè)計

恩智浦+Rimac Technology基于S32E2的集中式汽車架構(gòu)解決方案 將20+ ECU整合到3個區(qū)域控制器

數(shù)據(jù)采集網(wǎng)關(guān)如何與現(xiàn)有工業(yè)系統(tǒng)整合?
從RF到HDMI:傳統(tǒng)接口的現(xiàn)代優(yōu)化

PoE交換機在安防監(jiān)控系統(tǒng)中的關(guān)鍵作用
EE-98:使用外部總線仲裁將兩個以上的ADSP-21065L組合到一個多處理集群中

SSM與Hibernate的整合使用
從RF到HDMI:傳統(tǒng)接口的現(xiàn)代優(yōu)化

從RF到HDMI:傳統(tǒng)接口的現(xiàn)代優(yōu)化
西門子創(chuàng)新搭載AI的電子系統(tǒng)設(shè)計軟件概述 Xpedition NG和HyperLynx NG軟件

多電量數(shù)字變送器在現(xiàn)代配電系統(tǒng)中的應(yīng)用

現(xiàn)代配電系統(tǒng)中電弧光保護裝置的應(yīng)用

評論