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ó    

    Elosztott rendszerek és szakterületi modellezés

    A tantárgy angol neve: Distributed Systems and Domain-Specific Modeling

    Adatlap utolsó módosítása: 2014. október 2.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnökinformatikus MSc szak
    Alkalmazott Informatika főspecializáció
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA01 1 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Charaf Hassan,
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Charaf Hassan

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Lengyel László

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Mezei Gergely

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít

    Objektumorientált programozási ismeretek. Szoftvertechnikák.

    6. Előtanulmányi rend
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIAUM124" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVIAUM126" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVIMIMA00" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUM124", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény("BMEVIAUM126", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény("BMEVIMIMA00", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény( "BMEVIAUMA22" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMA22", "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ó.

    Ajánlott:

    Nincs

    7. A tantárgy célkitűzése

    A tárgy célja, hogy a hallgatók megismerjék a komponens alapú technológiákat, a middleware szolgáltatások kialakításának és használatának lépéseit, jártasak legyenek az elosztott rendszerek területén az aszinkronitás, megbízhatóság, biztonság, teljesítménymetrikák, skálázhatóság, elosztott állapotkezelés valamint monitorozás területeken.

    További cél, hogy a hallgatók ismerjék a szakterületi nyelvek bevezetésével kapcsolatos döntést támogató kérdéseket, a 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

     

    Előadás anyaga

    1.

    Bevezetés: elosztott rendszerek elméleti alapjai, elosztott informatikai rendszerek tervezése és fejlesztése, elosztott rendszerek felépítéséhez szükséges alapszolgáltatások,

    2.

    Objektum- és szoftverkomponensek fejlesztési paradigmái, szabványosított architektúrák (DCOM, CORBA), kód újrafelhasználhatósági technikák, komponens alapú programozás,

    3.

    Komponens technológiák, az elosztottság különböző lehetőségei, az elosztott, komponens alapú tervezés és fejlesztés szempontjai, alkalmazások közötti kommunikáció

    4.

    Middleware szolgáltatások, tranzakció kezelés és aszinkron működés elosztott rendszerekben (MTS, MSMQ)

    5.

    Biztonság, a megbízhatóság és aszinkronitás elosztott környezetben, elosztott állapotkezelés, többszálú programozás paradigmái, többrétegű szoftverarchitektúrák elméleti megalapozása

    6.

    Elosztott adatkezelés és megjelenítés, szoftverrendszerek skálázhatóságának kérdései és megoldásai

    7.

    Tipikus elosztott architektúrák (pl. P2P), Elosztott rendszereket megvalósításának bemutatása esettanulmányok formájában

    8.

    Szakterületi modellezés, bevezető: A modellvezérelt fejlesztés alappillére a szakterületi modellezés használata. A szakterületi nyelveket egy-egy szakterület feladatainak leírására dolgozzuk ki, kifejezőképességük a tématerületre korlátozódik, ott viszont rendkívül hatékony. A szakterületi nyelvek jellemző, felhasználásuk, példák.

    9.

    Szoftvermodellezés, szöveges nyelvek: A szöveges szakterületi nyelvek gyakran közel állnak a klasszikus programozási nyelvekhez. Egyszerű nyelvet használva, szöveges formában írják le a szakterületi megoldásokat. A szakterületi kifejezések használata jelentősen megkönnyíti, hogy a szakértők különösebb informatikai előképzettség nélkül megérthessék a feladatokat, tevékenységeket.

    10.

    Vizuális nyelvek, kényszerek: A vizuális szakterületi nyelvek révén még jobban elősegíthetjük a megértést egy grafikus jelölésrendszer bevezetésével. Ebben az esetben azonban a nyelvek leírása összetettebb feladatot jelent, amire több alternatíva is létezik.

    A szoftverek vizuális modellezése során metamodellekkel definiáljuk az alkalmazások statikus struktúráját. A metamodellek összetett megkötéseinek kifejezésére kényszereket használunk.

    11.

    Konkrét szintaxis, szemantika: Egy új modellezési nyelv létrehozásakor nem csak a nyelv szerkezetét, a nyelv fogalmait és a köztük levő kapcsolatokat kell megadnunk, hanem az egyes fogalmak megjelenési formáját is. Ezt nevezzük konkrét szintaxisnak.

    A szakterületi modellek létrehozása és megjelenítése mellet a modellvezérelt fejlesztés szükségessé teszi, hogy a modellek jelentését is meg tudjuk adni. Ezt szemantikának nevezzük. A szemantika szerepe és alkalmazás módjai, lehetőségei a modellvezérelt fejlesztésben.

    12.

    Generatív programozás, modellfeldolgozás: Ha a modellezés célja további szoftvertermékek automatizált generálása, generatív modellezést alkalmazunk. Modellek alapján generálhatunk akár szöveges dokumentációt, de gyakran a modellezett funkcionalitás részleges vagy akár teljes forráskódja is előállítható.

    13.

    Gráftranszformáció: A modellvezérelt fejlesztés egyik legfontosabb lépése a modellek feldolgozása, melynek során modellekből más modelleket, vagy valamilyen szöveges kimentet, például fordítható majd futtatható forráskódot generálunk.

    Szoftverfejlesztés során alapvető követelmény annak eldöntése, hogy amit elkészítettünk, az helyesen működik-e illetve, hogy a megadott specifikációnak megfelelő funkciókat valósítottunk-e meg a rendszerben. Ezek ellenőrzését verifikációval és/vagy validációval végezzük el.

    14.

    Szimuláció: egy valós rendszer működését számítástechnikai eszközökkel reprodukáljuk. Ehhez használjuk a valós rendszer valamilyen modelljét, ami kifejezi a rendszer számunkra fontos tulajdonságait, a szimuláció pedig előállítja a modell időbeli viselkedését. Ebből következtetni tudunk a valós rendszer viselkedésére.

     

     

    Gyakorlat anyaga

    1.

    Elosztott architektúrák: az elosztott architektúrák tervezésének és kialakításának szempontja egy példa kidolgozásán szemléltetve.

    2.

    Szabványosított architektúrák alkalmazásának kérdései, a szabványos architektúrák alkalmazásának szemléltetése az előnyök bemutatása példákon. Elosztott rendszerek kialakításának gyakorlata.

    3.

    Elosztott rendszerek teljesítménymetrikái, finomhangolási és skálázási lehetőségei, monitorozása és nyomonkövetése példákon demonstrálva. Az elosztott rendszerek biztonsági aspektusainak szemléltetése.

    4.

    Szakterületi nyelvek: a szakterületi nyelvek szerepének demonstrálása, a szakterületi nyelvek kialakításának lépései, a bevezetéshez kapcsolódó döntések, érvek és ellenérvek. A szöveges szakterületi nyelvek szerepe.

    5.

    Metamodellezés, vizuális szakterületi nyelvek, kényszerek: a vizuális szakterületi nyelvek szerepe, a vizuális szakterületi nyelvek kialakításának és használatának demonstrálása, a

    6.

    Modellfeldolgozás: bejárás alapú, sablon alapú és gráfújrairás alapú modellfeldolgozás lehetőségeinek szemléltetése, konkrét példákon való lehetőségek, előnyök és következmények bemutatása.

    7.

    Szimuláció: szimulációs környezetek kialakításának és felhasználásának bemutatása, esettanulmányokkal történő szemléltetése

    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. A szorgalmi időszakban: egy zárthelyi 

    b. A vizsgaidőszakban: írásbeli vizsga

    c. Elővizsga: igény szerint

     

    Az aláírás megszerzésének feltétele 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.


    11. Pótlási lehetőségek A 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.
    12. Konzultációs lehetőségek A tárgy előadójával történt egyeztetés szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom
    Elosztott objektum alapú rendszerek (Tanszéki segédlet)
    Don Box, Essential COM, Addison-Wesley Professional, 1998.
    Mary Kirtland, Designing component-based applications, Microsoft Press, 1999.
    Errol Simon, Distributed information systems, McGraw-Hill, 1996.
    Jon Siegel, CORBA 3 Fundamentals and Programming, John Wiley & Sons, 2000.

    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ákra14
    Felkészülés zárthelyire20
    Házi feladat elkészítése0
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés44
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Charaf Hassan

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Lengyel László

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Mezei Gergely

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék