Szoftvertechnológiai laboratórium

Ericsson Szoftvertechnológiai Labor

Ericsson Szoftvertechnológiai Labor

 

2011-ben jött létre a Karon az Ericsson Szoftvertechnológiai Labor, amely immár több, mint egy évtizede stabilan működik hallgatók, ipari szakemberek és oktatók közös munkájának eredményeképpen, és modellként szolgál a további együttműködések kialakításához.

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.

RefactorErl K+F labor | CodeChecker | CodeCompass | P4 Labor | Webes szoftvertechnológia

RefactorErl K+F labor

 

A RefactorErl egy forráskód elemző és transzformáló eszköz Erlanghoz. Miért éppen Erlang? Mert ez egy izgalmas funkcionális programozási nyelv, melyet elosztott, valós-idejű rendszerek fejlesztéséhez  terveztek. A RefactorErl projekt célja, hogy ilyen komplex Erlang szoftverek fejlesztését, karbantartását, megértését segítse. Az eszköz számos hasznos funkcióval rendelkezik már most is: több mint 20 refaktorálás, forráskód klaszterezés, lekérdező nyelv, forráskód bonyolultságának mérése, programmegértés támogatás, duplikált kódok felderítése, stb.

Noha úgy tűnhet, hogy ez az eszköz már készen van, mi mindig találunk érdekesebbnél érdekesebb megoldandó feladatokat. Pár példa erre:

  •  Hogyan lehet gráfok hasonlóságát vizsgálva duplikált kódokat találni?
  •  Felhasználható-e ez plágium detektálásra?
  •  Lehet-e mérni, hogy egy forráskód mennyire energiapazarló vagy éppen hatékony?
  •  Vannak-e automatizálható módszerek, melyekkel a forráskód átalakításával csökkenthetem a felhasznált energiát?
  •  Hogyan tároljam el egy gráf reprezentációban hatékonyan a forráskód változásait?
  •  Meg lehet-e tanulni, hogy mi egy fejlesztő jellemző programozási stílusa?
  •  "Láthatatlan/rejtett" információk felderítése a forráskódból?
  •  Hogyan elemezhető/csatolható be egy natív kódból jövő információ?
  •  Használható-e a RefactorErl más programozási nyelvekhez is?
  •  Hogy derítsük ki a típust statikusan egy dinamikusan típusos nyelvben?
  •  Hogyan kezeljünk nagy, nagyon nagy gráfokat? Zoomolható-e mint egy térkép?
  •  Hogyan lehet Erlang kódokat hatékonyan párhuzamosítása automatikus transzformációkkal?
  •  Lehetséges-e hogy akár OpenCL kódokat is előállítsunk a hatékonyság növelése érdekében? 

 

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ó és a ráépülő StaticAnalyzer segítségével. A projekt nemrég vált nyílt forráskódúvá, megtaláljátok a Github-on is: 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.

A kontributált kódokat az Apple és Google mérnökei nézik át, visszajelzéseik alapján rengeteget lehet tanulni.

http://gsd.web.elte.hu/softtech/ 

CodeCompass

Nagyméretű, sok éven át számos programozó által fejlesztett projektek esetében gyakori probléma, hogy már 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 vagy hatékony elemző-kódnavigáló toolok (pl. Understand C++, esetleg kódvizualizációk (pl. SourceInsigh, de a CodeCompass mindezt egyszerre tudja, ráadásul több nyelvre is (jelenleg C, C++, Java és Python támogatott).

A CodeCompass alprojekt CodeCompass ugyancsak nyílt forráskódú. A hallgatók dolgozhatnak nyelvi parsereken (új nyelvekhez), grafikai megjelenítéseken vagy akár a web gui-ban is.

A CodeCompasst kipróbálhatjátok egy élő demó rendszeren, ami több nyílt forráskódú könyvtár (pl. LLVM) elemzését mutatja be.
https://codecompass.net/demo/

P4 Labor

A projekt keretében egy a Stanford és Princeton egyetemek, valamint a Google által vezetett és számos ipari partner által támogatott konzorcium által fejlesztett, magas szintű, hardver és protokollfüggetlen, alkalmazási terület specifikus programozási nyelvet, a P4-et (https://p4.org/) vizsgáljuk, mellyel elsősorban csomagfeldolgozást végző hálózati eszközök működését megadó algoritmusok írhatók le. A nyelv olyan szempontból is érdekes, hogy az aktuális verziója jelenleg is fejlesztés alatt áll. A kutatás a nyelv alkalmazhatóságának esettanulmányok segítségével történő vizsgálatán felül magában foglalja a nyelvhez illeszthető, hatékony kód előállítására képes fordítóprogram elkészítési lehetőségeinek, illetve a P4 nyelvű alkalmazások optimalizációs és verifikációs lehetőségeinek áttekintését is. A projekttel kapcsolatos további információk a p4.elte.hu oldalon találhatóak.

Kontakt: Tejfel Máté matej@inf.elte.hu

Webes szoftvertechnológia

A webes szoftvertechnológia labor keretében lehetőség van különböző webes projektekben részt venni. A projektek elsősorban a frontendre fókuszálnak, szerveroldalon az üzleti rétegig terjednek. A labor tématerületei:

webes frontendek fejlesztése

webes adatok vizualizációja

banki informatika

webes startupok világa

Projektek
Programozási környezet fejlesztése

Különböző oktatási és módszertani igényeket kiszolgáló webes programozási környezet fejlesztése. A felület egy egyoldalas alkalmazás, amely REST API-n keresztül kapcsolódik a szerveroldali logikához, ahol a programkódok virtuális konténerekben futnak le. Jelenleg TypeScript és C++ nyelveket támogatja a környezet. Feladat: felhasználó- és csoportkezelés hozzáadása, feladatok felhasználókhoz rendelése, további nyelvek támogatása.

Felhasznált technológiák

React

React-router

MobX

Docker

Express

Monaco

Bootstrap, Bootswatch

Adatvizualizációs projekt

Adatok megjelenítése alacsony és magas szintű eszközök segítségével. Specializált platformok és meglévő függvénykönyvtárak használata, valamint egyedi grafikonok és architektúrák készítése korszerű webes technológiákkal. Ösztöndíj lehetőséggel.

Kontakt: Horváth Győző gyozke@inf.elte.hu

ELTE Térinformatikai Labor

A térinformatika és a távérzékelés alkalmazása napjainkban számos szak- és tudományterületen megjelenik: a klasszikus térképészeti felhasználástól az agráriumon, építőiparon, várostervezésen és környezetvédelmen át az autonóm rendszerek navigációjáig és a kiterjesztett valóság (AR) alkalmazásokig. A multi- és hiperspektrális műholdas és légi felvételezés mellett a LiDAR (Light Detection and Ranging) technológia elmúlt évtizedekben történő gyors fejlődése a lézerszkennelés által nyerhető nagy sűrűségű és pontosságú pontfelhők révén létrehozta a térbeli adatgyűjtés egy új formáját. Ezen nagy méretű (akár TB-os méretű) raszteres és vektoros állományok hatékony tárolása és algoritmikus feldolgozása számos informatikai kihívást foglal magába.

A labor keretében a karon futó térinformatikai és távérzékelési kutatásokba és szoftverfejlesztésbe lehet bekapcsolódni. A projektek egy része tisztán szoftveres feladatokat foglal magába, de van lehetőség terepi feladatokat (adatgyűjtést) tartalmazó projektekhez is csatlakozni, amelyekhez a hardveres eszközök (pl. LiDAR szenzor, multispektrális kamera, UAV drón) a Karon rendelkezésre állnak.
A laborba elsődlegesen MSc és PhD hallgatókat várunk, a futó projektek implementációs nyelve a C++ valamint a C#, így közülük valamelyikben a jártasság elvárt. Különösebb térinformatikai előismeret megléte nem feltétel, de a Programtervező informatikus MSc szak térinformatikai kurzusainak elvégzése előnyt jelent. A projektlabor PTI MSc kurzusként is meghirdetésre kerül, a Szoftvertechnológiai labor 4. csoportjára jelentkezve lehet felvenni a Neptunban, továbbá a projektlabor témáiból diplomamunka és/vagy TDK dolgozat is készíthető.

További információk és az aktuálisan elérhető projektek:

https://gis.inf.elte.hu/