靜態程式分析(英語:Static programanalysis)是指在不運行電腦程式的條件下,進行程式分析的方法。
基本介紹
- 中文名:靜態程式分析
- 外文名:Static programanalysis
- 目的:進行程式分析
- 領域:計算機
簡介
靜態程式分析的複雜程度依所使用的工具而異,簡單的只考慮個別敘述及聲明的行為,複雜的可以分析程式的完整原始碼。不同靜態程式分析產生的信息也有所不同,簡單的可以是標示可能的代碼錯誤(如lint編程工具(英語:lintprogrammingtool)),複雜的可以是形式化方法,也就是用數學的方式證明程式的某些行為符合其設計規格。
軟體度量和反向工程可以視為一種靜態程式分析的方式。在實務上,在定義所謂的軟體品質指針(softwarequalityobjectives)後,軟體度量的推導及程式分析常一起進行,在開發嵌入式系統時常會用這種方式進行。
用途
醫療軟體:美國的美國食品藥品監督管理局確定在醫療設備上使用靜態程式分析。
核能軟體:英國的健康與安全委員會(英語:HealthandSafetyExecutive)建議針對堆保護系統(英語:ReactorProtectiveSystem)的軟體進行靜態程式分析中。
在信息安全的領域中,靜態程式分析會稱為靜態應用程式安全檢測(StaticApplicationSecurityTesting,簡稱SAST)。