遷移當(dāng)今復(fù)雜的軍事和商業(yè)航空電子系統(tǒng)可能是一個相當(dāng)艱巨的命題,但可以采取幾個步驟來緩解一些頭痛。
在當(dāng)今的關(guān)鍵軍事、商業(yè)航空電子設(shè)備和其他系統(tǒng)中,有數(shù)億行遺留代碼在使用。這些遺留系統(tǒng)中的大多數(shù)都是使用現(xiàn)已過時(或過時)的編程語言和過時且不再可用的開發(fā)系統(tǒng)開發(fā)的。因此,這些遺留系統(tǒng)的維護(hù)和升級變得越來越困難和昂貴,迫使開發(fā)人員將其應(yīng)用程序遷移到新的開發(fā)主機(jī)、編譯器、操作系統(tǒng)甚至編程語言。
當(dāng)確實需要升級系統(tǒng)時,請避免此時對應(yīng)用程序的其他方面進(jìn)行現(xiàn)代化改造的誘惑,例如將應(yīng)用程序轉(zhuǎn)換為新的編程語言。遷移到“最新和最偉大的”可能很誘人,但通常更明智的做法是放慢速度,僅在真正需要和經(jīng)濟(jì)上合理時才遷移。理想情況下,應(yīng)使用原始開發(fā)系統(tǒng)和語言或混合語言配置中同一開發(fā)系統(tǒng)支持的另一種語言添加新功能。
遷移復(fù)雜的嵌入式軟件 - 特別是在需要實時響應(yīng)和高度安全關(guān)鍵性的應(yīng)用中 - 可能是一個昂貴、耗時且有風(fēng)險的過程,需要更改代碼、重新測試甚至重新認(rèn)證。有許多因素使遺留應(yīng)用程序難以移植,包括編程語言的細(xì)微差別、編譯器實現(xiàn)、運(yùn)行時和硬件依賴關(guān)系、使用超出定義的編程語言的擴(kuò)展以及不兼容的應(yīng)用程序代碼結(jié)構(gòu)。遷移應(yīng)用程序還可能會影響先前的認(rèn)證工作(例如,DO-178)。
盡管如此,保留經(jīng)過充分驗證的應(yīng)用程序并使它們能夠在不同的處理器、開發(fā)環(huán)境、編譯器甚至更新的編程語言上運(yùn)行仍然至關(guān)重要。任務(wù)和安全關(guān)鍵型軟件的成本可能遠(yuǎn)遠(yuǎn)超過 10 美元/行和數(shù)年的創(chuàng)建成本(對于帶有工件的安全關(guān)鍵型軟件,每行超過 100 美元)。相比之下,傳統(tǒng)軟件通常可以以每行幾美元的價格遷移,并在一年內(nèi)重新部署。
在考慮是否遷移舊版應(yīng)用程序時,必須考慮許多因素。其中包括嵌入式應(yīng)用程序的性能、資源約束(如內(nèi)存和電源)、時序約束、數(shù)據(jù)布局(必須與底層硬件匹配)、新功能的可擴(kuò)展性以及更改目標(biāo)字長的后果(例如,從 8 位到 16 位、16 位到 32 位)。其他因素包括可讀性和可維護(hù)性、更改的可追溯性、認(rèn)證或重新認(rèn)證要求,以及將 RTOS 引入裸板環(huán)境的潛在副作用。
遷移舊版應(yīng)用程序的復(fù)雜性使得適當(dāng)?shù)囊?guī)劃至關(guān)重要。例如,在開始遷移項目之前,DDC-I 會執(zhí)行遷移評估研究,以確定技術(shù)挑戰(zhàn)并解決未知問題。有了這些信息,DDC-I 的專業(yè)服務(wù)團(tuán)隊可以就如何最好地進(jìn)行遷移工作提出建議和技術(shù)解決方案,包括人力需求和成本估算。
更改編程語言
在所有遷移工作中最具挑戰(zhàn)性的是將用傳統(tǒng)語言(如 Ada 或 Jovial)編寫的代碼遷移到新語言(如 C 或?qū)崟r Java)上。無論是為了便于維護(hù)還是為了利用高級新語言功能,最好使用支持舊語言和新目標(biāo)語言的開發(fā)環(huán)境,并能夠混合語言。這將允許您緩慢遷移并逐步進(jìn)行測試。開發(fā)人員可能還希望利用可加快轉(zhuǎn)換過程的工具和服務(wù)。
例如,DDC-I提供了半自動化工具,以可預(yù)測和直接的方式轉(zhuǎn)換應(yīng)用程序,同時保留原始應(yīng)用程序結(jié)構(gòu)和源代碼注釋。這使得轉(zhuǎn)換后的代碼可讀且可維護(hù),最大限度地降低引入軟件錯誤的風(fēng)險,并消除對軟件轉(zhuǎn)換工具的任何進(jìn)一步依賴。使用新語言后,可以使用更新的語言優(yōu)化工具對應(yīng)用程序進(jìn)行優(yōu)化,使用新功能進(jìn)行增強(qiáng),或轉(zhuǎn)換為模型語言(例如 UML)。
即使借助這些工具,轉(zhuǎn)換應(yīng)用程序也很少是微不足道的,尤其是在需要任務(wù)或安全關(guān)鍵性時。盡管如此,考慮到與開發(fā)新應(yīng)用程序相關(guān)的過高成本和時間,遷移現(xiàn)有應(yīng)用程序通常是最佳選擇。借助適當(dāng)?shù)囊?guī)劃、轉(zhuǎn)換工具和在該領(lǐng)域具有特定專業(yè)知識的專業(yè)服務(wù)公司,開發(fā)人員可以大大加快轉(zhuǎn)換過程,同時降低風(fēng)險。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19881瀏覽量
234833 -
嵌入式
+關(guān)注
關(guān)注
5148文章
19645瀏覽量
317021
發(fā)布評論請先 登錄
Linux嵌入式和單片機(jī)嵌入式的區(qū)別?
嵌入式適合自學(xué)嗎?
高可靠性嵌入式主板設(shè)計

評論