Házi feladat (MDSD 2020)

Csapatok

A házi feladat megoldása 2 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 csapatok jelentkezzenek Bergmann Gábornál feb. 23-ig!

A csapatok a https://github.com/FTSRG-MDSD ogranization alatt kapnak git repót, ahol a házi feladatot fejleszteniük kell. Tehát a jelentkezésben legyen benne a GitHub user név is!

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
  • az #mdsd-students slack csatorna

Házi feladat elvárások

A 2020-es házi feladatban minden csapatnak saját ötlet alapján kell egy összetett modell alapú eszközt építenie, és a megoldást három fázisban beadni (ld. lent). Az itt kiírtnál nagyobb feladat (akár arányosan nagyobb csapattal) külön egyeztetés alapján önként vállalható, kiemelkedő esetben vizsgakönnyítéssel vagy akár megajánlott jeggyel is honorálható.

Minden házi feladat kötelező eleme (legalább egy) saját modellezési nyelv kialakítása. A metamodell megvalósítására erősen ajánlott technológia az EMF / Ecore, míg tartalmi elvárás a metamodell nemtriviális struktúrája. Utóbbi azt jelenti, hogy ne legyen túl egyszerű (pl. ne egyetlen osztályból álljon) a nyelv; konkrét bonyolultsági küszöbszámok megadása helyett azt kérjük, hogy a metamodell bonyolultsága a választott problémához igazodjon, azt kellő részletességgel képezze le (és maga a választott probléma legyen nemtriviális).

További feltétel, hogy az alább felsoroltak közül legalább 3 (háromfős csapat esetén 5) további technológiai elemet integráljon a megoldás:

  • Viatra Query alapú, nagyobb mennyiségű vagy nemtriviális szerkezetű jólformáltsági kényszerek és/vagy származtatott jellemzők és/vagy deklaratív nézetek
  • Szöveges konkrét szintaxis (Xtext javasolt) a saját nyelvhez (több nyelv esetén az egyikhez); csak akkor elfogadott önálló elemként, ha a metamodell alapján automatikusan generált nyelvtantól jelentősen eltérő, önállóan átgondolt, felhasználóbarát szempontokat alkalmaz
  • Grafikus konkrét szintaxis (Sirius javasolt) a saját nyelvhez (több nyelv esetén az egyikhez, de nem ahhoz, amelyikhez szöveges szintaxis készült)
  • Kódgenerátor (Xtend javasolt) a saját nyelvhez
  • Viatra alapú M2M transzformáció két saját modellezési nyelv között, vagy egy saját és egy létező (off-the-shelf) modellezési nyelv között valamilyen irányba
  • Integrált kapcsolat (pl. metamodell-kiterjesztés vagy kereszthivatkozás) valamely létező (off-the-shelf) modellezési nyelv EMF modelljével, amely szerepet játszik pl. a kódgenerálásban vagy az interoperabilitásban (tehát nem csak triviális "dísz").

Egyedi megbeszélés alapján alternatív elemek vagy a felsorolt elemekre alternatív technológiák alkalmazása is szóba jöhet. Példák:

  • szimuláció
  • Web IDE: a szöveges szintaxis támogatása az Eclipse-be integrált szerkesztőn felül egy webes fejlesztőeszközön is (pl. Xtext LSP + Theia használatával)

Minden csapat saját felelőssége, hogy a választott technológiák a választott használati esetben megfelelően együttműködjenek egymással.

Határidők

Az egyes beadási határidők közt igyekszünk értékelni a csapatok munkáját és hasznos visszajelzést adni, amely alapján a következő fázisig az esetleges hibák javíthatóak.

Figyelem: ha egy csapat elmulaszt egy határidőt, akkor már csak a pótleadásra várjuk a megoldását, köztes visszajelzés és javítási lehetőség nélkül.

0. csapatalakítás (Határidő: 2020.02.23. 23:59 - 2. hét vasárnap éjfél)

  • Jelentkezés módja: emailben, Bergmann Gábornál
  • A jelentkezés tartalmazzon egy választott csapatnevet
  • Továbbá az egyes csapattagok nevét, NEPTUN kódját, email címét és GitHub azonosítóját
  • Az FTSRG slackre is fel lesztek véve (külön jelezzétek, ha a fentitől eltérő email címmel szeretnétek)

1. specifikáció (Határidő: 2020.03.22. 2020.03.26. 23:59 - 6. hét csütörtök éjfél)

  • A feladat részletes specifikációjának elkészítése (~1 oldal szöveg)
    • VÁLTOZÁS: beadás módja - minden csapat a saját Git repo-jába tegye a specifikációt, a "beadott" verziót taggelje meg
    • Itt már előre alaposan véggigondolt, egyszerre hasznos és megvalósítható ötleteket várunk, nem buzzword salátát.
    • A házi feladattól / órán bemutatott esettanulmányoktól /* nyilvános tutorialoktól érdemben különbözz
    • Javasolt - de nem kötelező - az önálló labor / diplomaterv konzulenssel egyeztetve, annak témájához kapcsolódó feladatot választani, mert ebben az esetben a szakterületi hozzáértés amúgy is megvan.
    • Akiknek végképp semmilyen saját feladatötletük nincs, forduljanak hozzánk kb. két héttel a határidő előtt, és mi keresünk nekik feladatot (nem feltétlenül a kedvenc témájukhoz kapcsolódóan).
    • Ugyanígy kiadott feladatot kapnak azok, akik elfogadhatatalan specifikációt adtak le.

2. metamodell (Határidő: 2020.04.09. 2020.04.19. 23:59 - 9. hét vasárnap éjfél)

  • EMF alapú metamodell kialakítása és áttekinthető bemutatása.
  • Opcionális: a házi feladat esetlegesen már készülőfélben lévő egyéb elemei (pl. konkrét szintaxist, jólformáltsági kényszereket vagy származtatott jellemzőket) is megmutathatók már itt, hogy hamarabb visszajelzést adhassunk. De nem javasolt nagyon előrerohanni, mivel kárba mehet a munka egy része, ha a metamodellen komoly hiányosságokat azonosítunk, és áttervezésre szorul.
  • Szükséges kiegészítők: munkanapló, ppt (egyben dokumentáció) a javító számára.

3. teljes beadandó (Határidő: 2020.05.24. 23:59 - 14. hét vasárnap éjfél)

  • Leadandó a teljes munka, a korábban adott visszajelzések alapján javítva.
  • A HF javítónak a szokásos módon bemutatandó a teljes munka óra után egyeztetett időpontban.
  • Elvárt egy kb. 5 perces "lightning talk", amelyben a csapat a bemutatási időpontban a tárgy többi hallgatója előtt mutatja be a munkáját. Ezen az alkalmon lehetőleg mindenki vegyen részt (videokonferencia formájában).
  • A nagy plénumnak szóló előadást követően a működő házi feladatot, kódot, stb. szűk körben is is be kell mutatni ("védés"), a lent hirdetett időpontok valamelyikére jelentkezve (feljelentkezési határidő: lighning talk időpontja)
  • Szükséges kiegészítők: munkanapló, ppt (egyben dokumentáció) a javító számára, ppt (lightning talk) előadása

Pótlás: (Határidő: 2020.05.27. 23:59 pótlási hét szerda éjfél)

  • Leadandó a teljes munka egyben, az előző ponttal megegyező elvárásokkal.
  • A normál bemutatóhoz hasonló "lightning talk" előadás: 2020-05-28 csütörtök 10:15-től (videokonferencia link), szintén kötelező előzetesen feljelentkezni itt: https://doodle.com/poll/ee43ag2c9vux4hei
  • A működő házi feladatot, kódot, stb. szűk körben is is be kell mutatni ("PÓTvédés"), a lent hirdetett időpontok valamelyikére jelentkezve

Rendkívüli pótlás: (Határidő: 2020.06.14. 23:59 vasárnap éjfél)