Beágyazott kódgenerátorok tesztelése

Tanszéki konzulens: 
A munkatárs fényképe
habilitated associate professor
Szoba: IE416
Tel.:
+36 1 463-4114
Email: sujbert (*) mit * bme * hu
Külső konzulens: 
Pintér Gergely, thyssenkrupp Components Technology Hungary Kft.

A kiírás adatai

A téma státusza: 
Korábbi (jelenleg nem aktív, de látszik)
Kiírás éve: 
2019
A kiírás jellege: 
önálló labor, szakdolgozat/diplomaterv

Egy modern gépjármű biztonsági és komfort funkcióit számos beágyazott vezérlőegység (ECU) támogatja.  Az ezen számítógépeken futó szoftver komplexitása gyakran összemérhető a desktop alkalmazásokéval, pl. egy elektronikus kormányrendszer kb. 150 szoftverkomponensből, több ezer kapcsolatból és félmillió kódsorból áll.  A szoftver modellezésére az AUTOSAR szabvány grafikus modellező nyelvét használják (ez az UML beágyazott, autóipari megfelelőjének tekinthető).  Az AUTOSAR modell egyúttal számos automatikus helyességellenőrző és kódgeneráló eszköz inputja.

Automatikus kódgenerátorokat használunk olyan esetekben, ahol valamilyen vizuális leírásmódból szisztematikusan elő lehet állítani az azt megvalósító forráskódot, ezzel jelentős mennyiségű mechanikus munkától óvva meg a fejlesztőket.  Így jön létre például az ECU memóriamanagement moduljának jelentős része, kommunikációs szoftverek konstans adatszerkezetei és a fedélzeti diagnosztikai funkciókat leíró adatstruktúrák.  Az így generált C forrásrészletek a build folyamat során összefordulnak a kézzel írt részekkel, hogy végül megkapjuk az ECU-n futó teljes alkalmazást.  A kódgenerátorokat egy Eclipse-alapú modellező eszköz plug-injaiként valósítjuk meg, tipikusan Javaban vagy egyszerűbb estekben egy template nyelven.  A kódgenerátorok egy XML-alapú leírásmódot (az adott modul konfigurációját) feldolgozva C forráskódot írnak ki (tipikusan inicializált konstans adatszerkezeteket).

A hallgató feladata, hogy fejlesszen egy kódgenerátort ellenőrző tesztprojektet az általa választott modulhoz (memóriakezelés, kommunikáció, fedélzeti diagnosztika, stb.).  A munka keretében (i) megismeri a tesztelt modul specifikációját és konfigurációjának leírásmódját, (ii) konfigurációs modelleket készít, melyekhez meghatározza az elvárt kimenetet, (iii) megvalósítja a tesztprojektet, (iv) ellenőrzi a tesztelt kódgenerátor robusztusságát hibás modellekkel, valamint (v) a szerzett tapasztalatok és a mért kódfedettség alapján javaslatot tehet a kódgenerátor továbbfejlesztésére.

A feladat megoldása során a hallgató betekintést nyer az autóipari szoftvermodulok fejlesztésének és tesztelésének folyamatába, megismeri az általa választott modul alapvető működését és konfigurációs lehetőségeit, illetve elsajátítja a modellfeldolgozás alapjait.  A feladat megoldásához az alapképzés során elsajátított alapvető Java programozási ismeretek szükségesek, amelyeket a hallgató a munka során tovább mélyíthet.  A hallgató folyamatosan segítséget kap a ThyssenKrupp Presta Hungary Kft. munkatársaitól, akik a beágyazott szoftvermodulokat, illetve a konfiguráció generáláshoz is használt modellező eszközt fejlesztik.  A feladatra többen is jelentkezhetnek.

A feladat megoldása során olyan keresett és piacképes tudás szerezhető, amely közvetlenül kamatoztatható Eclipse alapú fejlesztéseket végző cégeknél és természetesen a hazánkban dinamikusan bővülő autóipari szoftverfejlesztésben.

© 2010-2024 BME MIT