Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Modellalapú szoftverfejlesztés

    A tantárgy angol neve: Model-based Software Development 

    Adatlap utolsó módosítása: 2024. február 1.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA22   2/1/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Mezei Gergely,
    4. A tantárgy előadója
    Dr Mezei Gergely, docens, AUT
    Dr Somogyi Ferenc, tanársegéd, AUT
    Dr Simon Balázs, docens, IIT
    Dr Semeráth Oszkár, adjunktus, MIT

    5. A tantárgy az alábbi témakörök ismeretére épít Szoftvermodellezés, objektumorientált programozás
    6. Előtanulmányi rend
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIAUMA01", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMA01", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény( "BMEVIMIMA00", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIMA00", "FELVETEL", AktualisFelev()) > 0)

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

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    7. A tantárgy célkitűzése A tárgy célja, hogy a hallgatók megismerjék a modellvezérelt szoftverfejlesztés alapjait, ideértve a szakterületi nyelvek fogalmát, a szöveges, ill. grafikus nyelvek kialakítása során vizsgálandó szempontokat, a követendő lépéseket, a szakterületi nyelvek bevezetéséhez kapcsolódó feladatokat, valamint a nyelvek karbantartásának kérdéseit. A tárgy elvégzésével a hallgatók átlátják és alkalmazni tudják a modellfeldolgozás eltérő lehetőségeit szoftvermodellek feldolgozására és különböző szoftvertermékek (forráskód, konfigurációs fájl, egyéb) generálására
    8. A tantárgy részletes tematikája
    Az előadások tematikája
     
    1. A modellvezérelt fejlesztés, a szakterületi modellezés használata. A szakterületi nyelvek jellemzői, felhasználásuk, példák. A nyelvtervezés folyamatának és a modellek feldolgozásának bemutatása. 

    2. Szöveges nyelvek/modellek feldolgozása, a fordítóprogramok felépítése. A szöveges nyelvek csoportosítási lehetőségei. Interpreterek működése és jellemzői. Projekciós editorok. 

    3. A lexikai elemzés alapfogalmai és lépései, reguláris kifejezések, tokenizáció. A szintaktikai elemzés alapjai, levezetési fa, konkrét és absztrakt szintaxisfa. Környezetfüggetlen nyelvtanok. 

    4. Szintaktikai elemzés: egyértelműség fogalma, balrekurzió, top-down parsing (BFS, DFS), LL(1) elemzés. A jobbelemzés sajátosságai. 

    5. A szemantikai elemzés feladatai: szimbólumtáblák kialakítása és kezelése, típusrendszer, statikus és dinamikus típuselemzés. Attribútumnyelvtanok. 

    6. Az optimalizáció feladata. Az alapblokk feladata, az optimalizáció szintjei. Transzformáció, Static Single Assignment (SSA), gráfreprezentáció, fi-függvény, optimalizálási technikák.  

    7. A kódgenerálás technikái. Nyelvek közti átjárhatóság, az IL nyelv. Kódobfuszkáció. 

    8. Modellezés metamodell alapon, a metamodellezés alapjai. Az UML kiterjesztési lehetőségei, UML Profile. Modellezés Blockly alapon. MOF és Eclipse-Modeling Framework (EMF). Kényszerek a modellekben, OCL. 

    9. Konkrét és absztrakt szintaxis fogalma. Szöveges és grafikus nyelvek konkrét szintaxisa. Modellek szemantikája. 

    10. Modellek feldolgozása, feldolgozási módszerek csoportosítása. Modelltranszformációk.  

    11. Modellek transzformációja, gráftranszformációk. 

    12. Modell-alapú fejlesztések. A kiterjeszthetőség támogatása: generatív és generikus programozás sajátosságai, Termékcsaládok támogatása: feature modeling. Multiplatform fejlesztések: MDA. Modell szimuláció 

    13. Kitekintés: modellezés/DSL fejlesztés a nagyvilágban/aktuális kihívások 
     

     
    A gyakorlatok/laborok részletes tematikája 

    1. Szakterületi nyelvek és modellvezérelt fejlesztés a gyakorlatban.  

    2. Fordítók működése a gyakorlatban: a nyelvtani szabályok. Compiler as a service, Roslyn. A projekciós editorok világa: MPS. 

    3. Hogyan fejlesszünk szöveges nyelvet? Fordító készítés ANTLR alapokon. 

    4. Szöveges nyelvek szerkesztőkörnyezete, fordítóprogram Xtext alapokon. 

    5. Metamodellezés a gyakorlatban EMF segítségével. 

    6. Modellfeldolgozása, gráftranszformáció a gyakorlatban. 

    7. Tartalék / konzultáció. 

     
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat
    10. Követelmények

    Szorgalmi időszakban:

    - 5db otthon kidolgozandó házi feladat a gyakorlatokhoz kapcsolódva

    - 1 nagy ZH jelenléti formában


    Az aláírás megszerzésének feltétele az 5 házi feladatból legalább 3 megoldása legalább elégséges szinten, valamint a zárthelyi elfogadható (legalább elégséges szintű) megoldása. 


    A vizsgára bocsátás feltétele az aláírás megléte. 

    A vizsgajegybe a félévközi eredmények a következő módon számítanak bele:

    - minden házi 0-2 pontot ér (max 10 pont)

    - a nagy ZH-ra 0-14 pont szerezhető 


    Vizsgaidőszakban:  Írásbeli vizsga

    A vizsgán 48 pont érhető el, a félév közben szerzett pontszámmal együtt így 72 pont érhető el.

    Ponthatárok:
    - 60 ponttól jeles
    - 50 ponttól jó,
    - 43 ponttól közepes
    - 36 ponttól elégséges
    - 36 pont alatt elégtelen

    11. Pótlási lehetőségek A nagy zárthelyihez a TVSZ előírásai szerint mind a szorgalmi, mind a pótlási időszakban 1-1 pótlási lehetőséget biztosítunk. A házifeladatok nem pótolhatóak.
    12. Konzultációs lehetőségek Igény szerint az előadókkal egyeztetve.
    13. Jegyzet, tankönyv, felhasználható irodalom
    Krysztof Czarnecki, Ulrich Eisenecker, Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000. 

    Steven Kelly, Juha-Pekka Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation, Wiley-IEEE Computer Society Press, 2008. 

    Martin Fowler, Domain-Specific Languages, Addison-Wesley Professional, 2010 

    Lengyel László, Mezei Gergely, Mészáros Tamás, Asztalos Márk, Vajk Tamás, Fehér Péter: Modellvezérelt paradigmák, Egyetemi jegyzet, VI 201-010, 2013. 
    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 órákra28
    Felkészülés zárthelyire30
    Házi feladat elkészítése30
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés20
    Összesen150
    15. A tantárgy tematikáját kidolgozta
    Dr Mezei Gergely, docens, AUT 
    Dr Somogyi Ferenc, tanársegéd, AUT 
    Dr Simon Balázs, docens, IIT 
    Dr Semeráth Oszkár, adjunktus, MIT