Statická analýza kódu: Porovnání verzí
Smazaný obsah Přidaný obsah
m Bot: Odstranění 11 odkazů interwiki, které jsou nyní dostupné na Wikidatech (d:q1329550) |
Překlad ze stejnojmenného článku na wikipedii značka: editace z Vizuálního editoru |
||
Řádek 2:
{{upravit}}
'''Statická analýza kódu''' je
=== Důvody ===
[[Softwarová metrika]] a [[reverzní inženýrství]] mohou být popsány jako jedny z možných forem softwarové analýzy. Softwarová metrika a statická analýza jsou společně použity zejména při tvorbě vestavěných ([[embedded]]) systémů, definující tzv. kvalitu softwarových cílů.
Nárůst komerčního použití statické analýzy nastal z důvodů potřeby ověření vlastností programů používaných v [[počítačové systémy|počítačových systémech]], které jsou z hlediska [[Počítačová bezpečnost|počítačové bezpečnosti]] zranitelné. Například následující průmyslová odvětví používají statickou analýzu kódu jako prostředek ke zlepšení kvality stále náročnějších a složitějších programů.
# '''Zdravotnický software''': The U.S. Food and Druh Administration (FDA) identifikovala použití statické analýzy pro zdravotnická zařízení.
# '''Nukleární software''': Ve Velké Británii Healt and Exevutice doporučuje použití statické analýzy k ochraně systémů jaderných reaktorů.
# '''Letecký software''' (v kombinaci s dynamickou analýzou).
Studie provedená VDC Research z roku 2012 říká, že v současné době 28,7% embedded software inženýrů využívá nástrojů pro statickou analýzu a
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.
* '''Jednotková úroveň (Unit Level)''' - Analýza, která je vykonávána v rámci určitého programu nebo [[Podprogram|podprogramu]], bez připojení do kontextu tohoto programu.
* '''Technologická úroveň (Technology Level)'''
<nowiki> </nowiki>- Analýza, zkoumá interakce mezi jednotlivými částmi programu, aby získala pohled na celkovou strukturu programu s cílem nalézt chyby a vyhnout se tak budoucím problémům.
* '''Systémová úroveň (System Level)''' - Analýza, která zkoumá interakce mezi jednotlivými částmi programu, ale nezávisle na použitém [[Programovací jazyk|programovacím jazyce]] nebo použité technologii.
* '''Úč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.[[Kategorie:Softwarové inženýrství]]
|