隨著國防工業(yè)軟件開發(fā)人員從 Ada 過渡到 Java 并升級其硬件,他們必須以保護現(xiàn)有應用軟件的方式進行。支持實時和安全關鍵型 Java 的混合語言開發(fā)工具以及 Ada 和 C 等中堅工具提供了無縫升級路徑,可在保留遺留代碼的同時提高工作效率。
隨著國防工業(yè)軟件開發(fā)人員從 Ada 過渡到 Java 并升級其硬件,他們必須以保護現(xiàn)有應用軟件的方式進行。支持實時和安全關鍵型 Java 的混合語言開發(fā)工具以及 Ada 和 C 等中堅工具提供了無縫升級路徑,可在保留遺留代碼的同時提高工作效率。
國防工業(yè)越來越需要解決軍事硬件過時和缺乏對老化軟件程序的支持。國防部和國防承包商越來越多地尋求將當前應用程序遷移到新硬件上,并使用現(xiàn)代編程語言來增強系統(tǒng)功能,同時盡可能多地保留原始軟件投資。Java和多語言開發(fā)工具的增強版本支持傳統(tǒng)和現(xiàn)代軟件的合并,同時降低了系統(tǒng)增強的風險和成本。
Ada相對于C/C++、Java的優(yōu)勢
軍事系統(tǒng)的壽命通常比其創(chuàng)建中使用的技術長幾十年,這使得增強甚至
保持系統(tǒng)的能力變得極其困難。對于用Ada語言編寫的軟件來說,這個問題尤其嚴重 -曾經是軍事系統(tǒng)設計的強制性要求。在工具可用性和經驗豐富的程序員數(shù)量方面,對 Ada 開發(fā)的支持遠遠落后于 C、C++ 和 Java 等當代編程語言。因此,許多國防承包商尋求將此類系統(tǒng)遷移到現(xiàn)代語言基礎,以簡化維護和未來的增強。然而,與此同時,他們希望通過盡可能重用遺留軟件并利用基于標準的集成開發(fā)環(huán)境 (IDE) 而不是專有工具集來最大限度地降低遷移成本。
但是,當代語言并不能充分反映Ada中內置的功能和屬性,而這些功能和屬性對于軍事應用至關重要。
Ada專為嵌入式系統(tǒng)而設計,包括實時操作以及直接訪問和操作系統(tǒng)底層硬件的能力。Ada 也是一種“安全”的語言,其架構和工具集可以防止編程錯誤或在開發(fā)過程的早期檢測到它們。
當代語言在這些屬性中的一個或多個方面存在不足。傳統(tǒng)的Java缺乏確定性和直接操作底層硬件的能力。C和C++都缺乏編程保障,使得這些語言本質上不安全,并使軍事系統(tǒng)開發(fā)復雜化。內存泄漏或對不存在對象的引用等錯誤可能導致現(xiàn)場致命的系統(tǒng)行為,但在 C 和 C++ 程序的開發(fā)過程中很容易逃脫檢測。大型航空航天和國防開發(fā)人員發(fā)現(xiàn),他們需要在 C 語言和 C++ 開發(fā)中添加 250 多條設計規(guī)則,以確保可靠的軟件設計。
Java獲得真正的?和安全
然而,隨著專用Java配置文件的開發(fā),情況正在改善。實時Java(RTSJ)已經問世好幾年了,它解決了實時嵌入式系統(tǒng)的確定性需求,硬件級接口可以通過C來處理。此外,Java本身還包括支持關鍵任務系統(tǒng)軟件開發(fā)的保護措施和語言功能(參見表1)。這些屬性使RTSJ與Ada相似,它能夠滿足軍事系統(tǒng)需求,同時利用Java工具和程序員的廣泛可用性。
圖1
![21](https://file.elecfans.com//web2/M00/78/0C/poYBAGNogqWAF2zoAAB2ia3hx3U799.jpg)
Java社區(qū)中也有一種新的動力,將語言的適用性擴展到安全關鍵系統(tǒng)。JSR-302專家組正在定義一個“安全關鍵”的Java配置文件(SCJava)。RTSJ 的這個子集消除了許多類庫以及垃圾回收和動態(tài)
類加載等功能,這些功能可能導致不可預測且可能不安全的代碼執(zhí)行;這也允許隨時創(chuàng)建以最高可靠性執(zhí)行的程序。JSR-302專家組的目標是至少滿足DO-178B標準A級的要求,用于認證航空電子系統(tǒng)軟件。安全關鍵型Java規(guī)范的草案版本預計將于2008年年中發(fā)布以供審查,SCJ將在年底前首次實現(xiàn)。
遺留遷移不可避免
遺留軍事系統(tǒng)問題的完整解決辦法必須包括的不僅僅是適當?shù)恼Z言;必須包括一種適當?shù)恼Z言。但是,它還必須支持重用仍然有效的代碼。用新語言重寫應用程序可能會有風險,因為它總是會引入更改。例如
,Ada使用對象,而C不使用,C++使用對象,但方式不同。適應這種差異很容易將行為變化引入系統(tǒng)操作。重寫代碼也會觸發(fā)重新測試代碼的需求,并且測試任務和安全關鍵型系統(tǒng)可能既費力又昂貴。
因此,完整遷移解決方案的一個關鍵要素是能夠將 Ada、C 和 C++ 等
遺留語言以及 Java 混合到緊密耦合解決方案中的開發(fā)環(huán)境。這些工具,如DDC-I的基于Eclipse的OpenArbor框架,允許任何語言的每個程序元素能夠調用其他元素;它們還允許開發(fā)人員從同一會話同時編譯和調試它們。再加上用于未來開發(fā)的強大的語言(如SC Java),混合語言開發(fā)和調試工具使開發(fā)人員能夠重用遺留軟件并將其合并到當代語言程序中,以合理的成本維護和增強軍事系統(tǒng)。
審核編輯:郭婷
-
JAVA
+關注
關注
19文章
2978瀏覽量
105267 -
C++
+關注
關注
22文章
2114瀏覽量
73922
發(fā)布評論請先 登錄
相關推薦
EE-98:使用外部總線仲裁將兩個以上的ADSP-21065L組合到一個多處理集群中
![EE-98:使用外部總線仲裁<b class='flag-5'>將</b>兩個以上的ADSP-21065L組<b class='flag-5'>合到</b>一個多處理集群<b class='flag-5'>中</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
SSM與Hibernate的整合使用
從RF到HDMI:傳統(tǒng)接口的現(xiàn)代優(yōu)化
![從RF到HDMI:<b class='flag-5'>傳統(tǒng)</b>接口的<b class='flag-5'>現(xiàn)代</b>優(yōu)化](https://file1.elecfans.com//web3/M00/00/EC/wKgZPGdO_b6ACjlwAACXJUROLLI829.png)
從RF到HDMI:傳統(tǒng)接口的現(xiàn)代優(yōu)化
西門子創(chuàng)新搭載AI的電子系統(tǒng)設計軟件概述 Xpedition NG和HyperLynx NG軟件
![西門子創(chuàng)新搭載AI的電子<b class='flag-5'>系統(tǒng)</b>設計<b class='flag-5'>軟件</b>概述 Xpedition NG和HyperLynx NG<b class='flag-5'>軟件</b>](https://file1.elecfans.com/web2/M00/0C/E2/wKgaomc9VeyAEwfuAAAU1jGkebw905.jpg)
多電量數(shù)字變送器在現(xiàn)代配電系統(tǒng)中的應用
![多電量數(shù)字變送器在<b class='flag-5'>現(xiàn)代</b>配電<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應用](https://file1.elecfans.com//web1/M00/F4/46/wKgZoWcojtmAS2oRAAI_Kv5OROY078.png)
現(xiàn)代配電系統(tǒng)中電弧光保護裝置的應用
![<b class='flag-5'>現(xiàn)代</b>配電<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>電弧光保護裝置的應用](https://file1.elecfans.com//web1/M00/F4/0E/wKgaoWcjQseAdeqNAAGYfhN5s3E852.png)
微軟GitHub與Anthropic和谷歌合作
展廳中控系統(tǒng)方案 多媒體設備集中控制系統(tǒng) 展廳iPad控制軟件
![展廳<b class='flag-5'>中</b>控<b class='flag-5'>系統(tǒng)</b>方案 多媒體設備集中控制<b class='flag-5'>系統(tǒng)</b> 展廳iPad控制<b class='flag-5'>軟件</b>](https://file1.elecfans.com//web1/M00/F2/DC/wKgZoWcM5aeADCmvAARB5sz3BC0859.jpg)
赫斯特與OpenAI達成內容整合協(xié)議
華納云:如何理解軟件定義網(wǎng)絡?和傳統(tǒng)網(wǎng)絡相比有哪些優(yōu)勢?
![華納云:如何理解<b class='flag-5'>軟件</b>定義網(wǎng)絡?和<b class='flag-5'>傳統(tǒng)</b>網(wǎng)絡相比有哪些優(yōu)勢?](https://file1.elecfans.com/web2/M00/08/1E/wKgZomb1FT2ALyJ7AAZWYLX5y0c509.png)
納米軟件電源自動測試系統(tǒng)與傳統(tǒng)系統(tǒng)修改方案相比有哪些優(yōu)勢?
![納米<b class='flag-5'>軟件</b>電源自動測試<b class='flag-5'>系統(tǒng)</b>與<b class='flag-5'>傳統(tǒng)</b><b class='flag-5'>系統(tǒng)</b>修改方案相比有哪些優(yōu)勢?](https://file1.elecfans.com/web2/M00/06/11/wKgZombhdhSAbLFnAA01ReNaD-A530.png)
嵌入式軟件開發(fā)與AI整合
![嵌入式<b class='flag-5'>軟件</b>開發(fā)與AI<b class='flag-5'>整合</b>](https://file1.elecfans.com/web2/M00/8D/79/wKgaomS7KZ-AY3GzAAArJzrUg1c443.png)
將FPGA嵌入DSP驅動的軟件無線電應用中
![<b class='flag-5'>將</b>FPGA嵌入DSP驅動的<b class='flag-5'>軟件</b>無線電應用<b class='flag-5'>中</b>](https://file1.elecfans.com/web2/M00/D1/64/wKgZomYjGfOABIQdAADM59o1hlU068.png)
評論