Szoftvertechnológia Labor

Model C++ Projekt



Kedves hallgatók!


A hallgatók a szoftvertechnológiai labor keretein belül egy „éles” kutatási projektbe csatlakozhatnak be, tényleges kutatásokban és ipari fejlesztésekben vesznek részt, eközben elsajátíthatják a legmodernebb szoftvereszközök és fejlesztési módszerek használatát. Az eredményes közreműködésért kreditet kaphatnak (Msc-n), és a projektmunka beszámítható a kötelező szakmai gyakorlatba is. A hallgatók által elvégzett munka remek lehetőség szakdolgozat vagy diplomamunka elkészítéséhez, TDK-n való résztvételhez, de volt már arra is példa, hogy valaki nemzetközi konferencián vett részt a projektmunkájával. A feladatokat tipikusan otthonról is lehet végezni, heti egy-két közös meeting mellett.


A Model C++ projekt az ELTE IK és az Ericsson közös kutatás-fejlesztési projektje. A projekt célja nagyméretű (100.000 forrássor vagy afeletti) szoftverrendszerek minőségének javítása.


CodeChecker


A CodeChecker alprojekt statikus elemzés segítségével próbál olyan potenciális hibákat felfedezni, melyeket sem a fordító, sem a tesztek nem mutattak ki. A statikus elemzés során a programot nem futtatjuk, hanem csak a forráskódot elemezzük. Jelenleg C/C++ kódokat elemzünk az LLVM/ Clang C++ fordító (http://clang.llvm.org/) és a ráépülő StaticAnalyzer (http://clang-analyzer.llvm.org) segítségével. A projekt nemrég vált nyílt forráskódúvá, megtaláljátok a Github-on is: https://github.com/Ericsson/codechecker. Felhasználóink, fejlesztő partnereink közt van a Sony, az Apple és a Google is.


A hallgatók a CodeChecker keretrendszer fejlesztése mellett elsősorban egyes ellenőrzési szabályokat definiálhatnak és implementálhatnak, de lehetőség van kutatási feladatok elvégzésére is. Remek lehetőség a C és C++ gonosz hibáinak mélyebb megismerésére.


CodeCompass


Nagyméretű, sok éven át számos programozó által fejlesztett projektek esetében gyakori probléma, hogy más senki sem látja át a rendszer egészét. Márpedig akár hibajavítás, akár új funkció hozzáadása a cél, először a jelenlegi rendszer működését kell megérteni. A piacon léteznek gyors, web-alapú kereső eszközök (pl. az OpenGrok http://opengrok.github.io/OpenGrok/) vagy hatékony elemző-kódnavigáló toolok (pl. Understand C++ https://scitools.com/), esetleg kódvizualizációk (pl. SourceInsigh thttp://sourceinsight.com/), de a CodeCompass mindezt egyszerre tudja, ráadásul több nyelvre is (jelenleg C, C++, Java és Python támogatott).


A hallgatók dolgozhatnak nyelvi parsereken (új nyelvekhez), grafikai megjelenítéseken vagy akár a web gui-ban is. A CodeCompass alprojekt még nem nyilvános forráskódú, de az első meetingen bemutatjuk.


Mindkét alprojekthez elsősorban a programfejlesztés iránt érdeklődő, stabil programozói tudással rendelkező (CodeChecker: C++, CodeCompass: C++, Java, Python, JS), a feladat mellett elkötelezett hallgatókat várunk.


Az érdeklődők keressék e-mailben dr. Porkoláb Zoltánt (gsd@inf.elte.hu), illetve az óramegbeszélés időpontjáról értesítünk benneteket a Neptun-on keresztül.