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.
-
HTML5
- 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.
-
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.
- 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.