Statyczna analiza programu to analiza oprogramowania komputerowego, która jest wykonywana bez faktycznego wykonywania programów, w przeciwieństwie do analizy dynamicznej(inne języki), która jest analizą wykonywaną na programach podczas ich wykonywania[1]. W większości przypadków analiza jest przeprowadzana na pewnej wersji kodu źródłowego, a w innych przypadkach na pewnej formie kodu obiektowego.

Termin ten jest zwykle stosowany do analizy wykonywanej przez zautomatyzowane narzędzie, natomiast analiza przez człowieka nazywana jest inspekcją lub przeglądem kodu. Przykładem takich narzędzi są różnego rodzaju lintery do kodu.

Rodzaje narzędzi

edytuj

OMG (Object Management Group) opublikowało badanie dotyczące rodzajów analizy oprogramowania wymaganej do pomiaru i oceny jakości oprogramowania. W dokumencie „Jak zapewnić odporne, bezpieczne, wydajne i łatwe do zmiany systemy informatyczne zgodnie z zaleceniami CISQ(inne języki)” opisano trzy poziomy analizy oprogramowania[2].

Poziom jednostki (unit level)
Zależnie od rodzaju programu jest to analiza, która odbywa się w ramach określonej funkcji, metody lub ew. modułu (w językach niestrukturalizowanych).
Poziom technologii (technology level)
Analiza uwzględniająca interakcje między różnymi jednostkami programu (integrację jednostek), ale napisanych w tym samym języku programowania. Ma to na celu uzyskanie bardziej całościowego i semantycznego obrazu całego programu w celu znalezienia problemów i uniknięcia oczywistych fałszywych alarmów. Przykładowo można przeanalizować statycznie stos technologii Androida, aby znaleźć błędy uprawnień[3].
Poziom systemu (system level)
Analiza uwzględniająca interakcje między wszystkimi modułami bez ograniczania się do jednej konkretnej technologii lub języka programowania. Wg autorów dokumentu ma to pozwolić wykryć problemy w architekturze aplikacji, dysfunkcyjne interakcje, uszkodzenia danych, wyłomy bezpieczeństwa itp.

Zobacz też

edytuj

Przypisy

edytuj
  1. B.A. Wichmann i inni, Industrial Perspective on Static Analysis, „Software Engineering Journal”, 1995, ss. 69-75 [dostęp 2020-01-01] [zarchiwizowane z adresu 2011-09-27].
  2. How to Deliver Resilient, Secure, Efficient, and Easily Changed IT Systems in Line with CISQ Recommendation [online], Object Management Group [dostęp 2020-01-01] [zarchiwizowane z adresu 2013-12-28].
  3. Alexandre Bartel, Jacques Klein, Martin Monperrus, Yves Le Traon, Static Analysis for Extracting Permission Checks of a Large Scale Framework: The Challenges and Solutions for Analyzing Android, „IEEE Transactions on Software Engineering”, 40 (6), 2014, s. 617–632, DOI10.1109/TSE.2014.2322867, ISSN 0098-5589 [dostęp 2020-01-01].

Linki zewnętrzne

edytuj

📚 Artikel Terkait di Wikipedia

Fork-bomba

bomba perl perl -e "fork while fork" Java: public class ForkBomb { public static void main(String[] args) { while(true) { Runtime.getRuntime().exec(new String[]{"javaw"

C (język programowania)

Static Analysis of Endian Portability by Abstract Interpretation, [w:] CezaraC. Drăgoi, SuvamS. Mukherjee, KedarK. Namjoshi (red.), Static Analysis,

Lista skrótów i skrótowców używanych w informatyce

Inspection SPMD – Single Program, Multiple Data SPX – Sequenced Packet Exchange SQL – Structured Query Language SRAM – Static Random Access Memory SRDRAM

William Uttal

1975 W.R. Uttal, S.N. Davis, C. Welke, R. Kakarala, The Reconstruction of Static Visual Forms from Sparse Dotted Samples, Percept Psychiphys 43, s. 223–240

Ciemna energia

047301. (ang.).  Lawrence M. Krauss, Robert J. Scherrer. The Return of a Static Universe and the End of Cosmology. „General Relativity and Gravitation”

Katastrofa polskiego Tu-154 w Smoleńsku

przez biegłych z Instytutu Ekspertyz Sądowych im. Jana Sehna w Krakowie. static.presspublica.pl. [zarchiwizowane z tego adresu (2016-03-04)]. Stenogram

Common Berthing Mechanism

Cargo Program NASA facts Gualtieri, N, Rubino, S., Itta, A.: SM98-110/254 International Space Station Node 2 – Structure Design Analysis and Static Test

Puchar Świata w Rugby 7 (2018)

pulse-static-files.s3.amazonaws.com. [dostęp 2018-08-02]. [zarchiwizowane z tego adresu (2018-07-21)]. (ang.). SQUAD LISTS WITH RWC7s TOTALS. pulse-static-files