bakalářská práce

Statická analýza v nástroji Facebook Infer zaměřená na analýzu výkonnosti

Text práce 1.25 MB

Autor práce: Ing. Ondřej Pavela

Ak. rok: 2018/2019

Vedoucí: doc. Mgr. Adam Rogalewicz, Ph.D.

Oponent: doc. Ing. Ondřej Lengál, Ph.D.

Abstrakt:

Statická analýza se v současnosti dostává do popředí v oblasti technik pro odhalování chyb v moderním software. Nedostatečná škálovatelnost, především v kombinaci se zachováním potřebné přesnosti, je však přetrvávající problém u většiny současných nástrojů pro statickou analýzu, což je činí nepoužitelnými v případě rozsáhlého a často se měnícího kódu. Efektivní statické analyzátory, jako například Coverity nebo Code Sonar, jsou navíc často proprietární a není tedy možné je jednoduše rozšířit nebo srovnávat jejich výsledky. Oproti tomu Facebook Infer nabízí open source rámec s důrazem na kompoziční, inkrementální, a v důsledku i škálovatelnou inter-procedurální statickou analýzu. Tato práce představuje Looper --- nový analyzátor zaměřující se na analýzu výkonnosti, přesněji na analýzu mezí, rozšiřující rámec nástroje Facebook Infer. Implementace našeho analyzátoru je založena na existujícím nástroji Loopus, který se zaměřuje na přesnou analýzu mezí. Výsledný prototyp jsme otestovali na dvou různých testovacích sadách a povzbudivé výsledky srovnali s existujícím analyzátorem Cost, který je vyvíjen Infer týmem.

Klíčová slova:

statická analýza, abstraktní interpretace,výkonnostní analýza, analýza mezí,amortizovaná složitost, Loopus, OCaml

Termín obhajoby

10.06.2019

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaAznamka

Klasifikace

A

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm "A".

Otázky u obhajoby:

  1. Jaký je nejsložitější program, jehož složitost se Vám prostřednictvím Vaší implementace podařilo přesně odvodit?
  2. Jakým způsobem by bylo možné použít Váš plugin v procesu vývoje software?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (IT-BC-3)

Studijní obor

Informační technologie (BIT)

Složení komise

prof. Ing. Tomáš Vojnar, Ph.D. (předseda)
prof. Ing. Jan M. Honzík, CSc. (místopředseda)
Ing. František Grézl, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Aleš Smrčka, Ph.D. (člen)

Známka navržená vedoucím: A

Soubor vložený vedoucím Velikost
Hodnocení vedoucího [.pdf] 86,39 kB

Známka navržená oponentem: A

Soubor vložený oponentem Velikost
Posudek oponenta [.pdf] 87,68 kB

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová