軟件俱樂(lè)部的第一條規(guī)則:如果它沒(méi)有壞,就不要談?wù)撚|摸它。但是,這在許多情況下是不可行的,例如,由于與系統(tǒng)相關(guān)的原因,必須遷移運(yùn)行良好的代碼。這在安全關(guān)鍵型系統(tǒng)中成為一個(gè)大問(wèn)題,其中更改代碼會(huì)觸發(fā)一系列其他昂貴且有風(fēng)險(xiǎn)的活動(dòng)。那么設(shè)計(jì)師們?cè)撛趺崔k呢?以下是有關(guān)如何衡量團(tuán)隊(duì)目標(biāo)以及應(yīng)考慮哪些選項(xiàng)的解釋。
將安全關(guān)鍵型系統(tǒng)遷移到新技術(shù)可能是一個(gè)成本高昂且有風(fēng)險(xiǎn)的過(guò)程,開(kāi)發(fā)人員應(yīng)盡可能避免。但是,在某些情況下,出于財(cái)務(wù)或性能原因,遷移是可取的,或者由于硬件過(guò)時(shí)和新要求而無(wú)法避免。面臨遷移的開(kāi)發(fā)人員需要仔細(xì)考慮系統(tǒng)更改的類(lèi)型和程度,以比較內(nèi)部活動(dòng)與設(shè)計(jì)服務(wù)支持的好處。
部署在航空航天和國(guó)防領(lǐng)域的安全關(guān)鍵型嵌入式系統(tǒng)的使用壽命通常超過(guò)單個(gè)系統(tǒng)組件的使用壽命。技術(shù)發(fā)展的快速步伐使得這些組件中至少有一個(gè)需要在系統(tǒng)本身退役之前數(shù)年甚至數(shù)十年進(jìn)行更改的可能性很高。反過(guò)來(lái),這種硬件更改可能會(huì)觸發(fā)開(kāi)發(fā)人員將系統(tǒng)軟件遷移到新技術(shù)的需要,以確保持續(xù)的可維護(hù)性。
許多系統(tǒng)更改可能會(huì)觸發(fā)軟件組件遷移。例如,外設(shè)、通信總線或協(xié)議可能會(huì)發(fā)生變化,從而迫使代碼段遷移到新硬件。目標(biāo)硬件或處理器可能會(huì)過(guò)時(shí),就像基于英特爾 80860 的系統(tǒng)一樣,迫使整個(gè)系統(tǒng)軟件遷移到一個(gè)全新的平臺(tái)??赡軙?huì)出現(xiàn)新的功能要求或認(rèn)證標(biāo)準(zhǔn),迫使系統(tǒng)設(shè)計(jì)在以前不需要的地方納入實(shí)時(shí)操作系統(tǒng)(RTOS)。同樣,新標(biāo)準(zhǔn)的強(qiáng)加,F(xiàn)AA等監(jiān)管機(jī)構(gòu)對(duì)認(rèn)證的新要求,以及與新系統(tǒng)互操作的需求,都可能產(chǎn)生將軟件遷移到新平臺(tái)的需求。
對(duì)開(kāi)發(fā)環(huán)境的更改也可能導(dǎo)致遷移系統(tǒng)軟件的需要。開(kāi)發(fā)和維護(hù)應(yīng)用程序的主機(jī)的過(guò)時(shí)(如 VAX/VMS 主機(jī)所發(fā)生的情況)可能會(huì)在難以找到故障硬件的備件時(shí)強(qiáng)制將系統(tǒng)軟件遷移到新的開(kāi)發(fā)工具。開(kāi)發(fā)工具本身的過(guò)時(shí)或應(yīng)用程序工具或語(yǔ)言專(zhuān)業(yè)知識(shí)的喪失可能會(huì)啟動(dòng)向新工具的遷移,以確保開(kāi)發(fā)人員可以繼續(xù)支持已安裝的系統(tǒng)。同樣,RTOS 的過(guò)時(shí)可能會(huì)促使軟件遷移到新平臺(tái)。
即使是業(yè)務(wù)變化也會(huì)刺激遷移。與RTOS或其他軟件組件相關(guān)的生產(chǎn)版稅可能會(huì)影響系統(tǒng)的盈利能力。由于利潤(rùn)空間狹窄,開(kāi)發(fā)人員可能會(huì)選擇遷移系統(tǒng)軟件以消除此類(lèi)版稅。
降低成本和風(fēng)險(xiǎn)
無(wú)論什么觸發(fā)硬件或軟件的更改,遷移系統(tǒng)軟件都會(huì)涉及成本和風(fēng)險(xiǎn)。軟件遷移不僅意味著更改軟件及其隨之而來(lái)的引入錯(cuò)誤的風(fēng)險(xiǎn),還意味著重新測(cè)試和可能重新認(rèn)證軟件。開(kāi)發(fā)和測(cè)試工作的總成本可能相當(dāng)可觀,特別是對(duì)于必須滿足嚴(yán)格要求的安全關(guān)鍵系統(tǒng)。
移徙因素
成功遷移的一個(gè)關(guān)鍵是徹底了解遷移的影響。開(kāi)發(fā)人員需要考慮許多因素,包括:
性能:新處理器/實(shí)時(shí)操作系統(tǒng)/平臺(tái)能否滿足系統(tǒng)“??s”的實(shí)時(shí)截止時(shí)間要求?
資源限制:軟件是否適合系統(tǒng)內(nèi)存和寄存器可用性的限制?
RTOS 影響:更改 RTOS 或?qū)?RTOS 添加到曾經(jīng)裸露的板環(huán)境中可能會(huì)改變代碼執(zhí)行順序或時(shí)序。它還可能增加系統(tǒng)復(fù)雜性并改變內(nèi)存要求。
字長(zhǎng):字長(zhǎng)的變化(例如從 16 位到 32 位)將如何影響現(xiàn)有代碼?計(jì)算算法、指針、計(jì)數(shù)器、上溢/下溢條件和執(zhí)行速度可能會(huì)受到字長(zhǎng)變化的影響。
工具可用性:主機(jī)或目標(biāo)平臺(tái)的更改是否也意味著工具集的更改?用于創(chuàng)建和維護(hù)系統(tǒng)軟件的開(kāi)發(fā)工具可能不適用于主機(jī)系統(tǒng)和目標(biāo)處理器或 RTOS 的給定組合。
數(shù)據(jù)布局:編譯器將數(shù)據(jù)映射到寄存器和內(nèi)存的方式各不相同。此類(lèi)變化可能會(huì)導(dǎo)致與軟件中隱含或預(yù)期的映射發(fā)生沖突。
可擴(kuò)展性:軟件遷移可能需要升級(jí)或增強(qiáng)功能以滿足新的要求。工具和系統(tǒng)資源需要支持此類(lèi)增強(qiáng)功能。
可追溯性:將遷移的軟件追溯到原始軟件的能力可以通過(guò)證明軟件未更改來(lái)幫助降低測(cè)試成本。
遷移期間所做的更改越多,起作用的因素就越多。風(fēng)險(xiǎn)最低的遷移是僅更改系統(tǒng)的一個(gè)方面,例如主機(jī)開(kāi)發(fā)平臺(tái)。如果原始軟件開(kāi)發(fā)系統(tǒng)和軟件工具在當(dāng)前主機(jī)平臺(tái)(如運(yùn)行微軟Windows的PC)上可用,這是可行的。僅更改開(kāi)發(fā)主機(jī)對(duì)系統(tǒng)和軟件的其余部分的影響最小。
開(kāi)發(fā)人員應(yīng)尋求創(chuàng)造性的方法,將更改次數(shù)保持在最低限度。例如,如果開(kāi)發(fā)工具在新的主機(jī)平臺(tái)上不可用,仿真可能會(huì)提供切換工具集的替代方法。事實(shí)證明,在PC上運(yùn)行的VAX仿真器在允許繼續(xù)使用工具方面是成功的,并且由此生成的二進(jìn)制目標(biāo)代碼通常與原始目標(biāo)代碼相同。工具、源代碼和目標(biāo)代碼沒(méi)有改變,減少了重新測(cè)試和重新認(rèn)證的需要。
工具更改需要編譯器專(zhuān)業(yè)知識(shí)
當(dāng)工具集必須更改時(shí),開(kāi)發(fā)人員將面臨其他挑戰(zhàn)。編譯器將源代碼映射到底層硬件結(jié)構(gòu)的方式各不相同,例如內(nèi)存尋址和寄存器用法。除非開(kāi)發(fā)人員仔細(xì)約束編譯器的“??s”行為,否則這些變化可能會(huì)導(dǎo)致目標(biāo)代碼的更改。充其量,這會(huì)觸發(fā)重新測(cè)試并可能重新認(rèn)證軟件的需要。在最壞的情況下,這些更改可能會(huì)導(dǎo)致執(zhí)行期間出現(xiàn)意外且可能存在缺陷的系統(tǒng)行為。
在不引起其他更改的情況下更改工具集要求開(kāi)發(fā)團(tuán)隊(duì)具有應(yīng)用程序級(jí)工程師通常缺乏的編譯器行為‘?ì專(zhuān)業(yè)知識(shí)。為了避免花費(fèi)時(shí)間和精力獲得所需的技能,開(kāi)發(fā)團(tuán)隊(duì)可以向外尋求幫助。設(shè)計(jì)服務(wù)組織通常具有使用各種工具集的經(jīng)驗(yàn),并且可以將這種經(jīng)驗(yàn)用于確保工具更改不會(huì)觸發(fā)軟件更改。
設(shè)計(jì)人員團(tuán)隊(duì)?wèi)?yīng)盡可能避免某些更改,例如將應(yīng)用程序從舊編程語(yǔ)言轉(zhuǎn)換為當(dāng)前編程語(yǔ)言。團(tuán)隊(duì)?wèi)?yīng)該使用舊語(yǔ)言和新目標(biāo)硬件的開(kāi)發(fā)系統(tǒng),而不是轉(zhuǎn)換。這將并發(fā)更改和風(fēng)險(xiǎn)的數(shù)量限制為僅兩個(gè):開(kāi)發(fā)系統(tǒng)和目標(biāo)硬件。
改變語(yǔ)言涉及許多可能的陷阱。生成的應(yīng)用程序?qū)⑴c原始應(yīng)用程序不同,需要昂貴的重新測(cè)試和重新認(rèn)證。其他因素也起作用。生成的代碼將具有不同的布局,并且可能不再適合可用內(nèi)存;數(shù)據(jù)布局將有所不同,不再正確映射到底層硬件;性能和時(shí)間方面將發(fā)生變化。應(yīng)用程序必須在源代碼級(jí)別進(jìn)行修改,這將需要使用新的編程語(yǔ)言以及應(yīng)用程序的設(shè)計(jì)和內(nèi)部工作來(lái)培訓(xùn)軟件工程師。
雖然如果沒(méi)有一個(gè)程序員接受過(guò)應(yīng)用程序’??s編程語(yǔ)言的培訓(xùn),那么遷移到一門(mén)新語(yǔ)言可能很誘人,但這應(yīng)該是最后的手段。在采取這條路之前,請(qǐng)考慮用舊語(yǔ)言培訓(xùn)程序員。精通相對(duì)復(fù)雜的當(dāng)前語(yǔ)言(如Java或C++)的程序員不會(huì)發(fā)現(xiàn)學(xué)習(xí)另一種語(yǔ)言是不可逾越的。
設(shè)計(jì)服務(wù)提供專(zhuān)家協(xié)助
另一種可能性是聘請(qǐng)?zhí)峁┍匾Z(yǔ)言專(zhuān)業(yè)知識(shí)的設(shè)計(jì)服務(wù)。對(duì)于針對(duì)軍事和航空電子系統(tǒng)的專(zhuān)用語(yǔ)言,如Ada和JOVIAL,設(shè)計(jì)服務(wù)提供商通常在應(yīng)用領(lǐng)域和語(yǔ)言方面擁有豐富的經(jīng)驗(yàn),包括安全關(guān)鍵系統(tǒng)設(shè)計(jì)需求的經(jīng)驗(yàn)。這使他們能夠快速深入了解系統(tǒng)軟件,并提供開(kāi)發(fā)團(tuán)隊(duì)所需的維護(hù)和升級(jí)支持。
如果最終必須廢棄原始語(yǔ)言,系統(tǒng)設(shè)計(jì)人員可以使用翻譯工具部分更改語(yǔ)言(如圖 1 所示)。但是,沒(méi)有任何工具可以完成完整的工作,并且轉(zhuǎn)換后的源程序的可讀性可能值得懷疑。如果可能,開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)努力僅在絕對(duì)必要的部分更改語(yǔ)言。
圖1

實(shí)現(xiàn)此目的的一種方法是使用支持新舊目標(biāo)語(yǔ)言并且可以混合語(yǔ)言的工具集。這允許團(tuán)隊(duì)保持原始代碼中仍然可用的部分不變,并將語(yǔ)言更改限制為滿足新要求所涉及的部分。
這種混合語(yǔ)言工具的一個(gè)關(guān)鍵部分是調(diào)試器。雖然許多編譯器可以組合不同語(yǔ)言的代碼段,但大多數(shù)調(diào)試器工具一次只處理一種語(yǔ)言。這意味著開(kāi)發(fā)人員必須同時(shí)調(diào)用多個(gè)工具才能查看代碼段之間的交互,而這些工具很少以協(xié)調(diào)的方式進(jìn)行交互或交換信息以幫助將目標(biāo)代碼與多種語(yǔ)言源相關(guān)聯(lián)。DDC-I‘??s OpenArbor(如圖 2 所示)等工具允許在單次啟動(dòng)時(shí)進(jìn)行混合語(yǔ)言調(diào)試,可以顯著縮短調(diào)試時(shí)間,并更容易檢測(cè)交互錯(cuò)誤。
圖2

無(wú)論是否涉及語(yǔ)言更改,遷移安全關(guān)鍵型系統(tǒng)軟件都是一項(xiàng)復(fù)雜的任務(wù),存在許多潛在的陷阱。硬件、主機(jī)、目標(biāo)、工具和語(yǔ)言的每次更改都會(huì)引入復(fù)雜性,并可能強(qiáng)制進(jìn)行其他更改,從而導(dǎo)致后果升級(jí)。應(yīng)通過(guò)最大化舊版工具和代碼重用來(lái)盡可能避免遷移中固有的成本和風(fēng)險(xiǎn)。當(dāng)需要更改時(shí),仔細(xì)選擇新工具并戰(zhàn)略性地使用經(jīng)驗(yàn)豐富的設(shè)計(jì)服務(wù)可以降低軟件遷移風(fēng)險(xiǎn)和成本。
審核編輯:郭婷
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7433瀏覽量
129602 -
JAVA
+關(guān)注
關(guān)注
20文章
3006瀏覽量
116823 -
RTOS
+關(guān)注
關(guān)注
25文章
869瀏覽量
123207
發(fā)布評(píng)論請(qǐng)先 登錄
Parasoft C/C++test:嵌入式安全關(guān)鍵行業(yè)的一體化軟件測(cè)試解決方案
成都大學(xué)攜手曙光云成功完成虛擬化平臺(tái)國(guó)產(chǎn)化替代
Vector官宣收購(gòu)StatInf公司RocqStat軟件技術(shù)
無(wú)質(zhì)量損失的數(shù)據(jù)遷移:Nikon SLM Solutions信賴(lài)3Dfindit企業(yè)版
新型超快速單脈沖技術(shù)解決傳統(tǒng)遷移率測(cè)量挑戰(zhàn)
邊聊安全 | 軟件單元測(cè)試的設(shè)計(jì)方法
軟件物料清單分論壇成功舉辦
中軟國(guó)際上云遷移服務(wù)充分釋放云計(jì)算價(jià)值
潤(rùn)和軟件成功中標(biāo)國(guó)家電網(wǎng)省級(jí)公司操作系統(tǒng)運(yùn)維大單
新思科技如何驗(yàn)證更安全的智能汽車(chē)軟件
國(guó)民技術(shù)安全芯片筑牢關(guān)鍵信息基礎(chǔ)設(shè)施安全防線
編譯器功能安全驗(yàn)證的關(guān)鍵要素
小華半導(dǎo)體XC27x系列芯片成功適配普華安全車(chē)控基礎(chǔ)軟件平臺(tái)
如何精準(zhǔn)提取MOSFET溝道遷移率
龍芯終端與合見(jiàn)工軟PCB設(shè)計(jì)軟件UniVista Archer成功適配
成功遷移安全關(guān)鍵型軟件
評(píng)論