靜態程式分析(英語:Staticprogramanalysis)是指在不運行電腦程式的條件下,進行程式分析的方法。有些程式分析需要在程式運行時才能進行,這種程式分析稱為動態程式分析(英語:dynamicprogramanalysis)[1]。大部份的靜態程式分析的對象是針對特定版本的原始碼,也有些靜態程式分析的對象是目標代碼。靜態程式分析一詞多半是指配合靜態程式分析工具進行的分析,人工進行的分析一般稱為程式理解(英語:programcomprehension)或代碼審查。
靜態程式分析的複雜程度依所使用的工具而異,簡單的只考慮個別敘述及聲明的行為,複雜的可以分析程式的完整原始碼。不同靜態程式分析產生的信息也有所不同,簡單的可以是標示可能的代碼錯誤(如lint編程工具(英語:lintprogrammingtool)),複雜的可以是形式化方法,也就是用數學的方式證明程式的某些行為符合其設計規格。
軟體度量和反向工程可以視為一種靜態程式分析的方式。在實務上,在定義所謂的軟體品質指針(softwarequalityobjectives)後,軟體度量的推導及程式分析常一起進行,在開發嵌入式系統時常會用這種方式進行。
靜態程式分析的商業用途可以用來驗證安全關鍵計算機系統中的軟體,並指出可能有計算機安全隱患的代碼,這類的套用越來越多。[2]例如以下的產業已確定用靜態程式分析作為提升複雜軟體品質的方法:
醫療軟體:美國的美國食品藥品監督管理局確定在醫療設備上使用靜態程式分析[3]。
核能軟體:英國的健康與安全委員會(英語:HealthandSafetyExecutive)建議針對堆保護系統(英語:ReactorProtectiveSystem)的軟體進行靜態程式分析中[4]。
在信息安全的領域中,靜態程式分析會稱為靜態應用程式安全檢測(StaticApplicationSecurityTesting,簡稱SAST)。
相關詞條
-
程式靜態分析
程式靜態分析(Program Static Analysis)是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流、數據流分析等技術對程式代碼進行掃...
分析技術及實踐 形式化方法 著名的靜態分析工具 使用簡介 使用目的 -
靜態分析
靜態分析法是根據既定的外生變數值求得內生變數的分析方法,是對已發生的經濟活動成果,進行綜合性的對比分析的一種分析方法。 靜態分析法主要套用於靜態計算機科...
概念類別 靜態分析 -
程式分析
程式分析,是指以整個生產過程為研究對象,研究分析完整的工藝程式,從第一個工作地到最後一個工作地,是否存在多餘、重複、不合理的作業,作業順序是否合理,搬運...
簡介 概念 目的 種類及圖表 記錄符號 -
靜態時序分析
靜態時序分析(英語:Static Timing Analysis, STA),或稱靜態時序驗證,是電子工程中,對數字電路的時序進行計算、預計的工作流程,...
簡介 目的 概念定義 最突出的靜態時序分析技術 接口時序分析 -
《安全編程代碼靜態分析》
《安全編程代碼靜態分析》圖書由作者:(美國)BrianChess (美國)JacobWest 編著,機械工業出版社出版發行。
版權資訊 內容簡介 作者簡介 目錄 -
安全編程代碼靜態分析
程式設計師要知道:他們的代碼幾乎需要在各種使用環境和各種配置之下都是安全的。靜態原始碼分析為用戶提供了使用優秀的工具來審查其工作的能力,從而找出各類可直接導...
內容簡介 作者簡介 目錄 -
infer[APP靜態分析工具]
Facebook 的 Infer 是一個靜態分析工具。Infer 可以分析 Objective-C, Java 或者 C 代碼,報告潛在的問題。 任何人...
關於 Infer 特性 下載Infer -
偽靜態
URL填入“/index.asp”,或您的錯誤處理頁面。 這樣,比如用戶或蜘蛛訪問http://網址XXX/12345.html時(12345為文章在數...
區別靜態 主要不足 如何選擇 相關評論 方法步驟 -
靜態測試
靜態方法是指不運行被測程式本身,僅通過分析或檢查源程式的語法、結構、過程、接口等來檢查程式的正確性。對需求規格說明書、軟體設計說明書、源程式做結構分析、...
定義 學術解釋 編碼規範 質量度量 錯誤檢測