NEČAS, F. Aplikace formálních metod v analýze sémantických rozdílů mezi verzemi software [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Malík, Viktor

Overall, this is a high-quality thesis on a complex assignment. The student has demonstrated skills at the level of a PhD student - the ability to independently develop advanced algorithms and methods, explore related work, and write a text adhering to high scientific standards. I also appreciate his time management skills and additional tasks that he fulfilled - contributing to a journal paper on DiffKemp and preparing a formal verification tool 2LS for an international competition. With respect to all of the above, I propose to evaluate the thesis with the grade A and suggest the committee to consider further awards.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání The thesis integrates formal methods into the DiffKemp tool, which is a tool applying advanced static program analysis techniques for checking program equivalence. The tool has been developed by the VeriFIT research group in cooperation with Red Hat. The complexity of the assignment itself is above average since it required to study and understand a complex research project (both the implementation and the related publications), advanced formal methods techniques (SMT solving), and propose and implement a novel approach integrating SMT solving into DiffKemp. The thesis has succeeded to fulfill the assignment and significantly improves the capabilities of DiffKemp in terms of analyzing complicated code refactorings. At the same time, the thesis is a solid base for future work and research.
Práce s literaturou The student has used the recommended literature sources as well as he was able to find additional sources by himself. He has well explored the relevant related work.
Aktivita během řešení, konzultace, komunikace The student was very active during the entire academic year, we had regular weekly meetings where he almost every time presented new progress with the thesis.
Aktivita při dokončování The activity of the student has been exemplary. He has finished the implementation in great advance and left sufficient time to perform experiments and write the thesis text which I had the opportunity to review several times. Overall, I am very satisfied with the student's approach.
Publikační činnost, ocenění The work has been presented at the student conference Excel@FIT 2024. At the same time, the student has helped with preparing a journal version of a research paper on DiffKemp which is to be submitted to the TOSEM journal (Q1). In addition, as already mentioned, the thesis is a good basis for further research which could potentially result in a publication on an international scientific conference. I'd also like to mention that František has been collaborating with me since his bachelor study on a different tool for formal verification of C programs called 2LS. Despite switching to a different topic for his Master's thesis, he still managed to help preparing 2LS for this year's volume of International Competition on Software Verification 2024.
Navrhovaná známka
A
Body
100

Posudek oponenta

Vojnar, Tomáš

Zadání práce je náročnější a má výzkumný charakter. Student zadání jednoznačně splnil, přičemž v rámci práce přispěl k připravovanému časopiseckému článku a vytvořil také východisko k dalšímu výzkumu. Student také našel několik, nyní již opravených chyb v nástroji DiffKemp i v jedné ze sad vzorových testovacích příkladů z dané oblasti, používaných v mezinárodním kontextu. Technická zpráva i realizační dílo jsou velmi kvalitní. Student rovněž prezentoval svou práci na studentské konferenci Excel@FIT 2024.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání hodnotím jako obtížnější, protože má výzkumný charakter a kombinuje práci s nízko-úrovňovým systémovým kódem (Linuxové jádro, knihovny jazyka C apod.), infrastrukturou překladačů, statickou analýzou i rozhodovacími procedurami pro SMT problémy. 
Rozsah splnění požadavků zadání Zadání práce bylo jednoznačně splněno.
Rozsah technické zprávy Technická zpráva není objemově nejrozsáhlejší, ale obsahuje jasný popis všeho podstatného. Stručnost v tomto případě hodnotím pozitivně.
Prezentační úroveň technické zprávy 92 Technická zpráva je strukturována logicky, jednotlivé kapitoly a sekce na sebe dobře navazují a mají vhodně zvolený rozsah. Text je až na několik výjimek technicky přesný, velmi dobře čitelný a doprovozený dobře zvolenými ilustračními příklady. Zmíněné drobné výjimky jsou z mého pohledu dvě: (1) Na straně 17 v bodě 1 mi není jasné, co jsou „sequential code blocks“ a jaká je jejich vazba na základní bloky kódu. (2) V popisu zakódování dotazů na ekvivalenci zvolených bloků kódu do formy SMT problému na konci úvodní části sekce 4.2 (strana 20) by zřejmě měla být nějakým způsobem zajištěna disjunktnost proměnných, s nimiž se pracuje (a která je pak zajištěna příslušným indexováním v příkladu v sekci 4.2.3). Tyto nedostatky nicméně považuji za drobné a současně se vztahující na náročnější pasáže popisu.
Formální úprava technické zprávy 95 Technická zpráva je psána anglicky, a to na velmi vysoké úrovni, jen s minimem chyb (nakolik jsem schopen to posoudit). Rovněž typograficky je technická zpráva na velmi dobré úrovni.
Práce s literaturou 95 Výběr studijních pramenů je vhodný, zdroje jsou vhodně citovány (snad jen na straně 24 mohla být příslušná citace umístěna uvnitř věty, ne mimo ni).
Realizační výstup 98 Realizační výstup je na velmi vysoké úrovni. Vysoce také oceňuji rozsáhlé experimenty, které byly provedeny k vyhodnocení výsledku a které rovněž vedly k nalezení a opravě chyb jak v rozšiřovaném nástroji DiffKemp, tak v jedné z použitých a mezinárodně známých sad testovacích příkladů.
Využitelnost výsledků Práce významně rozšiřuje soubor metod používaných nástrojem DiffKemp pro ověřování sémantické shody rozsáhlých nízko-úrovňových programů, které prošly refaktorováním. Nástroj DiffKemp je jedním z klíčových výzkumných projektů mezi společností Red Hat a univerzitami (zejména, ale nejen FIT VUT). Nástroj ještě není prakticky nasazen, ale je zde solidní naděje, že k tomu dojde. Nástroj posouvá hranice poznání v oblasti posuzování sémantické shody na rozsáhlém systémovém kódu. Studentem vytvořené rozšíření sice nerozřešilo velký počet reálných změn v kódu, které dosud DiffKemp nezvládnul, ale několik takových reálných případů se objevilo. Jedná se přitom o první krok k nalezení vhodného způsobu kombinace „leightweight“ přístupů používaných nástrojem DiffKemp jako primárních s „heavyweight“ přístupy, které méně škálují, ale zvládnou ověřit výraznější změny kódu. Další výzkum v této oblasti je předpokládán, včetně studentovy účasti na něm. Student svou prací a experimenty s nástrojem DiffKemp současně přispěl k dokončovanému článku o metodách stojících za nástrojem DiffKemp, který bude zaslán do časopisu ACM TOSEM, WoS IF Q1/AIS Q2 (se studentem jako spoluautorem).
Navrhovaná známka
A
Body
95

Otázky

eVSKP id 157112