讓我們從顯而易見的事情開始:靜態(tài)分析本身并不是靈丹妙藥。它不能保證復(fù)雜的軍事嵌入式應(yīng)用程序中的高代碼質(zhì)量、安全性或安全性。靜態(tài)分析也不能確保您的應(yīng)用程序滿足為程序定義的功能要求。
更令人困惑的是靜態(tài)分析工具之間缺乏平等,盡管其中許多工具非常相似,因?yàn)樗鼈兪褂门c引擎相同的商業(yè)解析技術(shù)。盡管他們的分析很膚淺,但其中許多至少能夠提供有關(guān)開發(fā)人員代碼的高級(jí)質(zhì)量的快速而骯臟的反饋。
我不想深入探討靜態(tài)分析工具的所有差異。很簡(jiǎn)單,核心差異通常在于解析技術(shù)、用戶界面以及它們與鏈中其他工具的連接。我真正的目標(biāo)是談?wù)劄槭裁茨銘?yīng)該關(guān)心靜態(tài)分析。
靜態(tài)分析可自動(dòng)執(zhí)行代碼審查過程,無(wú)需編譯、鏈接和執(zhí)行代碼即可測(cè)量代碼的質(zhì)量。這在歷史上是一個(gè)漫長(zhǎng)、昂貴和勞動(dòng)密集型的過程中節(jié)省了時(shí)間和精力。靜態(tài)分析會(huì)自動(dòng)檢查代碼的樣式、命名約定和語(yǔ)言限制。更好的工具突出了代碼中的缺陷,并使開發(fā)人員能夠快速修復(fù)問題區(qū)域并再次運(yùn)行分析。作為此過程的一部分,靜態(tài)分析可以通過確保開發(fā)團(tuán)隊(duì)遵守特定的公司或行業(yè)認(rèn)可的編碼標(biāo)準(zhǔn)(如MISRA或JSF編碼標(biāo)準(zhǔn))來提高代碼質(zhì)量和可移植性。
更復(fù)雜的工具提供了更大的分析深度,并使開發(fā)人員能夠理解代碼的復(fù)雜區(qū)域。他們還報(bào)告有價(jià)值的細(xì)節(jié),如代碼復(fù)雜性以及數(shù)據(jù)和控制流。更有效的工具在高度抽象中呈現(xiàn)其深入分析的結(jié)果,這使得代碼更易于理解。此外,功能更強(qiáng)大的工具可與更復(fù)雜的集成開發(fā)環(huán)境無(wú)縫互操作,從而加快整個(gè)開發(fā)生命周期。
當(dāng)今的軍事應(yīng)用需要支持 ARINC 653 或FACE等架構(gòu)標(biāo)準(zhǔn),以提高代碼的可移植性和可重用性。高質(zhì)量的靜態(tài)分析工具集為快速構(gòu)建更高質(zhì)量的代碼提供了堅(jiān)實(shí)的基礎(chǔ),這些代碼更具可移植性、可維護(hù)性、安全性。它應(yīng)該是整個(gè)過程中使用的工具。但是,靜態(tài)分析只是解決常見問題集的一種工具。有效的質(zhì)量流程還需要利用諸如雙向需求可追溯性、動(dòng)態(tài)分析、結(jié)構(gòu)覆蓋分析、單元、集成和系統(tǒng)級(jí)測(cè)試等技術(shù),無(wú)論是在主機(jī)開發(fā)平臺(tái)上,還是在可能的情況下,在目標(biāo)硬件上。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5086文章
19143瀏覽量
306090 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3283瀏覽量
57749
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論