Témák
Témák szerzők szerint
Választható témák
Folyamatban lévő dolgozatok
Állapot | Név | Dolgozat címe | Védés éve |
---|
Elkészült dolgozatok
Választható témák
A tématervek végleges verziójának kialakítása a hallgatókkal együtt történik, ezzel is lehetőséget adva számukra, hogy értékes ötleteikkel és javaslataikkal hozzájáruljanak a projektek minőségéhez.UniGDA módszertan használata a szoftverek elemzése során
Az UniGDA egy általános gráfösszehasonlító módszertan. Célja hogy vizsgálhatóvá és elemezhetővé tegye a gráfok közötti eltéréseket és hasonlóságokat. A módszer lényege a lokális elemek hasonlóságának vizsgálata és nem a gráfok azonosságának eldöntése vagy mérése. A téma tudományos jellege miatt csak olyan hallgatónak ajánlom, akit érdekel a kutatás világa (még akkor is ha nem döntötte el). A munka elvégzéséhez alapszintű gráfelméleti és algoritmizációs készség és tudás szükséges. A jelentkező hallgatónak képésnek kellennie arra, hogy megértse a matematikai formalizmust és az angol nyelvű tudományos cikkeket. További ismeretek a témában: 5. fejezet
Researchers and IT professionals frequently use dataset comparison during software analysis. Additionally, they commonly make judgments based on discrepancies between two representations of the same item's set. To locate the error-prone areas of the system, developers may evaluate the densely linked regions of method call graphs in the context of their position in the package hierarchy tree. A universal technique for graphs, which can be utilized to unify the underlying process of discrepancy analysis, might help with these types of analyses. In this paper, we present a methodology for unified graph's discrepancy analysis, named UniGDA. Its foundation is the previously established domain-specific discrepancy identification approach for cluster comparison. But to capture the similarity structures between the vertices of arbitrary graphs, we use several kinds of characteristic functions.
Ez a téma a következő projekthez kapcsolódik: UniGDA.
Szoftveres támogatás biztosítása a Rendszerfejlesztés 2 gyakorlati feladatválasztáshoz
A dolgozat feladata, hogy egy webes rendszert nyújtson a Rendszerfejlesztés 2 issue választás folyamatának automatizálására. A rendszer fő feladata, hogy megkönnyítse a hallgatók munkáját az adminisztratív terhek szoftveres támogatásával. Emellett a rendszer felgyorsítja a kiértékelés és ellenőrzés folyamatát is. Az új ill. továbbfejlesztett folyamat kidolgozása a dolgozat része, melyet a hallgató az oktatókkal együtt végez. A megvalósítás során figyelembe kell venni a felhasználó hallgatók személyiségi jogait és a TVSZ. kapcsolódó részét. A rendszert fel kell készíteni a csalások és visszaélések kivédésére.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
bibHygeia szabálysértéseinek kiértékelése és kibővítése kutatói visszajelzések alapján
Tudományos cikkek és kutatások írása során a legelterjedtebb technológia, a LaTeX dokumentum készítése. Ezekben a dokumentumokban akár több tíz, vagy száz külső írásra való hivatkozás is szerepelhet, így ezen referenciákat tartalmazó BIBTEX fájlok kezelésével és karbantartásával sok időt vesztegethet el a dokumentum szerzője. Ennek megkönnyítésére jött létre a bibHygeia rendszer, a fejlesztésben résztvevők által fontosnak és hasznosnak ítélt szabálygyűjteménnyel. Azonban e szabályhalmaz nem feltétlenül teljes. A szakdolgozat célja, hogy gyakorlati példákon és a kutatók visszajelzésén keresztül felmérje ennek fokát. Végül szükség esetén további szabályokkal bővítse a gyűjteményt ill. finomhangolja a meglévő teszt eseteket. A dolgozat célja a tudományos munka végzése és az ehhez szükséges szoftveres támogatás biztosítása.
Ez a téma a következő projekthez kapcsolódik: bibHygeia.
Fél-automatizált szoftveres támogatás Commixit és Doxit játékokhoz
A szoftverfejlesztés elsajátítása során a hallgatók számára nehéz a megfelelően részletes és kifejező commit üzenetek és technikai dokumentáció (javadoc, docstring, stb.) megfogalmazása. Oktatóként úgy érezzük a fő indok, hogy a hallgatók nem tapasztalják meg saját maguk ezek fontosságát. Ennek segítésére a Dixit játékhoz hasonló játékos feladatot dolgozunk ki. A hallgatók órán fogják játszani a játékokat a gyakorlatvezető felügyelete mellett. A játékosok csak akkor kapnak pontot, ha a szerző és egy véletlenül választott társa is ugyanazt a jellemzést adja a commit vagy a dokumentáció üzenet alapján. A játék szabályainak oktatókkal való közös kidolgozása a dolgozat része.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Ko-Li felhasználása spektrum alapú hibalokalizáció kutatása során
Számos eszköz képes mérni a teszt kód lefedettségett, azonban ezek különféle formátumokat, felbontásokat és módszereket használnak az információ rögzítésére. A kutatónak meg kell értenie a mögöttes struktúrákat és a formátumok/kimenetek közötti különbségeket. Ezek a feladatok elrabolják tőlük az értékes időt, amelyet a tesztelési és programjavítási ismeretek bővítésére fordíthatnak. Továbbá a különböző forrásból/eszközből kinyert eredmények összehasonlítását nagyban megnehezíti az, hogy a kimenetek nincsenek közös rendszerben, azaz más más szerkezetben, struktúrában tárolják az adatokat, így azok összehasonlítása nagy erőfeszítésbe kerül. Ezért szeretnék megalkotni egy olyan környezetet, amely segítségével hatékonyabban tudják a kutatók a számukra releváns információkat összegyűjteni, tárolni és vizsgálni. A probléma megoldása során egy a kutatásban használható eszközkészlet és formátum létrehozását tűztük ki célul. Ez méreténél fogva meghaladja az át lagos képességű hallgató által a szakdolgozat készítésre szánható erőforrásokat. Ezen erőforrások tényleges mértékét azonban több, számunkra jelenleg ismeretlen tényező is befolyásolja. Ilyenek például a hallgató szakmai képességei, valamint a technikai részletekben rejlő akadályok. Az elkészült szoftver rendszert ki kell bővíteni a következő funkciókkal. Alkalmas legyen alapvető spektrum alapú hibalokalizációs algoritmusok futtatására. Képes a felhasználó által megalkotott, egyedi SBFL formulák alapján történő rang számolásra. Képes a call-chain információk tárolására és az erre épülő, alap hibalokalizációs eljárások végrehajtására.
Ez a téma a következő projekthez kapcsolódik: Ko-Li.
Ko-Li megjelenítő Python alapú webes alkalmazás a Ko-Li formátumban tárolt adatok ellenőrzésére és megjelenítésére
Számos eszköz képes mérni a teszt kód lefedettségett, azonban ezek különféle formátumokat, felbontásokat és módszereket használnak az információ rögzítésére. A kutatónak meg kell értenie a mögöttes struktúrákat és a formátumok/kimenetek közötti különbségeket. Ezek a feladatok elrabolják tőlük az értékes időt, amelyet a tesztelési és programjavítási ismeretek bővítésére fordíthatnak. Továbbá a különböző forrásból/eszközből kinyert eredmények összehasonlítását nagyban megnehezíti az, hogy a kimenetek nincsenek közös rendszerben, azaz más más szerkezetben, struktúrában tárolják az adatokat, így azok összehasonlítása nagy erőfeszítésbe kerül. Ezért szeretnék megalkotni egy olyan környezetet, amely segítségével hatékonyabban tudják a kutatók a számukra releváns információkat összegyűjteni, tárolni és vizsgálni. A probléma megoldása során egy a kutatásban használható eszközkészlet és formátum létrehozását tűztük ki célul. Ez méreténél fogva meghaladja az át lagos képességű hallgató által a szakdolgozat készítésre szánható erőforrásokat. Ezen erőforrások tényleges mértékét azonban több, számunkra jelenleg ismeretlen tényező is befolyásolja. Ilyenek például a hallgató szakmai képességei, valamint a technikai részletekben rejlő akadályok. Az elkészült szoftver rendszernek a következő feltételeknek kell megfelelnie. Stabilan működik Windows operációs rendszerek alatt és Google Chrome böngészőben; self-hosting-ra is alkalmas; elérhetővé teszi az alapvető lefedettségi információkat; (a tárolt adatok függvényében) megfelelő gyorsasággal képes működni.
Ez a téma a következő projekthez kapcsolódik: Ko-Li.
Ko-Li fájlformátum megalkotása: teszt-kód lefedettségi adatok tárolására alkalmas formátum
Számos eszköz képes mérni a teszt kód lefedettségett, azonban ezek különféle formátumokat, felbontásokat és módszereket használnak az információ rögzítésére. A kutatónak meg kell értenie a mögöttes struktúrákat és a formátumok/kimenetek közötti különbségeket. Ezek a feladatok elrabolják tőlük az értékes időt, amelyet a tesztelési és programjavítási ismeretek bővítésére fordíthatnak. Továbbá a különböző forrásból/eszközből kinyert eredmények összehasonlítását nagyban megnehezíti az, hogy a kimenetek nincsenek közös rendszerben, azaz más más szerkezetben, struktúrában tárolják az adatokat, így azok összehasonlítása nagy erőfeszítésbe kerül. Ezért szeretnék megalkotni egy olyan környezetet, amely segítségével hatékonyabban tudják a kutatók a számukra releváns információkat összegyűjteni, tárolni és vizsgálni. A probléma megoldása során egy a kutatásban használható eszközkészlet és formátum létrehozását tűztük ki célul. Ez méreténél fogva meghaladja az át lagos képességű hallgató által a szakdolgozat készítésre szánható erőforrásokat. Ezen erőforrások tényleges mértékét azonban több, számunkra jelenleg ismeretlen tényező is befolyásolja. Ilyenek például a hallgató szakmai képességei, valamint a technikai részletekben rejlő akadályok. A fájlformátum a következő feltételeknek kell megfelelnie. Önállóan, egyébszükséges (fájl)források nélkül képes a releváns információk tárolás ára; kompakt, azaz a fájlok mérete (a benne foglalt adatok függvényében) kicsi legyen; bővíthető, vagyis lehetséges újabb információk hozzáadása a már meglévőekhez; több programozási nyelv számára is könnyen feldolgozható; rugalmas, mely lehetővé teszi különböző részletességű adatok tárolását.
Ez a téma a következő projekthez kapcsolódik: Ko-Li.
WanShiTong hivatkozás kezelő rendszer újratervezése Flask alapokon a felhasználói élmény fokozása érdekében
A projekt jelenleg a Tornado keretrendszert használja. Bár a projekt megvalósít bizonyos alapvető funkciókat maga az elkészült program inkább prototípus szintjén van. A felhasználói élmény jelentős javításra szorul. Emellett a fejlesztőcsapat szakértelmét is figyelembe véve praktikus lenne módosítani az alap webes keretrendszert. Az új keretrendszer a Flask.
Ez a téma a következő projekthez kapcsolódik: Wan Shi Tong.
Beadandók automatikus ellenőrzése verziókövető és projektmenedzsment rendszerekben
Szakdolgozatom témája, egy olyan alkalmazás elkészítése, amelyet egyaránt oktatók és hallgatók is tudnak használni olyan beadandók ellenőrzésére, amelyek több fájl feltöltését igénylik egy Gitlab vagy Github szerverre. Számtalan tárgyból vannak bizonyos mérföldkövek, határidők amelyek bizonyos fájlok feltöltését, dokumentálását, nyomonkövetését és egyéb vele járandó műveleteket követelnek. Ezek ellenőrzésére jelenleg nincs automatikus rendszer és a hallgató, egyben az oktató is magára van utalva, ilyen esetben kénytelenek maguktól minden egyes fájlt manuálisan ellenőrizni, név, méret, mappa szerkezet és más egyéb szempontból. Illetve a megfelelő commit és issue kezelés, ezek számának ellenőrzése is szintén rájuk hárul. Célom egy olyan alkalmazás létrehozása, amely mindezt automatikusan és megismételhető módon elvégzi, így a felhasználó egyben erőt és rengeteg időt megspórolhat.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
BiBTeX és Git alapú referencia kezelő programkönyvtár
A kutatók gyakran hivatkoznak más publikációkra a saját tudományos cikkeikben. Ezeknek a hivatkozásait BiBTeX fájlokban tárolhatjuk és Git verziókövető rendszerben kezelhetjük. Sajnos a jelenlegi referencia menedzselő rendszerek nem felelnek meg minden kutatócsoport igényeinek, pl. csak közvetett támogatást adnak a referencia kezelésére. Ezeknek az egyéni igényeknek a megvalósítását fogja segíteni az általam készített lib. Az én feladatom egy programkönyvtár elkészítése Python nyelven, ami lehetővé fogja tenni, hogy az egyedi referencia kezelő rendszerek kezeljék és módosítsák a referenciákat Python hívásokon és Python objektumokon keresztül. Az elkészült csomag képes lesz feldolgozni a Git repository-ban BiBTeX segítségével központilag tárolt tudományos publikációk hivatkozásait. A könyvtáramat felhasználja Juhász Norbert hallgató, az általa készített webes kezelőfelület megvalósításához. A könyvtáram valós környezetben történő tesztelése ezen a rendszeren keresztül történik. A kutatók a hivatkozást a központi BibTeX fájl letöltését követően tudják majd használni, ez a Git segítségével fog megtörténni. A BiBTeX fájl fogja tartalmazni a kutató által használt referenciákat.
Ez a téma a következő projekthez kapcsolódik: Wan Shi Tong.
Folyamatban lévő dolgozatok
Elkészült dolgozatok
A CROSSMINER Eclipse-based IDE Eclipse plug-in architektúrája
A szakdolgozatban elvárt témák egyike a szoftverfejlesztő iparban elég gyakran felmerülő probléma, a szoftverek közötti kommunikáció pontos, hatékony és könnyű kivitelezése, valamint az ezt támogató technológiák áttekintése. A problémafelvetés része két egymástól akár igen távol üzemeltetett szoftver, amelyek között kizárólag hálózaton keresztül cserélődhet információ. Hogy ez zökkenőmentesen történjen, szükségünk van ennek pontos leírására. Ebben nyújt nagy segítséget nekünk az OpenAPI szabvány - korábban Swagger Specification - , ami az ilyen rendszerek specifikálásában segít, valamint az OpenAPI-ra építő további technológiák, amelyekkel a kommunikáció megtervezése vagy kivitelezése válhat könnyebbé számunkra. Az hallgatótól elvárás a CROSSMINER szerver és kliens között zajló kommunikáció bemutatása. A szakdolgozat második témája a CROSSMINER kliensének, egy Eclipse plug-in-nak a belső felépítésének bemutatása és a használt architektúra valamint az eseménykezelő rendszer kifejtése.
Ez a téma a következő projekthez kapcsolódik: CROSSMINER.
Rendszer architektúra tervezése és megvalósítása a SourceMeter statikus elemző Microsoft Visual Studio fejlesztői környezetbe való beépítéséhez
A szakdolgozat témája a SourceMeter statikus elemzőt működtető Visual Studio extension architektúrájának megtervezése és az alapvető komponensek megvalósítása. A rendszer célja, hogy a Visual Studio fejlesztői környezetben kezelt projektjeinket egyszerűen tudjuk elemezni a SourceMeter segítségével és ennek eredményéről részletes információkat szolgáltassunk a felhasználó számára. Az eredmények között szerepelhetnek a különféle metrikák, szabálysértések és kód másolatok.
Ez a téma a következő projekthez kapcsolódik: SourceMeter.
Kód materializáció - Forráskód metrikák megjelenítése három dimenziós város makettként
A szakdolgozatom a CodeMetropolis nyílt forráskódú program egy új moduljának a lefejlesztése, hozzáadása. Ez az új modul a Materialization. Az eredeti szoftver a forráskódon előzően, más program által készített, különböző mérési eredményeket dolgozza fel. Például milyen hosszú, hány sorból áll, mennyi osztály szerepel benne, mind statikus mérés, melyeket a program futtatása nélkül végzünk el. Később ezeket felhasználva készít el egy várost egy számítógépes játékban, a Minecraft világban. Itt a különböző épületek magassága, szélessége, mélysége, emeletek száma, bármilyen elkészült épület térbeli tulajdonságai a forráskód mérései alapján lettek elkészítve. Több orvosi tanulmány is rámutatott arra, milyen fontos a látás és a tapintás közötti kapcsolat, ugyanis a két érzékelés együttesen adja a legpontosabb képet a minket körbevevő tárgyakról. Ezt a szemléletet felismerve kezdtem el fejleszteni a Materialization modult, hogy a virtuálisan létező várost fizikailag is a kézben lehessen tartani.
Ez a téma a következő projekthez kapcsolódik: CodeMetropolis.
A statikus kódelemzés felhasználói élményének javítása a SourceMeter integrálásával a Microsoft Visual Studio alkalmazásban
A forráskód minősége egy fontos szempont, amit sok helyen megkövetelnek, hogy a lehető legjobb legyen. Annyi programozási stílus van, ahány programozó, ezért egy nagyobb rendszerben, amit többen fejlesztenek, előfordulhatnak olyan hibák, sebezhetőségek, amiket nem jelez a fordító, de fontos szerepük lehet később a szoftver átláthatóságában, biztonságában és annak bővíthetőségében. Ezért a Szoftverfejlesztési Tanszék kifejlesztett (és még most is fejleszt) egy olyan eszközt, ami statikus kódelemzés segítségével képes kimutatni ezeket a hibákat, sebezhetőségeket és hiányosságokat. Ez a termék a SourceMeter, ami több nyelvhez képes statikus elemzéseket végrehajtani, többek között C#-hoz, C++-hoz, Java-hoz és Python-hoz. A SourceMeter alapvetően egy parancssori eszköz, amihez nem tartozik olyan felület, amin az általa generált adatokat meg lehetne jeleníteni Visual Studio-ban, ami az egyik legelterjedtebb fejlesztőkörnyezet C#-hoz és .Net-hez. Ezért ennek a szakdolgozatnak a célja, hogy a fejlesztő minden SourceMeter funkciót el tudjon érni Visual Studio-ból anélkül, hogy megzavarnánk a hétköznapi munkamenetét. Ehhez egy olyan bővítményt kell készíteni Visual Studio-hoz, ami a fejlesztőknek segítene abban, hogy az általuk fejlesztett rendszeren, könnyedén tudjanak elemzéseket futtatni a SourceMeter eszközzel, azoknak az eredményéből pedig ki tudják szűrni a számukra fontos információkat, ezzel segítve őket a fejlesztési folyamatban. Fontos, hogy az elemzési eredmények vizuális megjelenítéséhez egy könnyen átlátható és használható felhasználói felületet készítsünk. A grafikus felület fejlesztése során, többek között sor fog kerülni annak a bemutatására is, hogy miért fontos az, hogy a bővítmény vizuális megjelenése identikus legyen a fejlesztőkörnyezettel.
Ez a téma a következő projekthez kapcsolódik: SourceMeter.
AugP. – tudományos publikációk 3D tartalmának megtekintése augmentált valóságban
Gyakori probléma, hogy tudományos publikációkban található háromdimenziós objektumokat az olvasók nem, vagy csak nehezen nézhetnek meg 3D környezetben. A hallgató feladata egy olyan megoldás elkészítése, amellyel kinyomtatott példányok olvasóinak lehetőségük van egyszerűen megtekinteni ezeket a háromdimenziós elemeket azok mindhárom dimenzióját megtartva. A probléma megoldásához két alkalmazás fejlesztésére van szükség. A hallgatónak az olvasók számára egy olyan okostelefonos alkalmazást kell fejlesztenie a Unity játékmotort felhasználva, amely kódok beszkennelése után képes a kódhoz rendelt háromdimenziós elem betöltésére augmentált valóságban. A szerzőknek egy webes applikáció elkészítése a feladat tetszőleges nyelvet és keretrendszert felhasználva. Egy szerző itt a háromdimenziós objektumokat ábrázoló képeihez kódokat képes csatolni, amelyek az okostelefonos alkalmazással beszkennelhetőek.
Ez a téma a következő projekthez kapcsolódik: AugP..
Többjelölős Augmented Reality fejlesztése Unity-ben
A jelentkező feladata a Vuforia kiterjesztett valóság program alapjain egy többjelölős verzió megvalósítása Unity grafikus motor felhasználásával. A programnak az alábbi elemeket kell tartalmaznia: Egy kalibrációs rész, amelynek feladata, hogy bevigye a programba az adott jelölők egymáshoz viszonyított helyzetét. Egy render rész, amelyik elhelyez egy előre megadott modellt az előre megadott jelölők helyzetének számtani középpontjára. Egy felhasználói felület, amely összeköti a két részt, és amelyen keresztül használható lesz a program.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Virtuális valóság alapú kutatási alkalmazás készítése a téri-vizuális neglekt szindróma diagnosztikájához
A feladat egy olyan virtuális valóság környezet implementálása, amelyben lehetőség nyílik a vizuális neglekt szindróma vizsgálatára. A feladat során több, a virtuális valóság megjelenítésére alkalmas eszközön működő alkalmazást kell készíteni. Az elkészült alkalmazásnak az alábbi feladatokat kell ellátnia. - Az szoftver egy 3D színtérbe helyezi a felhasználót, ahol képes a virtuális valóságban forgatni a fejét. A színtéren megjelenő különböző ingerek jelennek meg a felhasználó számára, melyek érzékeléséről a felhasználó valamilyen jelzést ad. - A szoftver a mérés alatt adatokat gyűjt a tesztelés kimeneteléről későbbi adatfeldolgozás céljából.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Az iFL Eclipse bővítmény kibővítése utasításszintű hibalokalizációval
Szoftverfejlesztéskor fontos az esetlegesen felmerülő hibák mihamarabbi detektálása, javítása. Ezt különböző szinten különböző módszerekkel lehet megtenni, a legköltségkímélőbb módja az, ha már a fejlesztés közben is odafigyelünk és ellenőrizzük a kódunkat. Jelenleg az egyetemi fejlesztés alatt álló iFL metódus szintre tud hiba-valószínűséget megadni. Ez egy fejlesztőnek nem mindig kielégítő információ, túl nagy kódrészt kellhet kézzel átvizsgálnia. Az utasítás szintű hibalokalizáció ennél jóval pontosabb, részletesebb és precízebb adatokkal szolgál. A szakdolgozat témája az iFL metódusszintű hibakereső szoftver kibővítése és a bővítés működésének bemutatása. Az iFL az Eclipse fejlesztői környezethez letölthető bővítmény. A feladat az iFL továbbfejlesztése metódusszintről sorszintre, ezzel a fejlesztők mélyebb betekintést kaphatnak az esetleges hibák eredetére. Ehhez felhasználásra kerül a JaCoCo nevű könyvtár, amely utasításszinten képes hiba-valószínűség értékeket számolni. Ennek a programnak a kimenetét kell felhasználni az iFL kibővített működéséhez, ehhez először be kell üzemelni, majd utasításszintű lefedettségmérést előállítani vele. Ezt követi egy hiba-valószínűség érték számító beüzemelése és megismerése, amit majd tovább kell fejleszteni a JaCoCo utasításszíntű kimenetének kezelésére. Végül az iFL plugin részletesebb megismerésével, annak belső struktúrájának átalakításával - hogy kezelje az utasításszintet – kellene befejezni a munkát.
Ez a téma a következő projekthez kapcsolódik: iFL4Eclipse.
Git és BibTeX alapú tudományos referencia kezelő rendszer webes kezelőfelülete
Kutatók tudományos cikkeik írása közben gyakran hivatkoznak más kutatók anyagára referenciaként, forrásként. Ezen publikációk kezelésére létezik megoldás, ilyen például a Mendeley. Viszont vannak olyan kutatók, akik a Git és BibTeX technológiákat részesítik előnyben, nekik a Mendeley nem elégséges megoldás. A hallgató feladata egy olyan rendszernek a webes kezelőfelületének kifejlesztése, ami a publikációkat Git-ben tárolja BiBTeX segítségével. Ez a program fel van készítve az adatszolgáltató réteggel való kommunikációra is.
Ez a téma a következő projekthez kapcsolódik: Wan Shi Tong.
Szabálysértések detektálása BibTeX fájlokban Continuous Integration rendszert használva
Tudományos cikkek és kutatások írása során a legelterjedtebb technológia, a LATEX dokumentum készítése. Ez egy széles körben elterjedt dokumentumkészítő eszköz, melynek számos előnye, illetve hátránya is van. Ezekben a dokumentumokban akár több tíz, vagy száz külső írásra való hivatkozás is szerepelhet, így ezen referenciákat tartalmazó BIBTEX fájlok kezelésével és karbantartásával sok időt vesztegethet el a dokumentum szerzője. Szakdolgozat témájaként a bibHygeia Python parancssori program, egy BIBTEX referencia fájlokat forráskódszinten diagnosztizáló és karbantartó rendszer továbbfejlesztése a cél. A szoftver fő célja, hogy segítse a dokumentum szerzőjét a bibliográfiai fájlokban potenciális szabálysértések elkerülését. Ezt mind lokálisan parancssori programként is lehet használni, illetve egyszerűen integrálható Continuous Integration (CI) rendszerbe is, ezzel biztosítva lehetőséget azon felhasználóknak, akik verziókövető rendszerben kezelik a LATEX-dokumentum és hozzá tartozó fájlokat.
Ez a téma a következő projekthez kapcsolódik: bibHygeia.
Hibalokalizációhoz szükséges kód lefedettségi adatok számításának integrációja az Eclipse fejlesztő környezetbe
Mára a programozók munkájának elengedhetetlen eszközévé váltak a különböző fejlesztői környezetek, amelyek segítik őket a kód megírásában, tesztelésében, hibák keresésében, javításában. Ezen felül olyan különálló eszközök érhetőek el még számukra, amelyek a hibák keresését különböző algoritmusok segítségével gyorsítják meg. A hibakeresés a programozók munkájának fontos része, amiben interakcióba lépnek a kóddal, hogy annak szemantikai, szintaktikai hibáit kiküszöböljék. Ebben segítenek a Spectrum-Based Fault Localization (SBFL) algoritmusok, amelyek kód lefedettség alapján számítják ki, hogy mekkora eséllyel hibás egy adott kódrészlet. Azonban ezen eszközök gyakori hátulütője, hogy a fejlesztői környezettől teljesen különállóak, így a két eszköz egyszerre való használata körülményessé teszi a munkát. A két alkalmazás között váltani kell, ezzel lassul a munkafolyamat, mindeközben, ha módosítjuk a kódot, akkor a kód lefedettséget újra kell számítani. Ez sok időt vesz igénybe, ezért szükséges a két eszköz kombinálása.
Ez a téma a következő projekthez kapcsolódik: iFL4Eclipse.
Vállalati számlafeldolgozó folyamatot támogató alkalmazás
A feladt egy webalkalmazás elkészítése Angular frontend-del és Spring Boot backenddel, köztük HTTP REST interfésszel, ami lehetővé teszi a felhasználók számára, hogy bejelentkezés után a vállalati számlafeldolgozási folyamat egyes lépéseit a jogosultságaik függvényében elvégezhessék. Az elkészült alkalmazásban lehetőség lesz a számlák metaadatainak hozzáadására és mellé a pdf formátumú számla feltöltésére és letöltésére, a számlák módosítására, listázására, azon belül keresésre és szűrésre. Számlák státuszának állítására is lesz lehetőség a felhasználók jogosultságainak megfelelően. A felhasználók kezelésére: felhasználók bejelentkezésére, új felhasználó hozzáadására, felhasználók módosítására, törlése, jelszavak módosítására és visszaállítására. E-mail küldésére a felhasználóknak.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Tesztautomatizáló keretrendszer fejlesztése és regressziós tesztelések végzése a CodeMetropolis szoftver vizualizációs programon
A CodeMetropolis egy szoftver vizualizációs program, amelynek segítségével a forráskód egy városként kerül reprezentálásra, ahol a metódusok épületek formájában, az osztályok kertekként, a namespace-k pedig kerületekként vannak ábrázolva egy Mojang által fejlesztett Minecraft nevű, máig frissülő játékban. A projekt 2016-ban érte el a fent taglalt változatát, avagy állt össze egy használható programmá. Az azóta eltelt idő alatt számos módosítási és újítási javaslat érkezett hozzá, hiszen a vizualizációhoz szükséges játék is rengeteg újdonsággal lett gazdagabb, így a CodeMetropolis mára elavulttá vált a vizualizáló játékhoz képest. Emiatt a felhasználó egyre több megkötést kényszerül meghozni. Ezen felül felmerültek további felhasználói igények és javaslatok is, melyek tovább bővítenék a program által nyújtott funkciók listáját. A szakdolgozat célja, hogy a CodeMetropolis program és a hozzá tervezett módosítások és újítások naprakészen, minél kevesebb hibát tartalmazva rendelkezésre álljon az oktatásban történő későbbi felhasználására, továbbá megkönnyítse a program későbbi módosítási és továbbfejlesztési munkálatait. Ennek megvalósításához funkcionális, end user, és regressziós teszteket végzek mind a program jelenlegi stabil változatán, mind a későbbi fejlesztett változatain, amikor már különféle funkciókkal bővült a program.
Ez a téma a következő projekthez kapcsolódik: CodeMetropolis.
A Militarized Zone társasjáték fejlesztése
A játék elindításakor egy főmenü jelenik meg amiben a játék elindításához szükséges szabályokat lehet beállítani. A szabályok a pálya mérete és a bombák szórására vonatkozik. A játék mikor elindul egy négyzetrácsos pálya jelenik meg, amin adott számú katonákat helyezünk el, majd egy zászlóst. A katonák rendelkeznek életerőcsíkkal a zászlósok viszont nem. Először az első, majd a második játékos következik a bombák kilövésével. A bombák lesebzik a katonákat (sajátokat is) illetve a közelben lévő zászlósokat lelassíthatják ha közelükben robban. A bombák robbanása addot szórásban bármelyik mezőbe betalálhat. A játékot akkor nyerte meg valamelyik játékos ha elfogy az ellenfél katonája, vagy a zászlósa beért az ellenfél oldalára.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Keycloak felhasználók adatainak exportálása új környezetbe való importáláshoz
Egy cég egyik Spring Bootos projektjében nem szeretett volna a felhasználók bejelentkeztetéséhez, regisztrációjához és tárolásához saját implementációt készíteni, ezért hozzákapcsoltak egy Identity and Access Management eszközt, a Keycloak-ot (https://www.keycloak.org). Azonban féltek, hogy egy szerverleállás következtében, vagy esetlegesen egy váratlan hiba folytán az adatok elveszhetnek, így arra kértek, hogy készítsek egy plugin-t, amely készít egy Backup JSON fájlt minden aktív felhasználó számára. Ehhez egy Event Listener plugin-t kellett írnom, melyet a Keycloak adminisztrátor panelján egyszerűen ki lehet majd választani és használni. A modul feladata, hogy minden regisztráció és bejelentkezés során kinyerjük a felhasználó adatát, majd formattáljuk és egy JSON fájlba írjuk, hogy az egyből importálható állapotba kerüljön, hogy ezeket a formattált JSON fájlokat később közvetlenül tudjuk beimportálni bármely Keycloak szerver adminisztrátor panelján. A fájlokat gyors olvasása és írása érdekében a felhasználók hash-elt felhasználónevét használjuk, mivel a Keycloak engedélyezi a speciális karakterek használatát felhasználónév választásakor. A plugin azonban nem csak megírja a fájlokat, hanem ki is törli azokat, amennyiben a felhasználó törli a profilját. Így a CRUD műveletek közül az update-en kívül minden megvalósul. Ezeken kívül a plugin még metrikákat is biztosít Prometheus kód formájában (https://prometheus.io), amely egy rendszer és szolgáltatás monitorozó rendszer. Ezt a kódot egy egyedi endpoint segítségével lehet elérni. A metrikák segítségével tudhatjuk meg, hogy hány Backup fájl található a rendszerben, hányat írtunk meg és töröltünk ki. Az utolsó funkcionalitás, melynek meg kellett még felelni, hogy egy szerver újraindítás következtében, a memóriában lévő azonosítók elvesztek, melyek szükségesek a működéshez. Ezért ezt egy további endpoint segítségével visszaállíthatóvá kellett tenni, a teljes működés érdekében. A visszaállításhoz csak egyszerűen meg kell hívni az endpoint-ot újraindítás után.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Játékfejlesztést támogató adatbázis-játékmotor interfész
A videojátékokat fejlesztő csapatokban nem csak a programozók, hanem más kiváló szakemberek is dolgoznak, akik a saját szakterületükön magasan képzettek, de nem szükségszerűen rendelkeznek magas szintű számítástechnikai képzettséggel. Ilyen szakemberek például az írók, a game designer-ek, a hangmérnökök és bizonyos művészek. Nem elvárható, hogy a programozókon kívüli összes csapattag képes legyen a saját munkája különböző verzióival módosítani, majd beüzemelni a játék fejlesztés alatt álló verzióját önellenőrzés céljából. Így bizonyos területeken előforduló hibák gyakran csak később lesznek felfedezve, sokszor csak a kiadás után, ami nem optimális. Az általam elképzelt szoftver hatékonyabbá tenné a játékfejlesztést azzal, hogy standard felhasználói felületet biztosít a játék nem programkód jellegű elemeinek módosítására, cseréjére. A fejlesztés alatt álló játékszoftver aztán szintén ettől a szoftvertől kaphatná meg például fordítás során az adatokat. Így például egy modelleket készítő munkatársnak nem kellene egy apró módosítás után tesztelői visszajelzésre várnia, rögtön ellenőrizheti a módosítást egy lokális változat elindításával, mindezt anélkül hogy bármilyen fájl útvonalát vagy a fordítási folyamatot a fejlesztőkhöz hasonló mélységben ismeri. A standard felület mellett szól még az is, hogy a csapatoknak kevesebb belső használatra szánt eszközt kell fejlesztenie egy ilyen szoftver használatával. Csökkentené ezen kívül az egyszerűbb hibák előfordulását is, hiszen egy 3D modellt például a feltöltöttek közül előnézettel támogatva lehet kiválasztani, az új verziókat csak fel kellene tölteni egy böngészős felületre. A szoftver alapvetően gráfadatbázisokat tudna használni, ezek kezelésére szeretném felkészíteni a következő okokból: a legtöbb elem ami egy videojátékban előfordul könnyen elképzelhető egy gráf csomópontjaiként. Bizonyos videojáték műfajok esetén kifejezetten célszerű lehet ez a gondolkodásmód, mert ez a szemlélet segíthet is a játék megalkotása során. Például könnyedén meghatározható ezáltal az, hogy egy NPC[1] pontosan hol és hány helyen fordul elő a játékban, ezzel kiszűrhető ha egy fontosabbnak szánt karakternek nincs elég szerepe a játékban. Láthatóvá tehető lenne az is, hogy milyen dialógusai vannak a karaktereknek, ezáltal könnyen ellenőrizhető lenne ezek stílusa, ami elősegíti a konzisztencia kialakítását hihetőbb, életszerűbb karakterek létrehozásához. A szoftver használatához a csapatoknak implementálnia kell az adatlekérést a ebből szoftverből, illetve kiválasztani az adatbázis(oka)t ami(ke)t szeretnének a fejlesztés során használni. Ezután a következő lépés feltölteni a játék elemeihez tartozó sémákat. Az utolsó lépés pedig az adatok feltöltése (felhasználók, jogosultságok beállítása, illetve a játékhoz tartozó adatok feltöltése). A rendszer ettől a ponttól kezdve már a fejlesztési folyamat része, használható a csapattagok számára. A tervek szerint az elkészült rendszer könnyen bővíthető, testre szabható és beemelhető lesz az azt felhasználó csapatok számára. A kezdeti cél a kisebb videojáték fejlesztő csapatok elérése, távlati cél pedig a nagy költségvetésű és komplexebb játékokat fejlesztő csapatok bevonása. Az elkészült szoftver nyílt forráskódú lesz, ingyenes és esetlegesen fizetős támogatással.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.
Tesztelési folyamatok és rendszer kifejlesztése a CodeMetropolis projekthez
Szoftverfejlesztés során számos hiba merülhet fel, amelyek megakadályozzák, hogy a szoftver megfelelően működjön. A szoftver tesztelése és különféle minőségellenőrző eszközök lehetővé teszik, hogy a szoftverfejlesztők és a tesztelők azonosítsák és kijavítsák ezeket a hibákat mielőtt a szoftver éles környezetbe kerülne. A dolgozatom elkészítéséhez a CodeMetropolis nevezetű alkalmazást szeretném használni. Ez az alkalmazás a Minecraft nevezetű videójátékra épülő vizualizációs eszköz, amely a fejlesztő számára egy adott programról különböző szoftverjellemzőket jelenít meg. A CodeMetropolis legfrissebb verziója évekkel ezelőtt készült, ami több problémát is felvet. Az alkalmazás nem naprakész, túl régi Java verzióval kompatibilis, emiatt szükség lehet verzió emelésre, illetve az alkalmazás bővítésére új funkciókkal. Ehhez viszont szükség lenne egy olyan rendszerre, ami segít a hibák felderítésében még azelőtt, hogy a változtatás kikerülne éles környezetbe. Az alkalmazások minőségbiztosítása nélkülözhetetlen a fejlesztés során, aminek egyik módja az automatizált tesztelés és minőség-ellenőrzés használata. Az automatizált tesztelés lehetővé teszi a tesztek hatékonyabb végrehajtását és a korai hibák felfedezését, miközben a minőség-ellenőrzés segítségével biztosítani lehet, hogy az alkalmazás a megfelelő minőségi szinten legyen. Egy ilyen rendszer beállítása és karbantartása összetett folyamat, különféle eszközöket igényel melyeket az adott alkalmazáshoz egyedileg kell igazítani. Ebben a szakdolgozatban egy olyan rendszer megvalósítását mutatom be, amely a CodeMetropolis alkalmazáshoz állít be automatizált regressziós tesztelést és minőség-ellenőrzést. A rendszer célja, hogy hatékonyabbá és megbízhatóbbá tegye az alkalmazás tesztelési folyamatát, és segítse a fejlesztőket a minőségi kód előállításában. A dolgozatomban bemutatom a rendszer tervezését, megvalósítását és tesztelését, valamint értékelem az elért eredményeket és a rendszer használatának előnyeit és esetleges hátrányait.
Ez a téma a következő projekthez kapcsolódik: CodeMetropolis.
GitLab issue hálózat grafikus megjelenítése hallgatói munka értékeléséhez
A hallgatók által GitLab-ba feltöltött gyakorlati munka (pl. Rendszerfejlesztés 2) értékelése jelenleg manuálisan történik a GitLab-ba beépített issue kezelő rendszer segítségével. Ez rendkívül időigényes folyamat, mivel olykor sok tucat issue közötti bonyolult hivatkozási hálózatot kell átlátni és fejben tartani. A folyamatot nagyban segítené, ha a kérdéses projektbe felvett issue-k hálózatát és az azon munkálkodó hallgatókat grafikus formában is megjelenítenénk. A megjelenítő gráf formátumot használjon majd és Google Chrome böngészőben kell működnie. A megjelenítési igények és a vizualizáció kidolgozása a dolgozat része, melyet a hallgató az oktatókkal együtt végez. Hasonló megjelenítés látható (bár más platformon) az alábbi videóban. Az elkészült rendszerben a hangsúly az interaktív (kereshető) megjelenítésen van és nem a mozgókép generáláson.
Ez egy hallgató által javasolt téma vagy még nincs hivatalosan projekthez kötve.