VÁCLAVÍK, J. Instrumentace programů pro měření pokrytí [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.
Jan Václavík k projektu přistupoval velmi zodpovědně a s jeho postupem jsem byl párkrát příjemně překvapen.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Informace k zadání | Cílem práce bylo umožnit uživatelsky jednoduchou instrumentaci programů během překladu překladačem Gcc. Nejtěžší částí bylo studium interních datových struktur a procesů překladu v Gcc. | ||
Práce s literaturou | Student si většinu zdrojů našel sám. | ||
Aktivita během řešení, konzultace, komunikace | Student byl aktivní po celou dobu vypracování projektu. Na pravidelné konzultace chodil připravený a se znatelným pokrokem. | ||
Aktivita při dokončování | Práce byla dokončena v dostatečném předstihu a měl jsem možnost ovlivnit její konečnou podobu. | ||
Publikační činnost, ocenění |
Tato práce je špatně zdokumentovaná, ale programová část je funkční a má odpovídající kvalitu. Zadání nebylo zcela splněno s ohledem na bod 3. Nicméně, vzhledem k náročnějšímu zadání, celkově hodnotím tuto práci stupněm uspokojivě/ D .
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Náročnost zadání | Tato práce je zaměřena na vytvoření pluginu do GCC, který do kódu překládaného programu přidává volání speciálních instrumentačních funkcí. Vzhledem k nutnosti prostudovat interní detaily překladače GCC hodnotím tuto práci jako mírně obtížnější. | ||
Rozsah splnění požadavků zadání | Bod 3 zadání požaduje implementaci kódu pro počítání pokrytí, ale autor nic takového neřeší, pouze generuje potřebná data ve formátu JSON do speciálního souboru. Předpokládám, že napsání skriptů pro analýzu pokrytí by nebylo příliš složité, proto to nepovažuji za zcela zásadní problém. | ||
Rozsah technické zprávy | Bakalářská práce má přes 50 vysazených stran, což je vyhovující z hlediska rozsahu. | ||
Prezentační úroveň technické zprávy | 55 | Text práce je strukturován vyhovujícím způsobem, ale jeho srozumitelnost je velmi slabá. Autor zcela vynechal podrobný popis použitých instrumentačních funkcí a především jejich parametrů. Naopak zbytečně popisuje běžné a jednoduché věci. Proto je vysvětlování jednotlivých operací špatně pochopitelné. Navíc jsou v textu chyby - viz např. strana 29 nahoře, kde __temp ukazuje na inkrementovanou proměnnou a *__temp++ tento ukazatel posune a tím zneplatní. Nicméně můj test implementace žádnou takovou chybu neodhalil, jde tedy jen o problém v dokumentaci. Celkově hodnotím tuto část jako značně podprůměrnou. | |
Formální úprava technické zprávy | 60 | Typografická i jazyková úroveň textu je podprůměrná, autor běžně používá hovorové výrazy a narazil jsem i na několik podivných formulací a překlepů - např. strana 25 obsahuje minimálně 4 případy, první věta 3. odstavce na str. 49 nedává smysl, atd. V textu je také mnoho výčtů bez odpovídajícího popisu položek - viz např strany 22 a 23. | |
Práce s literaturou | 75 | Výběr použité literatury je vyhovující. Umístění citací je někdy nevhodně až na konci odstavce. | |
Realizační výstup | 77 | Plugin je funkční (ověřeno s GCC 9). Zdrojové kódy mají rozsah cca 1200 řádků + 400 řádků příkladů v jazyku C a jsou dobře komentované. Není jasná licence ke zdrojovým kódům. Chybí programy pro testování pokrytí, které požaduje bod 3 zadání. Makefile přiložený k testům je velmi nestandardní - musí se mu předat proměnná se jménem překládaného testu a výsledek překladu má vždy stejné jméno - to je zcela nevhodné. Stejně je na tom i Makefile v adresáři s příklady (ty jsou navíc prakticky zcela shodné s testovacími příklady a jde tedy o zbytečnou duplikaci kódu). | |
Využitelnost výsledků | Výsledek této práce pravděpodobně bude po menších úpravách použitelný k instrumentaci kódu. |
eVSKP id 142733