Statická analýza kódu: Porovnání verzí

Smazaný obsah Přidaný obsah
Bez shrnutí editace
Bez shrnutí editace
Řádek 1:
'''Statická analýza kódu''' je sada metod pro analýzu [[Počítačový program|počítačových programů]], které jsou aplikovány bez jejich spuštění ([[analýz|softwarový analýza]], která je aplikována na spuštěné programy se nazývá [[dynamická analýza|dynamická softwarová analýza]]). V nejběžnějších případech je analýza prováděna na nějaké verzi [[Zdrojový kód|zdrojových kódů]], nebo formě [[Objektový kód|objektových kódů]]. Termín analýza programů je většinou spojen s nástroji pro automatickou analýzu, nebo s lidskou analýzou, která se nazývá [[program comprehesion]] (pochopení programu) nebo [[code review]] (průzkum kódu).
 
=== Důvody ===
Náročnost statické analýzy vykonávané danými nástroji se liší do těch, které berou v úvahu pouze chování jednotlivých deklarací a definicí a těch, které obsahují kompletní zdrojový kód programu. Informace získané z analýzy daného programu mohou být různé od zdůraznění možných chyb v kódu až po  metody, které matematicky vyjadřují vlastnosti týkající se daného programu.
 
Řádek 12:
39,7% očekávají jejich použití během dvou let.
 
=== Druhy nástrojů ===
[[Object Management Group|OMG]] (Object Management Group) nedávno zveřejnila studii týkající se typů softwarových analýz potřebných pro měření a hodnocení kvality softwaru. Tento dokument "How to Deliver Resilient, Secure, Efficient, and Easily
Changed IT Systems in Line with CISQ REcommendations" popisuje čtyři úrovně softwarové analýzy.
Řádek 22:
* '''Účelová/Obchodní úroveň (Mission/Business Level)''' - Analýza, která zkoumá obchodní a účelové vrstvy, pravidla a procesy, které jsou implementovány do softwarového systému pro činnost v rámci podniku nebo svého účelu. Tyto prvky jsou implementovány aniž by byly omezeny na jednu specifickou technologii nebo programovací jazyk a v mnoha případech jsou distribuovány přes více jazyků, ale jsou staticky extrahovány a analyzovány pro pochopení fungování systému.
 
=== Formální metody ===
Formální metody označují termín používaný v analýze softwaru (a počítačového hardwaru), jejichž výsledky jsou získány pomocí složitých matematických metod. Tyto matematické techniky zahrnují metody jako například [[denotační sémantika]], [[axiomatická sémantika]], [[abstraktní interpretace]] a jiné. Ale ani těmito technikami nelze vždy najít všechny možné [[Běhová chyba|běhové (run-time) chyby]]: neexistuje žádný mechanismus, který vždy pravdivě zodpoví zda libovolný program může nebo nemusí vykazovat běhové chyby.