Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Petr Němec
Acad. year: 2025/2026
Supervisor: Ing. Daniel Snášel
Reviewer: doc. Mgr. Kamil Malinka, Ph.D.
The goals of this work is to extend the capabilities of the tool named Clusty and add XML, PHP, and Bash formats to the already supported formats. The tool clusters and automatically analyzes individual file formats. Both the Clusty tool and the proposed extension are implemented in Python and C++. A new parser was created for analyzing samples in XML format. The existing parser was extended to analyze samples in PHP and Bash formats.
cluster analysis, static analysis, XML, PHP, Bash, Clusty, shell
Date of defence
19.06.2026
Date of publish
18.06.2031
Result of the defence
Defended (thesis was successfully defended)
Grading
C
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných, např. ohledně detailů k rozlišování silných a slabých identifikátorů. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C - dobře.
Topics for thesis defence
Language of thesis
Czech
Faculty
Fakulta informačních technologií
Department
Department of Intelligent Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. Dr. Ing. Otto Fučík (předseda) doc. Mgr. Kamil Malinka, Ph.D. (místopředseda) Ing. Marta Jaroš, Ph.D. (člen) Ing. Vladimír Veselý, Ph.D. (člen) Ing. David Bařina, Ph.D. (člen)
Supervisor’s reportIng. Daniel Snášel
Cíle zadání byly splněny v plném rozsahu — student rozšířil produkční nástroj Clusty o podporu tří nových formátů (XML, PHP, Bash), implementoval interní i externí identifikaci a empiricky vyhodnotil sadu shlukovacích metod nad reálnými daty v řádu desítek tisíc vzorků. Výsledné rozšíření bylo úspěšně nasazeno do produkce GenDigital Inc.
K průběhu práce mám jednu dílčí výhradu, která vyplynula i z konzultací: v závěrečné fázi se některé podnětné návrhy konzultanta (např. získávání dalších atributů, které by zpřesnily shlukování) již nestihly zapracovat a byly odsunuty mezi možná budoucí rozšíření. Vzhledem k tomu, že se nejednalo o koncepčně náročné změny, mohly být při lepším časovém rozvržení realizovány a kvalitu výsledku dále posunout. Nejde o kritický nedostatek, jde však o aspekt, který srážel jinak velmi solidní provedení.
Celkově se jedná o bakalářskou práci s reálným produkčním dopadem. Práci doporučuji k obhajobě a hodnotím známkou B/C.
Hodnocení bylo vypracováno po dohodě s konzultantem společnosti GenDigital Inc. Zadání bylo náročnější povahy a částečně navazuje na bakalářskou práci Michala Planičky (FIT VUT, 2018/19), jejíž analyzátor skriptů bylo nutné rozšířit o nové formáty. Student se musel detailně seznámit s produkčním nástrojem pro shlukovou analýzu souborů (zpracovávajícím jednotky milionů vzorků denně), doplnit podporu pro tři nové formáty (XML, PHP a Bash) a vše důkladně otestovat. Práce kombinuje dva implementační jazyky. Analýza souborů byla implementována v jazyce Python, výpočetně náročnější část (shlukování) pak v jazyce C++.
Student aktivně pracoval s doporučenou literaturou, využíval i další studijní materiály.
Student pravidelně konzultoval svou práci s vedoucím i externím konzultantem ze společnosti GenDigital Inc. Student na schůzky docházel připraven s konkrétními otázkami i s funkčními ukázkami implementace.
Implementační část byla dokončena v posledním měsíci řešení. Výsledná implementace byla otestována a nasazena do testovacího i produkčního prostředí společnosti GenDigital Inc. Text i výsledná práce byly konzultovány, ale nedostatek času se projevil na finální podobě práce.
Grade proposed by supervisor: B
Reviewer’s reportdoc. Mgr. Kamil Malinka, Ph.D.
Práce má prakticky relevantní realizační výstup a pozitivně hodnotím zejména to, že část řešení již byla nasazena do produkce a další část je k produkčnímu nasazení připravována. To ukazuje, že výstup práce má reálné využití.
Technická zpráva však trpí významnějšími nedostatky v metodickém popisu, struktuře a zdůvodnění návrhových rozhodnutí. Některé pasáže jsou nadměrně zaměřeny na technické detaily nebo převzaté informace z dokumentace, zatímco klíčová logika řešení, volba atributů, smysl pravidel a způsob ověření výsledků nejsou popsány dostatečně. Problematický je také nesoulad mezi teoretickým výkladem shlukové analýzy a skutečně použitým postupem v praktické části.
Celkově jde o práci s použitelným realizačním výstupem, ale se slabší technickou zprávou, zejména v oblasti metodiky, struktury výkladu, dokumentace a validace řešení.
Evaluation level: průměrně obtížné zadání
Zadání považuji za průměrně obtížné. Jedná se o implementační práci s jasně ohraničeným rámcem. Práce vyžadovala seznámení s analyzovanými datovými formáty, návrh pravidel pro jejich zpracování a implementaci řešení použitelného v praktickém provozu.
Technická zpráva je srozumitelná, zejména v obecném výkladu teoretických částí. Některé pasáže teorie o shlukové analýze by však bylo vhodné doplnit vizualizacemi nebo rovnicemi, které by čtenáři usnadnily pochopení popisovaných principů.
Výraznější výhrady mám ke struktuře a návaznosti kapitol. Návrhová část se obtížně čte, nemá dostatečně jasnou strukturu a autor často přechází mezi různými úrovněmi abstrakce. Více prostoru je věnováno technickým detailům implementace, například způsobu spouštění interpretu PHP, zatímco vnitřní logika řešení, motivace volby pravidel a důvody konkrétních návrhových rozhodnutí jsou popsány nedostatečně.
Autor používá obecné formulace typu, „bude vytvořena řada pravidel", ale bez hlubší analýzy toho, jaký je jejich cíl, proč byla zvolena právě tato pravidla a jaký mají vztah k řešenému problému. Nevhodné strukturování kapitol a slabší návaznost jednotlivých částí snižují přehlednost práce.
Po formální stránce práce obsahuje drobné typografické a jazykové chyby a překlepy. V textu jsou také nesrovnalosti v odkazování, například nejednotné používání označení diagram a obrázek.
Realizační výstup je na velmi dobré úrovni, Vše mi bylo prezentováno. Pozitivně hodnotím, že část práce již byla integrována do produkčního prostředí a zbytek je testován ve firmě a připravuje se k přesunu do produkce. Výsledek shlukování je analytiky považován za dobrý.
Z technického hlediska je implementace shlukovací části založena na velmi jednoduchém principu. V teoretické části autor poměrně rozsáhle popisuje metody shlukové analýzy, avšak v praktické části není žádná metoda shlukování v tomto smyslu reálně aplikována. Provedený postup odpovídá spíše prostému seskupení záznamů podle shodné hodnoty vybraného atributu, nikoliv shlukové analýze založené na míře podobnosti mezi objekty. Tím vzniká nesoulad mezi teoretickým vymezením práce a skutečně použitou metodou.
Výhrady mám ke kvalitě dokumentace a komentování zdrojového kódu. Dobře komentované jsou pouze některé části kódu, zatímco zbytek je bez dokumentace i komentářů. U řešení určeného do produkčního prostředí to považuji za problém, protože to komplikuje údržbu, předávání a další rozvoj řešení.
Autor stručně popisuje testování výkonnosti, ale bez potřebných detailů. Není jasné, odkud pocházely použité vzorky, jaká byla jejich struktura ani jak dobře reprezentují reálná data. Známý je pouze jejich počet. Některé volby jsou zdůvodněny pouze tím, že je autor posoudil odhadem. V práci se také objevuje argumentace nízkou vypovídací hodnotou, ale není dostatečně vysvětleno, co tento pojem v daném kontextu znamená. Podobně je zmíněna implementace jednotkových testů, ale bez bližšího popisu jejich rozsahu a zaměření.
Výsledky práce mají praktickou využitelnost, což dokládá i skutečnost, že část řešení již byla integrována do produkce a další část je testována ve firmě.
Evaluation level: zadání splněno
Práce splnila všechny body zadání ve velmi dobré kvalitě. Pozitivně hodnotím praktické nasazení v reálném provozu.
Evaluation level: splňuje pouze minimální požadavky
Ačkoliv technicky je rozsah zprávy dostatečný, jednotlivé části nejsou z hlediska informační hodnoty vyvážené. Zejména kapitola 4 má přibližně 20 stran, tedy zhruba třetinu rozsahu celé práce, a do značné míry představuje reformulaci technických informací z dokumentace k jednotlivým formátům. Většina těchto informací není dále v práci využita a nepovažuji je za podstatné pro vlastní řešení. Tato část proto působí nadměrně rozsáhle a uměle navyšuje délku technické zprávy. Obdobnou výtku lze mít k části věnující se teorii shlukové analýzy, která pozbývá smyslu primárně kvůli výsledné volbě seskupení dle shodné hodnoty atributu.
Naopak, části věnované vlastní logice návrhu, volbě atributů pro třídění, významu jednotlivých pravidel a ověření výsledků jsou zpracovány stručněji než by odpovídalo jejich významu pro práci.
Počet referencí je spíše menší a přibližně třetinu z nich tvoří dokumentace k PHP. Použité zdroje tedy pokrývají část technických aspektů implementace, ale práce by zasloužila širší oporu v odborných zdrojích, zejména v částech věnovaných shlukování, návrhu metodiky a vyhodnocení zvoleného postupu.
Grade proposed by reviewer: C
Reasons for publication postponement
Publication of the final thesis has been postponed in compliance with the provisions of Section 47b (4) of Act No. 111/1998 Coll., on the Higher Education Institutions and on amendments and supplements to other acts, as amended.
Responsibility: Mgr. et Mgr. Hana Odstrčilová