Zadáno
Diplomová práce č. 1 - 2025/2026
Zadání pro studijní obor: Softwarové inženýrství
Název: Rozšiřování systému správy studentských úloh v systému GitLab
Motivace:
Od akademického roku 2024/25 došlo vzhledem k náběhu nově akreditovaného bakalářského oboru k postupné změně ve složení struktury vyučovaných předmětů. Předmět KIV/OKS začal úzce spolupracovat s předmětem KIV/WEB.
Pro tuto spolupráci a pro dosažení co největší možné jednotnosti vyhodnocovacího postupu byly v ak. roce 2023/24 realizovány dvě diplomové práce, díky nimž mají studenti k dispozici:
- Jednotný způsob odevzdávání postupně vytvářených úloh jak své individuální aplikace pro KIV/WEB, tak i jejich testů pro KIV/OKS.
- Odevzdávání jednotlivých úloh je prováděno pomocí verzovacího systému GitLab. V něm též automaticky proběhnou v rámci předpřipravených pipelines základní validační aktivity a případné transformace či spuštění odevzdané úlohy.
- Následně jsou vzniklé artefakty nasazeny na testovací prostředí a jsou studentovi i vyučujícímu dostupné jako dashboard přes webové rozhraní.
- Vyučující má díky další samostatné aplikaci možnost odevzdané úlohy hodnotit a bodovat.
Celý popsaný systém byl nově zaveden od zimního semestru 2024/25, přičemž už při jeho zavádění bylo zřejmé, že bude nutné systém rozšířit minimálně ve čtyřech oblastech:
- Bezpečnost
Existující systém počítá s "disciplinovaným studentem", který bude odevzdávat svoje úlohy podle předem připraveného a vyzkoušeného postupu a takto odevzdanou úlohu jednotně zpracuje předem připravená pipeline. Ovšem systém GitLab dává zkušenému uživateli množství možností, jak ovládat, měnit, spouštět atp. jednotlivé joby v pipeline nebo jak přebírat výsledky práce jiných studentů.
Na základě zkušeností získaných z prvního roku provozu systému bude třeba analyzovat možné vektory neetického chování a navrhnout či provést taková technická či organizační opatření, aby jim bylo zabráněno.
- Validační skripty
Každý student bude odevzdávat 10 úloh, přičemž se očekává zhruba 60 až 100 studentů v ročníku (předměty KIV/WEB a KIV/OKS jsou oba povinné A předměty). Protože finální hodnocení každé úlohy musí provádět manuálně vyučující, je zřejmé, že při počtu studentů a počtu úloh bude jakákoliv předcházející automatická kontrola velkou pomocí.
Pro tuto aktivitu je již každá úloha pokryta větším či menším počtem relativně jednoduchých validačních skriptů (mikrovalidace) spouštěných automaticky v příslušné pipeline úlohy.
Cílem těchto mikrovalidací je stav, kdy vyučující bude manuálně hodnotit jen ty úlohy, které splnily určitá minimální kriteria kvality.
Problém je, že tyto validační skripty vznikaly postupně, tj. bez větší koncepce, a také bez možnosti využít při jejich vývoji reálná data z již odevzdaných úloh.
Na základě dat získaných z prvního roku provozu systému bude nutné provést rozsáhlou refaktorizaci celého systému validačních skriptů.
Nově vzniklé validační skripty bude třeba prokazatelně otestovat rozsáhlou sadou pozitivních i negativních testů. Dále bude nutné začlenit tyto testy do stávajícího systému tak, aby bylo možné kdykoliv ověřit správnou funkci validačních skriptů.
- Rozšíření portfolia úloh
V současném seznamu úloh zcela chybí úloha na jednotkové testy. Tato úloha nebyla dosud záměrně zařazena, protože je v prvním roce provozu nutné zjistit skutečné časové zatížení studentů celou samostatnou prací.
Pokud se na základě měření a odezvy studentů zjistí, že časové zatížení je nižší nebo úměrné studijnímu plánu, bude jedna dosavadní úloha zkrácena/zrušena a následně bude přidána nová úloha na použití jednotkových testů.
Tato změna by vyvolala potřebu rekonfigurace základní vzorové adresářové struktury na GitLabu a následné množství navazujících změn v pipelines a v dalších artefaktech GitLabu.
- Zátěžové testy
Celý systém je provozován na výpočetních prostředcích poskytovaných CIV. Ty dávají možnost zvyšování výkonu, pokud pro to existuje skutečná potřeba. Pro hospodárné využití těchto sdílených prostředků bude vhodné analyzovat dostupná data z prvního roku odevzdávání úloh a dále pak připravit sadu zátěžových testů. Na základě zjištěných údajů pak navrhnout optimalizaci sdílených zdrojů.
Zadání:
- Seznamte se ...
- Navrhněte ...
- Realizujte ...
- Ověřte ...
Cílový operační systém: Linux
Jazyk a technologie: GitLab, Python, HTML, CSS, YAML, Docker, Kubernetes
Charakter práce: Analytická a experimentální.
Vhodné pro: Student, který je schopen experimentální práce.
Diplomant: Matěj Rampula
Poslední změna: 16.9.2024
Pavel
Herout