Przejdź do zawartości

Statyczna analiza programu

Z Wikipedii, wolnej encyklopedii

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 | edytuj kod]

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 | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  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 i inni, 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 | edytuj kod]