Rendszertervezés és -integráció

A tantárgy angol neve: Design and Integration of Embedded Systems

Adatlap utolsó módosítása: 2018. február 22.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Villamosmérnöki szak, MSc képzés
Beágyazott információs rendszerek főspecializáció
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIMIMA11 2 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Majzik István,
A tantárgy tanszéki weboldala http://www.mit.bme.hu/oktatas/targyak/vimima11
4. A tantárgy előadója
Scherer Balázs
dr. Majzik István

5. A tantárgy az alábbi témakörök ismeretére épít
A Rendszerarchitektúrák tantárgy anyaga
A Beágyazott rendszerek szoftvertechnológiája tantárgy anyaga
6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIMIM238" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény( "BMEVIMIM151" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIMIM238", "FELVETEL", AktualisFelev()) > 0
VAGY
TárgyEredmény("BMEVIMIM151", "FELVETEL", AktualisFelev()) > 0)
VAGY Szak("6N-MA") VAGY Szak("6NAMAR") //KJK AVCE

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rendek grafikus formában itt láthatók.

Ajánlott:
Nincs.
7. A tantárgy célkitűzése

A tantárgy célja azoknak a módszereknek a bemutatása, amelyek szükségesek beágyazott rendszerek szisztematikus fejlesztéséhez. Hangsúlyos szerepet kapnak a fejlesztési életciklus modellek (pl. V-modell, iteratív modellek), valamint olyan, a teljes fejlesztési folyamatot átfogó megoldások, mint a minőségbiztosítás, a projekttervezés, valamint a követelmények, verziók és konfigurációk kezelése. A rendszertervezési módszerek között, építve a korábban megismert építőelemekre és technológiákra, a tantárgy bemutatja a hardver és szoftver együttes tervezés valamint a komponens integrálás technikáit, ezek között kitérve a modell alapú fejlesztésre is. A tárgy hangsúlyosan tárgyalja azoknak a beágyazott rendszereknek a tervezési specialitásait, amelyek működése hozzájárulhat veszély, illetve adott környezeti feltételek mellett baleset vagy anyagi kár kialakulásához (ilyen rendszereket találunk például a közlekedési, egészségügyi, folyamatirányítási alkalmazásokban). Ennek során a hallgatók megismerik a biztonságkritikus rendszerek (sok esetben szabványban is rögzített) konstrukciós alapelveit, a tervezői döntéseket igazoló biztonsági és megbízhatósági analízist, valamint a szisztematikus verifikáció módszereit. A tárgy gyakorlatai konkrét eszközöket és technológiákat mutatnak be a követelménykezelés, konfigurációmenedzsment, forráskód ellenőrzés, komponens tesztelés, integrációs tesztelés, rendszertesztelés, veszély analízis és modell alapú tervezés tipikus feladatainak elvégzéséhez. 

8. A tantárgy részletes tematikája
1. Fejlesztési folyamatok, életciklus modellek és minőségbiztosítás szerepe a rendszertervezés során. A CMMI alapjai.
2. Projekttervezés. Követelmények, verziók és konfigurációk kezelése. Gyakorlat: Követelménykezelés (követhetőség), konfigurációmenedzsment és verziókezelés (pl. DOORS, SVN, Trac).
3. A V-modell szerinti fejlesztési életciklus lépései. Követelmények analízise.
4. Logikai és technikai architektúrák tervezése. Hardver és szoftver együttes tervezés. Modell alapú tervezés (pl. Simulink, Stateflow). Hardver és szoftver komponensek specifikálása, tervezése, megvalósítása és integrációja. Beágyazott rendszerekre jellemző specialitások és megkötések.
5. Követelmények és tervek ellenőrzése: Általános elvárások, a teljesség, ellentmondás-mentesség és tesztelhetőség kritériumai. Forráskód ellenőrzés (hibaminta keresés, kódolási szabályok ellenőrzése). Gyakorlat: Forráskód ellenőrzés statikus analízissel. Dokumentáció generálása (DoxyGen).
6. Tesztelési alapfogalmak áttekintése (az ISTQB ajánlásai). Komponens szintű (unit) tesztelés specifikáció alapú (funkcionális, fekete doboz) és struktúra alapú (üvegdoboz) tesztelési módszerekkel. Teszt fedettségi mértékek és teszt minőségi jellemzők. A modellalapú teszttervezés lehetőségei. Gyakorlat: Komponens (unit) tesztelés. Teszt fedettség mérése.
7. Integrációs és rendszertesztelés: Alulról felfelé és felülről lefelé történő inkrementális tesztelés. A rendszertesztelés és a validációs tesztelés tipikus módszerei. Monitorozás és debuggolás.
8. Integrációs tesztelés model-, software-, processor-, hardware-in-the-loop (MIL, SIL, PIL, HIL) módszerekkel. Gyakorlat: HIL tesztelési környezet összeállítása, egy tipikus HIL tesztfejlesztő környezet (pl. NI VeriStand) használatának bemutatása.
9. A rendszer- és szoftverbiztonság koncepciója: Baleset, kockázat, biztonság fogalma. A biztonságintegritási szint. A megbízhatóság, rendelkezésre állás és a biztonságosság kritériumai és mérőszámai. Gyakorlat: Biztonsági követelmények specifikálása. Biztonságkritikus rendszerek fejlesztési szabványai (az IEC 61508 alapján).
10. Az architektúra tervezés alapelvei és tipikus megoldásai biztonságkritikus rendszerek esetén: A biztonságos működés általános feltételei hibák bekövetkezésekor. Architektúra tervezési minták fail-stop illetve fail-operational jellegű működéshez.
11. Hibatűrés állandósult és tranziens hardver hibák esetén (TMR, NMR struktúrák, a hibadetektálás és helyreállítás szoftveres módszerei). Hibatűrés szoftver tervezési hibák esetén (N-verziós programozás, javító blokkok). Az egyes megoldások erőforrás- és időigénye. Gyakorlat: Architektúra tervezési minták használata. Architektúra tervek készítése modellező eszközzel. Egy SCADA rendszer architektúrájának elemzése (mintapélda).
12. A veszély analízis módszerei a tervezői döntések elemzéséhez: A veszély analízis alapvető módszereinek áttekintése. Kvalitatív és kvantitatív veszély analízis technikák: Hibafa, eseményfa, ok-következmény analízis, FMEA, FMECA. Kockázati mátrix felépítése az analízis alapján. Az általános kockázatcsökkentési módszerek áttekintése.
13. Megbízhatósági analízis módszerek a szolgáltatásbiztonsági követelmények teljesítésének igazolásához: Kombinatorikus modellek használata komponensek független hibái esetén. A megbízhatósági blokk diagram felépítése, soros, párhuzamos, szavazásos struktúrák analízise. Gyakorlat: Hibafa és eseményfa konstrukciója, megbízhatósági blokk diagram összeállítása. Egy SCADA rendszer megbízhatósági analízise (mintapélda).
14. A formális modelleken alapuló tervezés, helyességigazolás és kódgenerálás: Formális modellek időfüggő viselkedésű beágyazott vezérlőkhöz. A követelmények formalizálása temporális logikákkal. Formális verifikáció modellellenőrzéssel (mintapélda). Kódgenerálás időzített automata modellek alapján. Monitor szintézis a biztonsági követelmények futásidőbeli ellenőrzéséhez.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat.
10. Követelmények
A szorgalmi időszakban: Egy otthoni feladat elkészítése, alkalmazva a tantárgy során tanult rendszertervezési és ellenőrzési módszereket. A feladat elégséges teljesítése a feltétele az aláírás megszerzésének.
A vizsgaidőszakban: A vizsga írásbeli vizsga, a vizsgajegyet 25%-ban az otthoni feladat eredménye, 75%-ban a vizsga eredménye határozza meg.

11. Pótlási lehetőségek Az otthoni feladat a pótlási időszak végéig adható be. Az otthoni feladat zárthelyivel nem helyettesíthető.
12. Konzultációs lehetőségek Az előadókkal történő egyeztetés szerint.
13. Jegyzet, tankönyv, felhasználható irodalom
Frank Vahid, Tony d. Givargis: Embedded System Design: A Unified Hardware/Software Introduction. John Wiley & Sons, 2001. ISBN: 0471386782
Neil Storey: Safety-Critical Computer Systems. Addison-Wesley, 1996. ISBN: 0201427877

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontaktóra42
Félévközi készülés előadásra 7
Félévközi készülés gyakorlatra
 7
Házi feladat elkészítése24
Vizsgafelkészülés
40
Összesen120
15. A tantárgy tematikáját kidolgozta
Scherer Balázs
dr. Majzik István

Egyéb megjegyzések A tantárgy neve angolul: Design and Integration of Embedded Systems