TRACKS – Tasks, Code Reviews, Activities, Source Code and Knowledge about Software

176

Programátori, rovnako ako aj my, študenti informatiky, pri tvorbe softvéru pracujú s veľkým množstvom podporných systémov, ktoré nám pomáhajú pri vývoji. Medzi najznámejšie z nich patria vývojové prostredia (napríklad Eclipse, Visual Studio), systémy pre správu zdrojových kódov (napríklad Git), systémy pre správu úloh a nahlasovanie chýb (napríklad Bugzilla, Jira, Redmine), nástroje umožňujúce vykonávať prehliadky zdrojových kódov (napríklad Gerrit, ktorý využívajú známe open source projekty ako sú Eclipse, Android, Qt alebo OpenStack), alebo aj diskusné fóra a dokumentácie (napríklad StackOverflow, MSDN).

Problém nastáva, keď sa snažíme nájsť súvislosti medzi nimi. Na každom väčšom projekte v praxi spolupracujú rôzni členovia tímu. Každú informáciu o úlohách, chybách, zdrojových kódoch, prehliadkach kódov a iných, si musia vyhľadať v samostatných systémoch. Príkladom súvislosti je prepojenie otázky na stránkach StackOverflow od vývojára pracujúceho na úlohe z Bugzilla s jeho commitmi v prostredí Git. Pri následnej prehliadke zmien v nástroji Gerrit má kontrolór pred sebou iba výsledný návrh zmeny v Git a nie odpoveď zo StackOverflow, na ktorej vývojár svoje riešenie založil.

Aké riešenie ponúkame?

Náš projekt ponúka riešenie, ktoré si s týmto problémom poradí. Ako už možno z názvu projektu vytušiť, TRACKS je skratka pojmov:

„Tasks, Code Reviews, Activities, Source Code and Knowledge about Software“.

Cieľom tohto projektu bolo vytvorenie systému TRACKS pre zber a prepájanie dát z jednotlivých podporných systémov, a zároveň ich následné spracovanie tak, aby nadobúdali prínosnú hodnotu ako pre samotného programátora, tak aj pre manažéra projektu a ostatných členov tímu. Každý účastník vývoja bude mať dokonalý prehľad o tom, ku ktorému „Task“ patrí ktorý „Code Review“, „Activity“ a „Source Code“, poprípade, „Knowledge about Software“. Takýmto spôsobom sa naplní význam názvu projektu – TRACKS. Všetky informácie sú na jednom mieste a otvára sa priestor pre dolovanie v dátach a vyhľadávanie informácii bez opätovného sťahovania dát.

Ako sme to dosiahli?

Zber dát je vykonávaný pomocou botnet klientov na základe zadaní od hlavného uzla distribujúceho sťahovanie tzv. Balancera. Samotné datasety nie sú prístupné na stiahnutie priamo, ale sťahovanie je možné prostredníctvom vystavaných aplikačných rozhraní. Museli sme sa tu popasovať so zadanými limitmi o tom, koľko dát môžeme stiahnuť naraz a so správnym tvorením dopytov. Nakoľko dáta pribúdajú v reálnom čase, nemá zmysel sťahovať zakaždým celé datasety. Ináč je to však v prípade, keď sťahujeme iba tie dáta, ktoré práve pribudli. Takto sledujeme zmenu a pokrok práce na projektoch.

Po stiahnutí dát nasleduje prevedenie dát do spoločnej reprezentácie, pre ktorú sme zvolili RDF štandard – Resource Description Framework. Na základe princípu RDF sú dáta prevedené na trojice, pričom jedna trojica sa skladá z častí: objekt, predikát, subjekt. Aby sme vedeli dáta previesť na takéto trojice, vytvorili sme pre každý zdroj dát vlastnú ontológiu opisujúcu vzťahy medzi stiahnutými dátami. V takejto reprezentácii sú prepájané dáta uložené do databázy Jena a sprístupnené tretím stranám. Jedným z hlavných cieľov bolo navrhnúť infraštruktúru tak, aby bola ľahko nasaditeľná ako na fakulte, tak aj interne v softvérovej firme a bola využitá záverečnými projektmi na fakulte.

Backend projektu sme vytvorili pomocou technológií C#, .NET Core, asp.net Core, Razor Views,  Microsoft SQL Server, RDF databáza Jena, UNIX, Microsoft Windows Server, NuGet a Windows Presentation Foundation. Na tvorbu frontendu sme použili Bootstrap, JavaScript, HTML.

Najväčšie výhody?

Vďaka projektu TRACKS vznikajú zozbierané a spracované kolekcie dát. Dáta sú v Linked Data reprezentácii – pre každý zdroj dát, podporný systém vývoja, sme vytvorili vlastnú ontológiu. Výhodou je aj to, že poprepájané dáta z projektov sú uložené na jednom mieste, preto pre nasledovné dolovanie v dátach nebude potrebné opätovné sťahovanie. To, že sú všetky dáta uložené na jednom mieste zároveň uľahčuje sledovanie procesu vývoja projektu. Systém TRACKS navyše umožňuje jednoduché pridanie sťahovania dát z ďalších podporných nástrojov.

Kto za týmto všetkým stojí?

Náš tím Blank pozostáva zo siedmych študentov inžinierského stupňa na Fakulte informatiky  a informačných technológii, ktorí pracujú pod vedením Ing. Martina Konôpku na predmete Tímový projekt. Z odboru Informačné systémy sú Peter Bobovský, Peter Kučera, Marek Mura, Miriama Pomffyová a Michal Slovík. Z odboru Softvérové inžiniestvo sú Michal Kráľ a Lukáš Račko.

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.