Bachelor's Thesis

Extending the capabilities of file format analysis

Author of thesis: Petr Němec

Acad. year: 2025/2026

Supervisor: Ing. Daniel Snášel

Reviewer: doc. Mgr. Kamil Malinka, Ph.D.

Abstract:

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.

Keywords:

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)

znamkaCznamka

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

  1. Na základě čeho jste určoval silné a slabé indikátory? Proč je například CASE_MODIFIER silným indikátorem, zatímco FUNCTION_DEF nikoliv?

Language of thesis

Czech

Faculty

Department

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 report
Ing. 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.

Evaluation criteria Verbal classification
Informace k zadání

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++. 

Práce s literaturou

Student aktivně pracoval s doporučenou literaturou, využíval i další studijní materiály.

Aktivita během řešení, konzultace, komunikace

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.

Aktivita při dokončování

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.

Publikační činnost, ocenění
Points proposed by supervisor: 80

Grade proposed by supervisor: B

Reviewer’s report
doc. 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 criteria Verbal classification Points
Náročnost zadání

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.

Prezentační úroveň technické zprávy

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.

65
Formální úprava technické zprávy

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.

75
Realizační výstup

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í.

85
Využitelnost výsledků

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ě.

Rozsah splnění požadavků zadání

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.

Rozsah technické zprávy

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.

Práce s literaturou

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.

65
Topics for thesis defence:
  1. Na základě čeho jste určoval silné a slabé indikátory? Proč je například CASE_MODIFIER silným indikátorem, zatímco FUNCTION_DEF nikoliv?
Points proposed by reviewer: 75

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á