Preskočiť na obsah

1. Úvod

Tímový softvérový projekt nemožno posúdiť iba podľa toho, či výsledný program funguje. Dôležitý je aj postup: rozdelenie práce na úlohy, oddelenie zmien vo vetvách, automatizované testovanie, revízia kódu a udržiavanie hlavnej vetvy v použiteľnom stave. Tieto návyky tvoria praktickú časť DevOps a študent ich potrebuje opakovane použiť na konkrétnych zmenách.

Predmety Základy softvérového inžinierstva a Základy DevOps na KPI FEI TUKE používajú pri tímových zadaniach GitLab. Dôkaz o splnení jednej úlohy však nie je na jednom mieste. Časť je v probléme, časť v opise žiadosti o zlúčenie, ďalšia v diskusii, histórii zmien a vo výsledku procesu CI/CD.

Pri ručnej kontrole preto vyučujúci opakovane otvára projekty a spája údaje z viacerých obrazoviek. Počet odovzdaní sám nepreukazuje prácu vo vetve, reakciu na pripomienky ani revíziu zmien spolužiakov. Úspešný proces CI/CD zase nepreukazuje, že zmena obsahovala nové testy. Údaje existujú, no chýba pohľad usporiadaný podľa otázok, ktoré vyučujúci skutočne kladie.

GitPulse má tieto procesné stopy predspracovať a zachovať pri každom výsledku odkaz na pôvodný artefakt. Nemá nahradiť odborný úsudok vyučujúceho ani automaticky rozhodovať o známke.

1.1 Motivácia

Základnou motiváciou je rozdiel medzi údajmi, ktoré GitLab už uchováva, a úsilím potrebným na ich pedagogickú interpretáciu. Webhooky oznamujú vybrané zmeny a podrobný aktuálny stav možno doplniť cez REST API.

Očakávané prínosy návrhu sú:

  • menej rutinnej kontroly pri jednoznačných otázkach s dátovým základom;
  • včasnejšia spätná väzba ešte pred uzavretím úlohy;
  • jednotný výpočet technických podmienok s viditeľnými obmedzeniami;
  • prechod od kurzu ku skupine, projektu a študentovi bez straty odkazu na GitLab;
  • bezpečné precvičenie konfliktov, Dockerfile a zlyhaní CI/CD v oddelených moduloch.

Farebný stav bez vysvetlenia by iba nahradil jednu nepriehľadnú kontrolu druhou. Preto musí používateľ vidieť dôvod výsledku a vedieť ho ručne overiť.

1.2 Formulácia úlohy

Cieľom diplomovej práce je navrhnúť a overiť nástroje podporujúce výučbu základov DevOps nad tímovými projektmi v GitLabe. Čiastkové úlohy sú:

  1. analyzovať pracovné postupy predmetov a oddeliť strojovo overiteľné podmienky od odborného posúdenia;
  2. porovnať existujúce systémy hodnotenia, analýzy repozitárov a kontroly zmien;
  3. overiť údaje dostupné vo webhookoch a REST API GitLab;
  4. navrhnúť architektúru, dátový tok a bezpečnostné hranice platformy;
  5. vytvoriť prototyp pre import kurzu, synchronizáciu projektov, procesné kontroly a prehľad výsledkov;
  6. pripraviť voliteľné cvičenia pre konflikt, Dockerfile a zlyhanie CI/CD;
  7. navrhnúť neskoršie vyhodnotenie technickej správnosti a pedagogického účinku.

Aktuálne odovzdanie sa končí návrhom a funkčným prototypom. Neobsahuje tvrdenia o úspore času, zlepšení študijných výsledkov ani úspechu nasadenia vo výučbe. Takéto závery budú možné až po zbere údajov a overení s cieľovou skupinou.