軍事和航空電子軟件系統(tǒng)的開發(fā)人員可以做些什么來利用軟件重用,同時(shí)確保軟件盡可能無錯(cuò)誤和安全?
在所有行業(yè)中,軟件正變得越來越普遍。以波音噴氣式飛機(jī)為例。波音 787 飛機(jī)飛行控制系統(tǒng)的代碼數(shù)為 650 萬行,是 777 的三倍。鑒于這種增長(zhǎng)趨勢(shì),為每個(gè)新項(xiàng)目從頭開始重寫整個(gè)系統(tǒng)既不現(xiàn)實(shí)也不切實(shí)際。
代碼的重用已成為一種通用的軟件開發(fā)最佳實(shí)踐。它通過提高開發(fā)效率來加快上市時(shí)間,同時(shí)最大限度地降低與全新開發(fā)相關(guān)的成本。代碼重用的實(shí)踐還使開發(fā)組織能夠利用從現(xiàn)有代碼庫(kù)中吸取的經(jīng)驗(yàn)教訓(xùn)。
但是,通過代碼重用,必須在風(fēng)險(xiǎn)和回報(bào)之間取得平衡。當(dāng)舊軟件移植到新的操作系統(tǒng)或與新代碼結(jié)合使用時(shí),以前潛在的錯(cuò)誤可能會(huì)成為活動(dòng)的關(guān)鍵缺陷或高風(fēng)險(xiǎn)的安全漏洞。在關(guān)鍵任務(wù)的軍事和航空電子系統(tǒng)中,軟件缺陷可能導(dǎo)致傷害、代價(jià)高昂的故障,甚至生命損失。
事實(shí)上,不當(dāng)?shù)倪z留代碼重用是1996年阿麗亞娜5號(hào)(無人駕駛)航天器自毀的根本原因。該代碼在飛機(jī)以前的版本中安全運(yùn)行,但執(zhí)行上下文發(fā)生了變化,將阿麗亞娜4中的潛在錯(cuò)誤轉(zhuǎn)變?yōu)閷?dǎo)致其繼任者在發(fā)射后37秒爆炸的關(guān)鍵錯(cuò)誤。
建筑分析的強(qiáng)大功能
在具有大型且極其復(fù)雜的代碼庫(kù)的行業(yè)中,例如軍事和航空電子設(shè)備,成功重用遺留代碼的一個(gè)關(guān)鍵要素是可視化和分析軟件系統(tǒng)架構(gòu)的能力。領(lǐng)先的源代碼分析 (SCA) 工具為軟件系統(tǒng)架構(gòu)師、開發(fā)經(jīng)理和個(gè)人軟件開發(fā)人員提供了直接從現(xiàn)有源代碼進(jìn)行軟件設(shè)計(jì)的圖形視圖。此圖形視圖提供了對(duì)應(yīng)用程序結(jié)構(gòu)和設(shè)計(jì)的全面了解,使團(tuán)隊(duì)能夠評(píng)估接口、關(guān)系和邏輯流,以確定在何處以及如何重用現(xiàn)有代碼。清楚地了解系統(tǒng)的組件及其相互關(guān)系和依賴關(guān)系對(duì)于提高軟件的質(zhì)量和安全性至關(guān)重要。此外,還需要能夠記錄系統(tǒng)架構(gòu),以便在航空電子空間內(nèi)實(shí)現(xiàn)符合DO-178B標(biāo)準(zhǔn)。
重用舊代碼時(shí),系統(tǒng)架構(gòu)的全面視圖可以通過以下方式幫助開發(fā)團(tuán)隊(duì)。
隔離可重復(fù)使用的組件
將舊版軟件應(yīng)用程序中的組件重用于新應(yīng)用程序時(shí),有必要最大程度地減少這些組件對(duì)軟件系統(tǒng)其他部分的依賴。為此,設(shè)計(jì)人員必須確保組件僅包含與組件功能相關(guān)的實(shí)體。系統(tǒng)架構(gòu)在各個(gè)級(jí)別的完整視圖使開發(fā)人員能夠隔離可重用的組件并重新組織它們,以實(shí)現(xiàn)最有效的代碼重用。
評(píng)估和提高軟件系統(tǒng)設(shè)計(jì)的質(zhì)量
軟件系統(tǒng)的物理設(shè)計(jì)可能與其高級(jí)邏輯設(shè)計(jì)幾乎沒有相似之處。通過系統(tǒng)架構(gòu)的詳細(xì)視圖,可以:
導(dǎo)航系統(tǒng)層次結(jié)構(gòu)并探索其結(jié)構(gòu)
查看組件對(duì)其他組件的依賴關(guān)系
查看系統(tǒng)中不同組件之間的關(guān)系
通過這種觀點(diǎn),可以發(fā)現(xiàn)當(dāng)前實(shí)現(xiàn)和設(shè)計(jì)意圖之間的不一致,包括不適當(dāng)?shù)年P(guān)系和依賴關(guān)系,以及在軟件層次結(jié)構(gòu)的不同級(jí)別中重復(fù)的錯(cuò)誤。這種理解水平使開發(fā)團(tuán)隊(duì)能夠評(píng)估物理軟件系統(tǒng)的質(zhì)量,并在系統(tǒng)上實(shí)現(xiàn)所需的邏輯設(shè)計(jì)。
可移植到新平臺(tái)
回收代碼經(jīng)常用于為最初開發(fā)本機(jī)代碼的平臺(tái)以外的平臺(tái)設(shè)計(jì)的系統(tǒng)中。確保內(nèi)部或第三方代碼在新平臺(tái)上按設(shè)計(jì)執(zhí)行具有挑戰(zhàn)性。但是,全面的系統(tǒng)體系結(jié)構(gòu)視圖可以通過揭示應(yīng)用程序?qū)ν獠凯h(huán)境的依賴關(guān)系來提供幫助。通過準(zhǔn)確理解代碼及其設(shè)計(jì),開發(fā)團(tuán)隊(duì)可以快速確定移植工作的范圍和所需的操作。
重用的架構(gòu)
對(duì)于軍事和航空電子軟件開發(fā)團(tuán)隊(duì)來說,全面了解和分析其軟件系統(tǒng)架構(gòu)對(duì)于確保在重用舊軟件時(shí)獲得高質(zhì)量、安全的結(jié)果至關(guān)重要。使用源代碼分析工具的體系結(jié)構(gòu)功能,大大降低了與代碼重用相關(guān)的風(fēng)險(xiǎn),通過更全面的設(shè)計(jì)規(guī)劃提高了生產(chǎn)率,并簡(jiǎn)化了實(shí)現(xiàn) DO-178B 合規(guī)性所需的工作。
審核編輯:郭婷
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6466瀏覽量
110298 -
無人駕駛
+關(guān)注
關(guān)注
98文章
3996瀏覽量
119901
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論