KŘÍŽ, D. Automatic Generation of Code Change Patterns [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.

Posudky

Posudek vedoucího

Vojnar, Tomáš

Celkové zvládnutí zadání považuji za podprůměrné, zejména z důvodu slabší implementace a téměř žádného experimentálního ověření. Na druhé straně mají teoretické přínosy práce potenciál zásadně vylepšit schopnosti nástroje DiffKemp v oblasti automatické analýzy sémantických rozdílů v různých verzích průmyslového software. S přihlédnutím k této skutečnosti a k tomu, že se jednalo o náročné zadání převyšující běžný rozsah bakalářské práce, doporučuji komisi připustit práci k obhajobě a hodnotit známkou D (uspokojivě).

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Cílem práce bylo navrhnout a implementovat algoritmus pro automatické odvozování vzorů změn zachovávajících sémantiku pro nástroj DiffKemp. Jelikož se jedná o poměrně rozsáhlý nástroj vyvíjený ve výzkumné skupině VeriFIT, který navíc používá netriviální techniky analýzy programů, považuji toto zadání za nadprůměrně náročné. Student v rámci práce navrhl několik pokročilých algoritmů, nicméně kvůli vyšší náročnosti zadání mu nezůstal dostatek času na důslednou implementaci a experimentování. Většina algoritmů je proto implementována pouze ve formě základního prototypu. Navzdory tomu považuji teoretický přínos práce za dostatečně významný na to, aby mohla být práce obhájena.
Práce s literaturou Student v rámci práce nastudoval poměrně velké množství souvisejících vědeckých článků. Kromě doporučených zdrojů byl schopen sám nalézt další relevantní práce, z nichž mnohé mohou pomoci s rozvojem nástroje DiffKemp i v budoucnu.
Aktivita během řešení, konzultace, komunikace Během celého řešení práce byl student příkladně aktivní a učastnil se pravidelných schůzek, na které byl vždy dobře připraven.
Aktivita při dokončování Bohužel, jak již bylo zmíněno, zejména pokrok v implementační oblasti byl poměrně pomalý, což vedlo k dokončování práce pod značným tlakem. Výsledný text a implementace proto neodpovídají usílí, které student práci věnoval.
Publikační činnost, ocenění Implementace navržených algoritmů bude s největší pravděpodobností časem začleněna do hlavní vývojové větve nástroje DiffKemp.
Navrhovaná známka
D
Body
68

Posudek oponenta

Vašíček, Ondřej

Práce nesplnila bod zadání č. 5 (testování) a bod zadání č. 4 (implementace) nebyl splněn úplně. Nicméně funkcionalita vytvořeného řešení je podle mě stále přínosná. Tyto nedostatky byly způsobeny nedostatkem času při dokončování práce. Na druhou stranu ale byla práce obtížná a kvalita textu práce je velmi dobrá obzvláště na poměry bakalářských prací. Nedostatky z pohledu splnění zadání jsou tedy dle mého názoru prominutelné, ale výrazně snižují hodnocení práce, která by jinak byla na výborné úrovni.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání považuju za obtížnější kvůli intelektuální náročnosti pochopení jednotlivých konceptů a algoritmů.
Rozsah splnění požadavků zadání Bod zadání č. 5 byl splněn jen ve velmi omezené míře formou pár základních automatizovaných testů. Nedošlo tedy k řádnému otestování a neproběhlo otestování na Linuxovém jádře nebo jiných projektech.  Dále funkcionalita samotného výstupu práce je omezená. Bod zadání č. 4 tedy není úplně dotažen dokonce (viz. popis realizačního výstupu níže). Tyto nedostatky byly dle studenta způsobeny nedostatkem času při dokončování a nečekanými komplikacemi během implementace. Výstup této práce je ale podle mého názoru i v takto omezené podobě stále přínosný. 
Rozsah technické zprávy Kapitola o experimentech a vyhodnocení je velmi krátká. Jinak je ale práce v obvyklém rozmezí. 
Prezentační úroveň technické zprávy 95 Práce je velmi dobře strukturovaná a úrovní vyjadřování se blíží k odborným článkům. 
Formální úprava technické zprávy 85 Práce je psána dobrou angličtinou až na pár překlepů a pár výskytů drobných nedostatků (např. chybějící členy "a / the" nebo chybějící "s" na konci slovesa). Z typografického hlediska je práce v pořádku až na pár chybějících nezlomitelných mezer.    
Práce s literaturou 90 Práce se odkazuje na množství relevantních zdrojů včetně řady odborných článků. Bibliografické citace jsou vypracovány vzorně. 
Realizační výstup 55 Zdrojový kód je dobře strukturovaný a dokumentovaný. Bohužel je ale jeho funkcionalita omezená a z pohledu zadání nebyl dostatečně otestován. Předmětem práce bylo automatické generování vzorů změn zdrojového kódu, kde jeden vzor má pokrývat několik podobných změn. Práce tuto funkcionalitu dělí mezi neparametrické vzory změn a parametrické vzory změn. Implementace parametrických vzorů aktuálně ale bohužel nefunguje pro některé případy parametrizace změn konstant. Funkcionalita výstupu práce tedy splňuje zadání jen částečně. Nicméně neparametrické vzory změn fungují a parametrické vzory změn fungují alespoň pro změny typů (oproti změnám konstant). Výstup práce měl být také otestován na Linuxovém jádře nebo na jiném projektu. Toto bohužel nebylo provedeno (nebo to alespoň není v textu práce). Místo toho bylo provedeno jen testování na několika vlastních příkladech. Testování tedy z pohledu zadání splněno nebylo.
Využitelnost výsledků Práce dále rozšiřuje schopnosti nástroje DiffKemp a tedy navazuje na řadu předchozích prací, přínos této práce je ale samostatný (tedy nejedná se jen o rozšíření předchozích prací). Nástroj DiffKemp směřuje k nasazení v praxi a jeho rozšíření touto prací může být tedy také časem prakticky využito. 
Navrhovaná známka
D
Body
60

Otázky

eVSKP id 146333