Ing. Nikolas Jíša

Závěrečné práce

Bakalářské práce

Případová studie zpětně-nekompatibilních změn v softwarových Java knihovnách

Autor
Illia Zaborskyi
Rok
2026
Typ
Bakalářská práce
Vedoucí
Ing. Nikolas Jíša
Oponenti
Ing. Marek Suchánek, Ph.D. et Ph.D.
Anotace
Tato práce se zabývá moderními nástroji pro detekci nekompatibilních změn v Java knihovnách. Nejprve hodnotí existující automatizované nástroje a následně navrhuje vlastní řešení nazvané Hybrid Change Reconciler, které dosahuje vyšší přesnosti klasifikace. Synchronizací výstupů nástrojů APIMiner a RefactoringMiner tento přístup snižuje počet falešně pozitivních výsledků (false positives). Jeho účinnost je ověřena empirickou studií na reálných projektech i na vlastní vyvinuté knihovně.

Případová studie API migrace v softwarových Python knihovnách

Autor
Patrik Martin Hraško
Rok
2026
Typ
Bakalářská práce
Vedoucí
Ing. Nikolas Jíša
Oponenti
Ing. David Šenkýř, Ph.D.
Anotace
Přechody na novější verze používaných knihoven v jazyce Python vytvářejí nejistotu ohledně následné migrační práce, protože potřebné změny v kódu konzumenta nejsou předem známé. Tato práce se zaměřuje na podporu migrace a odhad migrační náročnosti při takových aktualizacích. Pro vybrané přechody mezi hlavními verzemi knihoven v Pythonu je sestavena sada syntetických případů na straně konzumenta. Nástroje AExPy, Pyright a LibCST jsou vyhodnoceny jako zástupci detekce změn na straně knihovny, detekce dopadu na straně konzumenta a podpory automatizovaných oprav. Práce dále navrhuje strukturu odhadu založenou na důkazech, opírající se o revidovaná migrační zjištění a z literatury odvozené dimenze náročnosti. Vyhodnocení ukazuje, že tyto tři nástroje komplementárně snižují různé části migrační zátěže. Strukturální porovnání podporuje vyhledání a třídění problémů, následné diagnostiky lokalizují dotčená místa použití a konzervativní přepis podporuje omezenou podmnožinu opakovaných strukturálních oprav. Navržený odhad seskupuje revidované výskyty porušení do unikátních porušení a shrnuje je pomocí praktických pásem expozice a obtížnosti namísto přímých předpovědí pracnosti v hodinách. Práce přináší reprodukovatelnou sadu případů pro vyhodnocení nástrojů podporujících migraci při vybraných přechodech mezi verzemi knihoven v Pythonu a proxy-založený rámec pro odhad migrační náročnosti v hodnoceném kontextu založený na pozorovatelných důkazech. Tyto přínosy zlepšují transparentnost a předvídatelnost plánování aktualizací v projektech vyvíjených v Pythonu.