Házi feladat (SzolgInt-MDSD 2013)

Aktuális információk

A kitűzött feladat egy eredményjelző és egy automatikus jegyzőkönyv generátor elkészítése futsalmérkőzések lebonyolításához. A futsal a kispályás focinak a FIFA által elfogadott és szabályozott játéka.

A mérkőzés előtt

  • A mérkőzést az MLSZ írja ki, megadva annak helyszínét, időpontját, a mérkőző csapatokat, a három játékvezetőt és az ellenőrt.
  • A mérkőzés megkezdése előtt a mérkőző csapatok kitöltik, és a játékvezetők előtt hitelesítik a jegyzőkönyvet, megadva
    • a csapatok összeállítását (név, mezszám, igazolás száma)
    • a kapusokat és a csapatkapitányt
      • a kezdőcsapatot (1 kapus és 4 mezőnyjátékos)
      • a kispadon helyet foglaló személyeket (név, azonosító, szerep: pl. edző, vezetőedző, orvos, gyúró, egyéb)
  • A hitelesített jegyzőkönyv alapján a rendszer inicializálja az eredményjelző táblát

Egy kitöltött mintajegyzőkönyv megtalálható itt:  http://adatbank.mlsz.hu/pr01/p01_jegyzokonyv_nez.asp?p_merk_id=643017

Az eredményjelző

  • Az eredményjelző mindenképpen mutatja az alábbiakat:
    • Mérkőző csapatok neve
    • Eredmény
    • Hátralévő idő (a rendes játékidő egy félideje 20 perces, az esetleges hosszabbítás mindkét félideje 5-5 perces)
      • Amennyiben a labda elhagyja a játékteret vagy szabálytalanság történik, az órát az időmérő (3. játékvezető) megállítja
      • Amikor a labda újra játékba kerül, az időmérő elindítja
    • Csapatszabálytalanságok száma (a csapathibák száma a félidőben törlődik, esetleges hosszabbítás esetén viszont nem!)
      • Szabálytalanság esetén az időmérő léptetheti
    • Időkérések száma
      • Minden csapat félidőnként egyszer kérhet időt, akkor amikor a labda játékon kívül van
      • Egy időkérés 1 percig tart.
      • Az időkérés megkezdésekor az időmérő automatikusan visszaszámol
      • Az időkérés lejártával hangjelzést ad.
  • Mérkőzés közben mindenképpen feljegyzendő:
    • A gólszerzők neve és a gól ideje, utóbbi másodperces pontossággal
    • Sárga és piros lap (játékos neve, ideje, utóbbi másodperces pontossággal)
  • Az eredményjelző tábla opcionálisan mutathatja az alábbiakat:
    • A csapatok összeállítása
    • Gólszerzők (név, idő)
    • Hangjelzés adás az 5. csapathibánál

Az eredményjelző elkészítésénél ügyeljetek

  • A könnyű használhatóságra (azaz normális működés esetén könnyű legyen az időt indítani / állítani)
  • Az egyszerű hibajavításra / konfigurálhatóságra (pl. idő visszaállítása véletlenül elindított óra esetén, csapathiba léptetése a rossz csapatnál, stb.)

Ötletbörze jelleggel megtekinthetitek az alábbi Androidos alkalmazást:  https://play.google.com/store/apps/details?id=it.alecs.puntifutsal&hl=en

A mérkőzés után

  • Az elkészült jegyzőkönyvet validálni, például
    • Nem lőhet gólt, aki ki lett állítva
    • Ha nem volt hosszabbítás, akkor 40. perc után nem lehetett esemény
    • Az események menete folyamatos (idő növekszik)
    • stb.
  • A mérkőzés jegyzőkönyvét egy (általunk definiált) formátumban kell elő kell állítani,
  • Majd utána elküldeni azt egy (általunk adott) web service meghívásával

Ütemezés

1. beadandó

  • Feladat: Modellezés
    • Követelményanalízis: Magasszintű követelmények megfogalmazása az elkészítendő rendszerrel szemben, UML Use case diagramok segítségével
    • Domain modellezés: Magasszintű domain modell elkészítése amellyel le lehet írni/dokumentálni egy teljes mérkőzést és az azon történt eseményeket.
      • EMF metamodell és a hozzá tartozó metamodell kényszerek megfoglamazása (OCL kényszerekként)
    • Dinamikus modellezés: A kijelző működésének leírása Yakindu statechartokkal
  • Trac oldalon a vezetett munkanapló és egy 5-7 slide hosszú előadás az elvégzett munkáról, kiemelve benne az egyes csapattagok feladatait
  • Határidő: 6. hét szerda (2013. március 20.) Azaz eddig kell az SVN-be felrakni mindent (a konzulensek is innen fogják letölteni)
  • Technológiák
    • UML 2.0 (pl. IBM Rational Software Architect vagy a Papyrus eszközben, de tetszőleges, a bemutatáskor általatok működésre bírható UML eszköz használható)
    • Eclipse Modeling Framework 2.8
    • Yakindu 2.0

2. beadandó

  • Feladat: Validálható domain-specifikus nyelv készítése + kódgenerálás
    • Kényszerek a domain nyelvre, IncQuery? minták formájában
    • XTend alapú jegyzőkönyv generátor
    • Trac oldalon a vezetett munkanapló és egy 5-7 slide hosszú előadás az elvégzett munkáról, kiemelve benne az egyes csapattagok feladatait
  • Generálandó mérkőzésjegyzőkönyv formátuma:
    • A házi feladat esetén két különböző formátumban is elő lehet állítani a jegyzőkönyvet. Ezek közül kötelezően egyet kell megvalósítani, de akinek az eszköze képes mindkét formátumra, az pluszpontra számíthat.
      • HTML5
        • A teljes html fájl generálandó, amelyet egy alkalmas böngészővel meg lehet nyitni.
        • CSS és egyéb kiegészítő bővítmények használata plusz pontot jelenthet
      • Latex, ebben az esetben az alábbi Texlipse projektben található results.tex file kitöltése a feladat
        • A projektben a futsal_main.tex ben láthatjátok, hogy mely package-ekre lehet számítani. Ha esetleg ez nem elegendő, keressétek Horváth Ákost.
    • Magának a jegyzőkönyvnek alapvetően hasonlítania kell a hivatalos MLSZ honalpon lévő jegyzőkönyvekre, de minden ezen túlmutató extra funkcionalitás extra pontot jelenthet.
  • Határidő: 12. hét kedd (2013. április 30.)

3. (végső) beadandó

  • Feladat: Integrált implementáció elkészítése
    • Felhasználói felülethez vastag kliens (Eclipse alapon vagy plain Java)
    • Automatikusan generált kód integrációja (glue kód)
    • Opcionálisan: webes technológia vagy Android felhasználásával (egyikhez sem adunk támogatást!)
  • 10 perces előadásban bemutatni az elkészített rendszer fő komponenseit. Pro Con vizsgálat a megvalósított rendszerrel és a válsztott döntésekkel szemben.
  • Határidő: 14. hét péntek (2013. május 17.).  A megbeszéltek szerint a végső beadás időpontja 2013 május 28. 15 óra, I.L. 405

Tanácsok

  • A feladat specifikációja szándékosan nem tér ki minden részletre (de még így is részletesebb, mint amivel sokszor a gyakorlatban találkozhatunk). A szöveg és probléma pontos értelmezése, és ennek megfelelő tervezői döntések dokumentált meghozása a ti feladatotok lesz, és ezeket a beadások során külön ellenőrizni is fogjuk!
  • A házi feladat megoldását időben el kell kezdeni! Amint egy adott technológia sorra került az előadáson, célszerű belekezdeni az adott részfeladat megoldásába, hogy elég idő legyen a végén a csapat munkáját összehangolni, átnézni.
  • A beadandó modellekre külön mennyiségi megkötés nincsen (azaz, nem értelmezhető, hogy melyik diagramból hányat kell csinálni). Fontos azonban, hogy a kritikus és/vagy bonyolult esetek modelljei mindenképp készüljenek el. Az OCL kényszerek esetén elfogadható, ha csak szöveges dokumentációként kerülnek be a modellbe, az előadás fóliákon szereplő szintaxissal.