PETR, L. Vizualizace výsledků statického porovnávání sémantické ekvivalence různých verzí software v jazyce C [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.

Posudky

Posudek vedoucího

Vojnar, Tomáš

Celkově se jedná o velmi dobře zvládnuté zadání. Student prokázal technické schopnosti na dobré úrovni a výsledek jeho práce významným způsobem vylepšuje možnosti nasazení nástroje DiffKemp v praxi. Proto navrhuji hodnotit práci známkou B (velmi dobře).

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Cílem práce bylo navrhnout a implementovat nový způsob vizualizace výsledků analýzy sémantických rozdílů mezi verzemi průmyslového software, které jsou výstupem nástroje DiffKemp. Jedná se o průměrně náročné zadání, hlavní složitost spočívala v tom, že výstup DiffKempu je poměrně komplikovaný a jeho kompaktní zobrazení není triviální. Práce navíc zahrnovala nutnost vytvoření nového formátu výstupu z nástroje, a proto bylo nutné nastudovat některé principy, na nichž tento nástroj, vyvíjený ve výzkumné skupině VeriFIT ve spolupráci s firmou Red Hat, staví. Zadání považuji za splněné, řešení byo dovedeno do stavu, kdy budou vyžadovány minimální úpravy pro jeho nasazení do praxe.
Práce s literaturou Vzhledem k charakteru zadání zahrnovala práce se zdroji primárně průzkum existujících technologií pro vizualizaci změn ve zdrojových kódech. Student odvedl dobrou práci, kdy prozkoumal vícero možností, z nichž vybral ty nejvhodnejší pro jeho případ.
Aktivita během řešení, konzultace, komunikace Během celého řešení byl student aktivní, účastnil se pravidelných konzultací a téměr vždy představil nové poznatky či pokrok v práci.
Aktivita při dokončování Implementace byla dokončena se značným předstihem, díky čemuž byl dostatek času na napsání textu práce, který byl k dispozici pro několik fází připomínkování.
Publikační činnost, ocenění Část vytvořeného řešení je v této době již součástí hlavní vývojové větve nástroje DiffKemp, zbytek je aktuálně ve formě otevřeného pull requestu a s největší pravděpodobností bude brzy začleněn. Zároveň bude toto řešení základem pro nasazení nástroje DiffKemp ve společnosti Red Hat.
Navrhovaná známka
B
Body
85

Posudek oponenta

Fiedor, Tomáš

Práci pana Petra Lukáše hodnotím jako dobrou. Na práci hodnotím pozitivně, že bude značně usnadňovat práci při analýze sémantických změn v linuxových jádrech ve firmě RedHat a je současně stavěna na dobře zavedených principech a vývojových platformách. Na druhou stranu, text práce mohl být více doladěn jak po jazykové tak obsahové stránce.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání považuji za průměrně obtížné: cílem je vytvořit uživatelské prostředí pro nástroj, který analyzuje sémantické rozdíly mezi různými verzemi programů, přičemž zadání nevyžaduje detailní pochopení principů jak tato analýza funguje, a pouze pracuje s jejími výstupy.
Rozsah splnění požadavků zadání Zadání splněno bez výhrad.
Rozsah technické zprávy Práce čítá 39 vysázených stran (tzn. cca 60 normostran), je v obvyklém rozmezí a neobsahuje vatu.
Prezentační úroveň technické zprávy 70 Práce je dopře strukturovaná a kapitoly na sebe navazují. K struktuře však mám dvě podstatné výhrady: (1) práce popisuje některé technologie, které nejsou natolik stěžejní (např. javascript, npm, nebo jpx), a současně (2) práce nedostatečně prozkoumává alternativy ke zvolené vývojové platformě React (např. vue.js, Angular, apod). Popis technologií pro vykreslování rozdílů mezi různými verzemi je poměrně strohý: popisuje pouze dvě React komponenty, a nezmiňuje další jiné alternativy (např. vytvoření vlastní implementace, nebo jiné flexibilní formáty nebo visualizační knihovny). Některé sekce (hlavně u teoretického základu) by bylo vhodnější ilustrovat příklady.
Formální úprava technické zprávy 60 Typografická a jazyková stránka práce je poměrně slabá. Práce obsahuje (1) řadu anglikanismů (např. snapshot místo snímek, diff místo rozdíl), (2) drobné chybky (např. ojediněle chybné použití čárek, nebo v gramatice), nebo, (3), místy nevhodné formulace textu. Dále pak obsahuje drobné typografické prohřešky nebo nedostatky, jako je (1) nedostatečné zvýraznění klíčových pojmů (např. programy jako je make   nebo anglické výrazy, by zasloužily zvýraznit), nebo (2) špatné zarovnání čísel v tabulkách (nejsou zarovnány napravo, tak aby šly porovnat řády). Současně bych doporučil držet se striktně technického popisu (tzn. vyhnout se formulacím jako je "myslím, že", nebo "bude se hodit"). Chválím sekci s analýzou požadavků; na druhou stranu bych ale doporučil požadavky lépe označit než jen čísly (např. P_CG , P_LIST ).
Práce s literaturou 80 Práce cituje 20 zdrojů. Porušení citační etiky jsem nezaznamenal. Práce mohla důkladněji popisovat alternativní řešení a jiné možné vývojové platformy.
Realizační výstup 85 Realizační výstup je v pořadků, zkomplilovatelný a funkční. Řešení bylo osobně předvedeno. Řešení je bez pochyby lepší než původní výstup nástroje diffkemp a věřím, že bude brzy zakomponováno v hlavní větvi projektu. Doporučil bych práci rozširit o drobné QoL  zlepšení: např. filtrování funkcí nebo zdůraznění rozsahu nalezených změn u jednotlivých funkcí. Kód je dobře komentovaný. Řešení je v recenzním řížení v hlavní větvi projektu diffkemp ve formě tzv. Pull Request ,.
Využitelnost výsledků Práce je řešena v rámci projektu diffkemp , který je používán ve firmě RedHat pro analýzu sémantických změn v linuxových jádrech. Očekává se, že bude práce v brzké době zakomponována v hlavní větvi projektu a bude dále využívána i rozvíjena.
Navrhovaná známka
C
Body
75

Otázky

eVSKP id 144949