Házi feladat (MDSD 2015)

Csapatok

A házi feladat megoldása 3 fős csapatokban történik, az értékelés a csapat munkája és az egyes csappattagok időráfordítása/teljesítménye alapján egyéni.

A feladat megoldása során használandó git repo elérhetősége: (x = csapat száma)

Aki nem rendelkezik még LDAP-os felhasználóval, az IB414-es teremben átveheti a felhasználónév-jelszót párosát, illetve a 2. gyakorlaton (2015.02.26).

Megjegyzés: a házi feladat megoldása során felmerülő (a segédletek alapján nem megoldható) technikai hibák megvitatására szolgál az FTSRG Q&A  oldal illetve feltehetitek a kérdéseteiket Bascamp-en is.

Csapatbeosztás:

  • 1. csapat: R&D
    • Farkas Rebeka
    • Palincza Richárd
    • Stein Dániel
  • 2. csapat: GoMRP
    • Horváth Benedek
    • Konnerth Raimund-Andreas
    • Nádudvari Tamás
  • 3. csapat:
    • Dienes Péter
    • Murányi Bence
    • Tóth Viktor
  • 4. csapat:
    • Tóth Márton
    • Borlay Dániel
    • Miru György
  • 5. csapat:
    • Szakállas Dávid
    • Gurbán András
  • 6. csapat:
    • Kincses Gergő
    • Pollák Tamás
    • Kiss Gábor
  • 7. csapat:
    • Sólyom Alexandra
    • Nyíri András
    • Gabányi Károly
  • 8. csapat: ModelLings
    • Bártfay György
    • Kamrás Márton
    • Maginecz János

Házi feladat leírás

Az idei házi feladat egy vasúti pályarendszer modellező nyelvének, mintamodelljeinek és azok analízisét támogató szimulációs eszköznek az elkészítése.

A vasúti pálya szakaszokból és váltókból áll, amelyen egyszerre több vonat is közlekedhet, különböző sebességgel. A vonatok biztonságos közlekedését a megfelelően elhelyezett jelzők helyes állása biztosítja. Ezáltal a rendszernek biztonságosan kell műkődnie, azaz a vonatok nem ütközhetnek össze és nem térhetnek le a vasúti pályáról hibás váltó állás miatt.

A házi feladatban elsőként két (egymással összefüggésben álló) szakterület-specifikus nyelveket kell készíteni, amellyel a vasúti pályarendszerek strukturális felépítése és viselkedése precízen megadható.

  • A strukturális felépítést leíró nyelv lehetővé teszi, hogy különféle pályarendszereket modellezzünk sínszakaszokkal, váltókkal, jelzőkkel, szegmensekkel és vonatokkal.

  • A viselkedési modell leírja, hogy a fenti elemek miként reagálnak az észlelt/bekövetkezett eseményekre. Például egy vonat a piros jelzéskor megáll, vagy a jelző pirosra vált, ha a szomszédos szakaszon vonat közlekedik.

A rendszer viselkedését diszkrét esemény alapú szimuláció (discrete event simulation) segítégével szeretnénk formálisan is vizsgálni (lásd http://en.wikipedia.org/wiki/Discrete_event_simulation). Ekkor a szimuláció során események generálódnak, amelyek előre meghatárózott időpontban fognak bekövetkezni. Egy adott időpillanatban megnézzük, hogy melyik esemény fog bekövetkezni legközelebb (például a vonat egy elágazáshoz ér), azt az eseményt végrehajtjuk (esetleg újabb eseményeket generálva) az aktuális időt pedig előreléptetjük.

A félév során el kell készíteni

  1. a vasúti pályarendszer strukturális felépítésének és viselkedésének specifikációját (metamodellekkel és jólformáltsági kényszerekkel együtt),
  2. egy grafikus/szöveges szakterület-specifikus modellezési nyelvet vasúti pályarendszerek és viselkedési modelljük leírására,
  3. a vasúti pályarendszer viselkedéskedésének szimulációs modelljét és
  4. egy kódgenerátort, amely a vasúti rendszermodellből és a szimulációs modellből kiindulva származtat szimulációs kódot.


1. Beadandó:

  • Domain modellezés: A vasúti pályarendszer strukturális domain modelljének és egy viselkedési domain modellnek elkészítése EMF metamodell és a hozzá tartozó jól formáltsági kényszerek formájában (EMF-IncQuery lekérdezések vagy opcionálisan OCL kényszerekként is). A domain modellre példa található ezen a linken. A viselkedési modellnek általánosnak kell lennie, a példánymodell fogja leírni a vasúti pályarendszer működését. A metamodell természetesen módosítható a beadás után is, de a módosításokat és azoknak okait vezetni kell.

  • EMF példánymodell, amely egy legalább három szegmenses (ovál) vasúti pályarendszer strukturális felépítését írja le, rajta két vonattal, két váltóval és a kapcsoló jelzőkkel. Továbbá ellenőrizendő a jólformáltsági kényszerek fennállása a példánymodellen. A viselkedési modellhez nem szükséges EMF példánymodellt készíteni, de kell hogy legyen elképzelés róla egyszerűsített diagram vagy valamilyen szöveges formátumban.

  • Szorgalmi feladat: extra modellelemek (pl. hibamodellezés, menetrend beépítése)

    Határidő: 2015. 03. 22. 24:00 (6. hét vége).

 

2. Beadandó:

  • Grafikus vagy szöveges szakterület-specifikus nyelv készítése a vasúti pályarendszer felépítésének és viselkedésének leírására (a Sirius vagy Xtext keretrendszer segítségével).

  • Példánymodell elkészítése a grafikus/szöveges szerkesztő segítségével (a három szegmenses vasúti pályarendszer valamint a teljes viselkedésleírás)

  • Szorgalmi feladat: A grafikus / szöveges szerkesztő igényes elkészítését szorgalmi feladatként értékeljük. Szorgalmi feladat továbbá a kutatócsoport vasúti terepasztalának teljeskörű modellezése.

    Határidő: 2015. 04. 26. 24:00 (11. hét vége)

 

3. Beadandó:

  • Diszkrét esemény alapú szimulátor elkészítése egy vasúti pályarendszerhez a DESMO-J szimulációs keretrendszer felhasználásával (kézi kódolással).

  • Xtend alapú kódgenerátor, amely a vasúti modellek strukturális és viselkedési modellje  alapján elkészít (felparaméterez) egy DESMO-J alapú szimulációs keretrendszert (szimulációs modell, entitások, események származtatása).

  • A generált események kiegészítése kézi kóddal (glue code), melynek mértékéről az egyes csapatok döntenek (nem elvárás tehát a 100%-ig automatikusan generált szimulátor)

  • Szorgalmi feladat (ötlet): a szimuláció visszavetítése a modellező nyelvbe (pl. futási utak modellezése); a vonatok viselkedésének finomabb granularitású szimulációja (nem csak lépeget szegmensről szegmensre); a kutatócsoport vasúti terepasztalának teljes szimulációja

    Határidő: 2015. 05. 17. 24:00 (14. hét vége)

 

A többletmunkával elkészített igényes házi feladatokra megajánlott jelest lehet kapni.

A házi feladatot három fős csoportokban kell elkészíteni. A csoportok (egyeztetés után) szabadon dönthetnek, hogy grafikus és/vagy szöveges nyelvet készítenek. A viselkedési leírás nyelve szintén szabadon választhatő (pl. állapotgép, szabályrendszer, adatfolyam, stb.)

Minden projektet Git verziókezelő rendszerbe kell feltölteni, a fejlesztés előrehaladását pedig Basecamp projektként kell nyomonkövetni. Beadáskor egy 5-7 slide hosszú előadást kell tartani a konzulensnek az elvégzett munkáról, kiemelve benne az egyes csapattagok feladatait.

 

Korábbi feladatok