Vizualizácia softvéru

Obsahom tohto projektu je vytvorenie prototypu vizualizačného nástroja, ktorý by vizualizoval softvér vo virtuálnej a rozšírenej realite. Využije známe metódy vizualizácie dát vo forme grafov. 

Tím 03

Placeholder - Peter Kapec picture
Ing. Peter Kapec, PhD.
Project owner
Placeholder - Niko picture
Niko
Manažér vývoja
Unity developer
Placeholder - Iva picture
Iva
Manažér dokumentácie
Dokumentaristka
Unity developer
Placeholder - Samo picture
Samo
Backend developer
Dokumentarista
Placeholder - Jožo picture
Jožo
Scrum master
Dokumentarista
Placeholder - Aďo picture
Aďo
Manažér testov
Backend developer
Placeholder - Mišo picture
Mišo
Manažér web sídla
Backend developer

Potrebné technológie

Unity 3D

Unity 3D je multiplatformový herný engine, ktorý sa využíva pre vývoj hier pre PC, konzoly, smartfóny a web. Poskytuje možnosti vývoja pre 2D a 3D hry. Okrem grafického prostredia pre tvorbu, podporuje aj tvorbu skriptov v jazykoch C# a JavaScript.

HTC Vive

HTC Vive je headset pre virtuálnu realitu. Náhlavná súprava využíva technológiu sledovania „mierky miestnosti“, ktorá umožňuje používateľovi pohybovať sa v 3D priestore a používať pohybové ručné ovládače na interakciu s prostredím.

LEAP Motion

LEAP Motion je senzorové zariadenie počítačového hardvéru, ktoré ako vstup podporuje pohyby rúk a prstov, analogické s myšou, ale nevyžaduje žiadny dotyk ani kontakt.

ZED Camera

ZED je 3D kamera na snímanie hĺbky, sledovanie pohybu a 3D mapovanie v reálnom čase. Ideálna pre robotiku, AR / VR a inteligentnú analýzu.

Project North Star

Project North Star sú DIY state-of-the-art AR okuliare vytvorené spoločnosťou LEAP Motion, ktoré si môžete zostaviť pomocou 3D tlačiarne.

Priebeh práce

Opis práce v jednotlivých šprintoch

ZS - Šprint 1

V prvom šprinte sme sa oboznámili s dokumentáciou a rozbehali si projekt na svojich počítačoch. Identifikovali sme hlavné funkcionality na ktorých budeme pracovať a zaevidovali sme si to do TFS. Ďalej sme kontaktovali členov minuloročného tímu, ktorí boli zodpovední za špecifické časti projektu a vysvetlili si nejasnosti.

ZS - Šprint 2

V druhom šprinte sme vytvárali webstránku pre tímový projekt a pracovali na vytvorení dokumentácie pre metódy riadenia. Viacerí členovia tímu sa venovali analýze repozitárov na gitlabe, pokrytí dokumentácie, stavu nemergnutých vetiev a stavu CI-čiek. Pokračovali sme aj v analyzovaní architektúry softvéru a jeho vrstiev.

ZS - Šprint 3

V treťom šprinte sme riešili mergovanie vetiev v repozitároch luametrics, luadb a 3dsoftviz. S minuloročným tímom sme vybavili prebratie ich servera na ktorom beží GitLab Runner aby sme nemíňali čas určený na beh CI-čiek univerzity. Začali sme vytvárať dokument na odovzdanie pozostávajúci z častí Riadenie Projektu a Inžinierske dielo. Upravovali sme zápisy zo stretnutí a pripravovali sa na refactoring, ktorý budeme robiť v ďalšom šprinte.

ZS - Šprint 4

V štvrtom šprinte sme mali v pláne začať s refaktoringom VizRealu. Tento cieľ obnášal zabezpečenie komunikačných uzlov na oboch stranách a vytvorenie jednotného formátu správ na prenos, čo sa nie úplne podarilo. Modifikovali sme inicializačné súbory pre Docker kontajner, doriešili repozitáre na strane Lua a otestovali ich funkčnosť.

ZS - Šprint 5

V piatom šprinte sme dokončili úlohy, ktoré sme nesplnili v štvrtom šprinte a pridali nejaké ďalšie úlohy. Podarilo sa nám dokončiť komunikačné uzly na oboch stranách a vytvoriť ich spoločnú komunikáciu pomocou TCP socketu. Ďalej sme pridali novú funkcionalitu – graf sa už neaktualizuje cez volania metód, ale pomocou komunikácie TCP socketom. Týmto spôsobom budeme naďalej refaktorovať ďalšie funkcie z pôvodného VizReal-u.

LS - Šprint 1

V tomto šprinte sme pracovali na refaktoringu, vytvorili sme si v Unity novú scénu pre tento účel. Zo starého riešenia sme preniesli funkcionalitu ovládania layoutovania grafu a vytvorili pre funkčné api pre volanie príkazov z Unity na Lua server. Pracovali sme aj na implementácia návhrového štýlu "Data Column", kde sa údaje štruktúry (grafu) prenášajú po stĺpcoch, teda po atribútoch. Implementovali sme to pre rôzne atribúty uzlov (farba, veľkosť, pozícia, ...) a hrán (zdrojový / koncový uzol id, ...).

LS - Šprint 2

Pracovali sme na refaktoringu UML/HTML browser okien. Bolo potrebné dorobiť posielanie rôznych metrík (LOC, halstead, cyclomatic, infoflow). Dorábali sme menšie chybičky krásy pri zmene layoutovacieho algoritmu na metaforu mesta. Študovali sme nový dokumentovací nástroj, Sphinx, ktorý budeme používať v spolupráci s doxygenom aby sme mohli vygenerovať prehľadnú dokumentáciu nie len zdrojového kódu, ale aj vysokoúrovňový pohľad na to ako modul projektu funguje a ako interaguje s ostatnými.

LS - Šprint 3

V rámci 3. šprintu sme vytvárali checklist funkcionalít, ktoré existujú v starom riešení, v novom riešení a tie, ktoré v novom ešte chýbajú. Testovala sa funkcionalita pôvodného riešenia podľa všetkých dostupných príručiek, predošlých znalostí členov tímu alebo dokumentácií z diplomových prác. Následne sa porovnávali výstupy 1 k 1 s výstupmi z aktuálneho, nového riešenia. Vysvitlo množstvo nedostatkov, či už v starom alebo novom riešení, alebo v zle spracovanej dokumentácií. Robil sa refaktoring umiestnenia zdrojových kódov na LuaServer strane, uplatňoval sa návrhový vzor Singleton na objekt "core". Dokončovala sa analýza dostupných metód dokumentácie a prezentovali sa výstupy analýzy.

LS - Šprint 4

V tomto šprinte sa dokončoval checklist funkcionalít, začala sa nasadzovať antora ako nástroj pre generovanie dokumentácie zo zdrojového kódu a z .adoc (AsciiDocs) súborov. Dopĺňala sa dokumentácia pre Lua a Unity strany, podľa toho, ktoré časti už boli dokončené. Riešil sa výpadok tímovej stránky, pretože nebol aktivovaný licenčný kľúč pre Windows Server.

LS - Šprint 5

Počas tohoto šprintu sa vytvárala nová dokumentácia pre dokončený refaktoring projektu. Išlo o vysokoúrovňové opisy rôznych častí či už LuaServera alebo Unity. Prerábala sa už existujúca dokumentácia aby odzrkadľovala aktuálny stav. Do checklistu sa pridávali cesty k zdrojovým súborom kde boli obsiahnuté konkrétne funkcionality, takisto sa dopĺňali aj linky k dokumentáciám. Špecifikoval sa postup vyvolania rôznych funkcionalít z checklistu. Dokončili sa testy na luaserver funkcie.

Využité technológie a jazyky

Lua
C++
C#
Unity
Gitlab
Azure DevOps