BERÁNEK, T. Evaluating Reliability of Static Analysis Results Using Machine Learning [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Vojnar, Tomáš

Navrhuji hodnocení stupněm A s ohledem na obrovský objem odvedené kvalitní práce, za vysokou samostatnost a kreativitu projevenou studentem a v neposlední řadě také za dosažení výsledků, které mají dle mého názoru velmi dobrý publikační potenciál. Současně bych rád práci navrhnul na některé z možných ocenění za diplomovou práci.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Zadání práce považuji za výrazně nadprůměrně obtížné. Zadání kombinovalo aspekty jak z oblasti nízko-úrovňového programování, statické analýzy programů, tak i strojového učení. Student procházel dlouhou řadou kroků, u kterých nebylo jasné, jak je vhodně řešit a k jakým výsledkům povedou. Pro mě jako vedoucího to byla asi nejnapínavější práce, jakou jsem za mnoho let vedl. Jsem velmi rád, že nakonec vedla k úspěšnému zakončení. Se zaměřením práce přišel sám student, následně se zjistilo, že o jeho práci má zájem Red Hat a jeho mateřská společnost IBM, konkrétně výzkumné centrum IBM Watson, které v dané oblasti provádí aktivní výzkum (a jedná se o špičku v oblasti AI). Komunikace s IBM bohužel ale nefungovala k naší spokojenosti, a nakonec se student rozhodl pracovat samostatně, jen s menší podporou ze strany Red Hat.
Práce s literaturou Student byl schopen samostatně vyhledávat, nastudovat a využít příslušné studijní zdroje, včetně výzkumných článků na jedné straně a dokumentace různých nástrojů na straně druhé.
Aktivita během řešení, konzultace, komunikace Náročnost zadání se ukázala natolik vysoká, že se student po prvním roce systematické práce rozhodl dobrovolně prodloužit svou práci o další rok. Po celé dva roky se student své práci poctivě věnoval, chodil na pravidelné konzultace a pečlivě prezentoval své kroky, dílčí úspěchy i neúspěchy (bylo nutno projít různé slepé uličky).
Aktivita při dokončování Práce byla dokončována v dostatečném předstihu na to, abych byl schopen řádně komentovat připravovanou technickou zprávu.
Publikační činnost, ocenění Práce byla prezentována na studentské soutěži Excel@FIT 2024, kde získala jedno z ocenění Odborným panelem. Obsah práce si navíc zaslouží dle mého názoru publikaci na kvalitní mezinárodní konferenci, minálně formou článku o nástroji či rozšířeného článku o nástroji. Na tom, že takovou publikaci sepíšeme, jsme se studentem již dohodli.
Navrhovaná známka
A
Body
95

Posudek oponenta

Fiedor, Jan

Práce je excelentní ve všech ohledech, od detailního a precizního návrhu, přes jeho realizaci a evaluaci, až po výbornou typografickou a jazykovou úpravu technické zprávy. Navrhuji zvážit ocenění práce.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Práce se zabývá aplikací grafových neuronových sítí (GNN) na problém klasifikace chyb nahlášených nástrojem pro statickou analýzu Meta Infer. Cílem je určit pravděpodobnost s jakou je náhlášená chyba reálnou chybou (true positive) a umožnit tak lépe odfiltrovat falešné chyby (false positives) seřazením hlášení podle pravděpodobnosti, že jsou reálnou chybou. Ke splnění cíle práce bylo potřeba nastudovat velké množství technologií a navrhnout komplexní architekturu propojující tyto technologie do funkčního řešení. Nestačilo navíc jen propojit jednotlivé technologie, významnou částí práce bylo navrhnout proces transformace zdrojových kódů analyzovaných nástrojem Meta Infer do podoby Extended Code Property grafů (ECPG) vhodných jako vstup pro grafové neuronové sítě.
Rozsah splnění požadavků zadání
Rozsah technické zprávy Práce má přes 160 normostran, do velké míry díky 50 normostran dlouhé sekci 4.1.4, jenž detailně popisuje proces adaptace hrubého (raw) ECPG grafu do formátu TFRecord podporovaného knihovnou TensorFlow. Tuto část lze pokládat za jednu z nejdůležitějších částí (a přínosů) práce a je více než opodstatněná. Celkově nelze v práci najít snad jediný úsek textu, u kterého by šlo řící, že je zbytečný a mohl by být vynechán.
Prezentační úroveň technické zprávy 95 Práce má výbornou logickou strukturu, kapitoly na sebe přirozeně navazují a provázejí čtenáře od návrhu celé architektury, přes její implementaci, až k celkové evaluaci navrženého řešení. Nejrozsáhlejší části práce je kapitola 4, která tvoří asi polovinu rozsahu technické zprávy, a podrobně rozebírá návrh celé architektury. Tuto kapitolu pokládám za stežejní část práce, jelikož implementace při takto precizním návrhu je již přímočará. Na struktuře technické zprávy hlavně oceňuji výborné provázání jednotlivých kapitol a částí textu v nich. Většina textu práce je doplněna odkazy na související části práce, což při komplexnosti návrhu a rozsahu práce velmi usnadňuje čtenáři rychle dohledat relevantní informace důležité pro pochopení daného textu.
Formální úprava technické zprávy 95 Práce je psaná v anglickém jazyce a má výbornou typografickou úpravu. Po jazykové stránce obsahuje úplné minimum překlepů, což je při rozsahu technické zprávy impozantní.
Práce s literaturou 95 Technická zpráva se opírá o více než 100 zdrojů, kde velkou část z nich tvoří odborné články a publikace. Student velmi pečlivě nastudoval aktuální (state of the art) řešení a využil je jako inspiraci pro vlastní navržené řešení. Všechny zdroje jsou řádně odcitovány.
Realizační výstup 100 Student vytvořil komplexní technické řešení, kde implementace je jen třešničkou na dortu precizního návrhu. Jako primární realizační výstup pokládám návrh celé architektury, kde dokumentací je rozsáhlá a informačně bohatá kapitola 4 technické zprávy. Navržené řešení je plně funkční, bylo oveřeno na 3 rozsáhlých projektech (httpd, libtiff, nginx) a porovnáno s existujícími řešeními třetích stran i s LLM modelem ChatGPT4.
Využitelnost výsledků Navržené řešení dosahuje výsledků srovnatelných s řešeními firem jako je IBM, má tedy potenciál využití v praxi. Hlavní překážkou pro uplatnění v praxi jsou ale špatné výsledky při cross-analýze, tedy při aplikaci grafové neuronové sítě na jiný projekt, než pro který byla grafová neuronová síť natrénována. S tím ovšem mají problém i všechna ostatní existující řešení. Jelikož všechna stávající řešení nejsou veřejně přístupná, je navržené řešení vhodnou open-source alternativou. Navíc díky detailnímu popisu architektury lze toto řešení jednoduše rozšiřovat a dalé s ním experimentovat. Lze ho tedy s výhodou využít pro řešení problému s cross-analýzou.
Navrhovaná známka
A
Body
98

Otázky

eVSKP id 157228