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: nincs megadva

    Adatlap utolsó módosítása: 2022. december 27.

    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
    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:

     
    - 6db KisZH – a gyakorlatokhoz illeszkedve online (Moodle) teszt formájában 
    - 1 nagy ZH jelenléti formában 

    Az aláírás megszerzésének feltétele a 6 kisZH-ból legalább 3 sikeres megírása, valamint a zárthelyi elfogadható (legalább elégséges szintű) megoldása. A kis és nagy zárthelyi esetén is 50% feletti eredmény tekinthető elégségesnek. A vizsgára bocsátás feltétele az aláírás megléte.  

    A vizsgajegybe a félévközi eredmények nem számítanak bele.
     
     
    Vizsgaidőszakban
     
    Írásbeli vizsga 
    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 kis zárthelyik 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ése
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés50
    Ö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