Přístupnostní navigace
E-přihláška
Vyhledávání Vyhledat Zavřít
bakalářská práce
Autor práce: Bc. Jan Šuman
Ak. rok: 2022/2023
Vedoucí: Ing. Bohuslav Křena, Ph.D.
Oponent: Ing. Ondřej Vašíček
Cílem této práce je navrhnout a implementovat nástroj ve formě GitHub Actions workflow, který usnadňuje provádění statických analýz nad repozitáři v rámci webové služby GitHub a následně poskytuje výsledky těchto analýz ve formátu SARIF (Static Analysis Results Interchange Format). Práce nejprve poskytuje úvod do CI/CD (continuous integration a continuous delivery) platformy GitHub Actions a podrobněji se zabývá jejími základními komponentami. Následuje podrobné představení formátu SARIF, použitých statických analyzátorů a celkového konceptu implementace. Dále je uveden podrobný popis implementace, který umožňuje využití implementovaného workflow jak na úrovni repozitářů, tak na úrovni externích volání. V závěru je využití workflow demonstrováno na repozitářích poskytnutých společností Kyndryl.
GitHub, Actions, workflow, GitHub Actions, Python, SARIF, Static Analysis Results Interchange Format, analýza, statická analýza, analyzátor, statický analyzátor
Termín obhajoby
13.06.2024
Práce bude zveřejněna
13.06.2027
Výsledek obhajoby
obhájeno (práce byla úspěšně obhájena)
Klasifikace
D
Průběh obhajoby
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. 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 D.
Otázky k obhajobě
Jazyk práce
čeština
Fakulta
Fakulta informačních technologií
Ústav
Ústav inteligentních systémů
Studijní program
Informační technologie (BIT)
Složení komise
prof. Ing. Tomáš Hruška, CSc. (předseda) Ing. Šárka Květoňová, Ph.D. (člen) Ing. Bohuslav Křena, Ph.D. (člen) Ing. František Grézl, Ph.D. (člen) Ing. Jiří Matoušek, Ph.D. (člen)
Posudek vedoucíhoIng. Bohuslav Křena, Ph.D.
Z pohledu vedoucího jsem byl se spoluprací se studentem spokojen. K hodnocení stupněm dobře (C) jsem se rozhodl, protože práce určitě patří mezi ty jednodušší, byť to, že student našel jednoduché řešení zadaného problému, je z praktického hlediska vlastně dobře. Asi bych si také dovedl představit důkladnější vyhodnocení implementovaného řešení.
Téma bakalářské pochází z praxe, konkrétně z firmy Kyndryl. Odhadnout obtížnost zadání při jeho formulaci bylo proto poměrně náročné. Nakonec se ukázalo, že zadání práce patří k těm jednodušším. Student tak mohl implementovat jako rozšíření například možnost ukládání výsledků statických analýz ve formátu HTML, která nakonec nebyla do zadání zahrnuta.
Do práce studenta jsem s ohledem na to, že se jednalo o firemní zadání, nemusel příliš zasahovat. Kromě zdrojů, které jsou uvedeny v zadání, si student studijní materiály vyhledal samostatně nebo ve spolupráci s konzultantem či dalšími kolegy z Kyndrylu.
Aktivita studenta odpovídala tomu, že se jednalo o zadání z praxe. Veškeré mé požadavky (zejména na odevzdání a obhajobu semestrálního projektu) student splnil.
Strukturu práce jsme diskutovali v průběhu celého jejího řešení. V závěrečných fázích jsem měl možnost sledovat dokončování technické zprávy prostřednictvím on-line editoru Overleaf. První ucelenou verzi práce jsem připomínkoval a student mé připomínky v odevzdané technické zprávě zohlednil.
Zde si dovolím uvést hodnocení konzultanta Mgr. René Michálka z firmy Kyndryl, které jsem si vyžádal, dokládající význam a užitečnost práce:
Jan Šuman se ve společnosti Kyndryl zaměřuje na aplikovaní statických analýz kódu v sw řešeních na bázi Ansible. Statické analýzy kódu se také využívají v certifikačním procesu, pomocí kterého se vyhodnocuje, zda dané řešení splňuje požadované kvalitativní parametry. Informace o tom, zda dané řešení dosáhlo certifikace, je důležitou informací pro potenciálního uživatele, která pomáhá v rozhodování o nasazení řešení na příslušného zákazníka.
Vzhledem k tomu, že průběžně vzniká obrovské množství nových řešení, resp. stávající řešení se vyvíjí ve formě nových verzí a zároveň se rozvíjejí kvalitativní požadavky, čelíme problému, jak rozumnězpracovat rostoucí množství informací pro vyhodnocování podkladů pro certifikace.
Práce Jana Šumana významně pomůže s konsolidací zmíněných podkladů do jednoho standardizovaného formátu SARIF, což otevírá cestu integrace s dalšími nástroji, které tento standard podporují a které mohou nabídnou služby vhodné pro začlenění do stávajícího certifikačního procesu. Výsledky práce budou dále využívány i jednotlivými vývojáři pro spouštění statických analýz a poskytování výsledků v unifikovaném SARIF souboru.
Známka navržená vedoucím: C
Posudek oponentaIng. Ondřej Vašíček
Práce byla jednodušší, obsahuje prominutelné nedostatky z pohledu citační etiky a pohybuje se na hranici minimálního rozsahu textu, především vzhledem k povaze textu v kapitole o implementaci.
Nicméně zadání bylo splněno, text práce je dobře pochopitelný, programový výstup je funkční a firma Kyndryl plánuje výsledek práce prakticky použít.
Stupeň hodnocení: méně obtížné zadání
Práce byla zadána firmou Kyndryl. Zadání ale považuji za poměrně jednoduché. Nejobtížnější částí bylo pravděpodobně seznámení se s tím, jak se pracuje s GitHub actions a workflows.
Stupeň hodnocení: zadání splněno
Zadání bylo jednodušší, nicméně bylo zcela splněno. Řešení neobsahuje rozšíření nad rámec zadání.
Stupeň hodnocení: splňuje pouze minimální požadavky
Práce má bez obrázků a výpisů kódu 35 normostran. Většina kapitoly o implementaci navíc popisuje zbytečné implementační detaily, které by v práci být neměly. Práci bych tedy považoval jako hraničně splňující minimální požadavky rozsahu.
Pochopitelnost práce pro čtenáře je dobrá.
Výhrady mám ke kapitole o implementaci, jejíž většina se věnuje podrobným implementačním detailům. Myšlenkový tok kapitoly spočívá v ukázání části zdrojového kódu ve formě výpisu a následném vysvětlení onoho kódu. Místy je zdrojový kód vysvětlován řádek po řádku včetně importů, zpracování argumentů skriptu, popis cyklu a jeho indexování, vysvětlení použití "try catch" bloku a dalších.
Z typografické stránky chybí na řadě míst nezlomitelné mezery. Dále číslování řádků ve výpisech přetéká levý okraj textu. Místy jsou špatně vysázeny parametry skriptů (např. "--" na straně 23). Jinak je typografie v pořádku.
Z jazykového hlediska se na pár místech práce blíží k hranici spisovnosti. Také by bylo lepší se vyhnout použití anglických verzí pojmů, které mají vhodný překlad (například "branche" místo "větve" v kontextu GitHub).
V kapitole č. 2 (použité technologie) mě zaskočilo, že téměř každý odstavec je zakončen citací (tj. odkazem na zdroj). V prvních dvou třetinách této kapitoly, které se věnují popisu GitHub Actions a standardu SARIF, jsem proto identifikoval několik souvětí (asi 12 v hustotě jedno až dvě na odstavec), která jsou po překladu doslovně stejná s citovaným textem. Tato převzatá souvětí, ale nejsou jasně odlišena od ostatního textu a není tedy jasné, které části textu byly převzaty doslovně a které jen volně. Nicméně zdroje jsou alespoň nějakým způsobem uvedeny.
Obrázek 2.1 byl převzat z jednoho ze zdrojů, ale tato skutečnost není nikde jasně uvedena.
Příklady SARIF logů, především výpis 2.3, byly také převzaty z jednoho ze zdrojů a drobně upraveny. Toto ale opět není v práci nikde uvedeno.
Realizační výstup splnil zadání a byl otestován na reálných repozitářích firmy Kyndryl.
Práce byla zadána společností Kyndryl a očekává se praktické použití jejího výstupu.
Známka navržená oponentem: D
Důvod odložení zveřejnění
Zveřejnění bakalářské práce je v souladu s ustanovením § 47b odst. 4 zákona č. 111/1998 Sb., o vysokých školách a o změně a doplnění dalších zákonů (zákon o vysokých školách), ve znění pozdějších předpisů, odloženo o 3 roky. Důvodem odložení zveřejnění je ochrana duševního vlastnictví a skutečnost, že bakalářská práce obsahuje obchodní tajemství ve smyslu příslušných ustanovení zákona č. 89/2012 Sb., občanského zákoníku.