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