OMT esettanulmány Tornabajnokság eredmény nyilvántartó rendszere. Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék



Hasonló dokumentumok
OMT esettanulmány. ny Tornabajnokság g eredmény nyilvántart. ntartó rendszere

ny Tornabajnokság g eredmény nyilvántart ntartó rendszere A megoldandó feladat Követelmény analízis 1. Ficsor Lajos Általános Informatikai Tanszék

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

MAGYARORSZÁG VERSENYKIÍRÁSA 2018/2019.

VERSENYKIÍRÁS BÁCSVÍZ KUPA Uszonyosúszó verseny

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

VERSENYKIÍRÁS. Országos Kötélugró Csapatbajnokság Szentes, november 28.

2018/2019. TANÉVI VERSENYKIÍRÁS

Ranglista és Minősítési Szabályzat

IV. Tüker M. SC Kupa

A versenyt a Magyar Diáksport Szövetség a Magyar Torna Szövetséggel (MATSZ) együttműködésben hirdeti meg.

MAGYARORSZÁG ATLÉTIKAI CSAPATBAJNOKSÁGA 2015

SÁRKÁNYHAJÓ HAZAI VERSENYRENDSZER 2015

A legjobbak számára országos versenyen való részvétel biztosítása, hogy sikeresen képviseljék iskolájukat diákversenyen.

2016/2017. TANÉVI AEROBIK DIÁKOLIMPIA VERSENYKIÍRÁS

A versenyt a Magyar Diáksport Szövetség a Magyar Torna Szövetséggel (MATSZ együttműködésben hirdeti meg.

MAGYARORSZÁG ATLÉTIKAI CSAPATBAJNOKSÁGA b) Döntő: szeptember 7-8. Székesfehérvár szeptember 8. Budapest (Félmaraton OB)

2018/2019. TANÉVI RITMIKUS GIMNASZTIKA DIÁKOLIMPIA VERSENYKIÍRÁS

Magyarország évi Atlétikai Csapatbajnoksága Elődöntő Keleti Csoport

XII. CMAS USZONYOSÚSZÓ VILÁGKUPA FEBRUÁR , EGER VERSENYKIÍRÁS

MAGYAR KAJAK-KENU SZÖVETSÉG SÁRKÁNYHAJÓ VERSENYRENDSZER

Magyar Ugrókötelesek Szövetsége

Ifjúsági- Junior - Felnőtt Uszonyosúszó. Nyílt Országos Bajnokság évi VERSENYKIÍRÁSA Hód Kupa Béka, Cápa, Gyermek Találkozó

VERSENYKIÍRÁS FELNŐTT VÍVÓ MAGYAR BAJNOKSÁG GEREVICH ALADÁR NEMZETI SPORTCSARNOK (1146. Budapest, Istvánmezei u. 3-5.)

Eger, május 21.

A versenyt a Magyar Diáksport Szövetség a Magyar Torna Szövetséggel (MATSZ együttműködésben hirdeti meg.

V. MIGHTYFIST EAGLES CUP NEMZETKÖZI BAJNOKSÁG GYEREK, SERDÜLŐ, IFJÚSÁGI, FELNŐTT 2015

MAGYARORSZÁG ATLÉTIKAI CSAPATBAJNOKSÁGA b) Döntő: szeptember Székesfehérvár szeptember 11. Budapest (Félmaraton OB)

UML (Unified Modelling Language)

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

VERSENYKIÍRÁS. A évi WKF egyéni és csapat Kata és Kumite magyar bajnoki címek és az utánpótlás bajnoki címek eldöntése

RANGLISTA KIÍRÁS A Magyar Golf Szövetség meghirdeti a ranglisták felállítását, és az arra való felkerülést az alábbi feltételek szerint:

2016/2017. TANÉVI GUMIASZTAL és MINITRAMPOLIN DIÁKOLIMPIA ORSZÁGOS DÖNTŐ VERSENYKIÍRÁS

V. Diapolo Hungarian Open Nemzetközi Szinkronúszó Verseny

2017. évi WTF Taekwondo. Bajnokság május 13. Budapest

2015. V E R S E N Y K I Í R Á S

2017/2018. TANÉVI VERSENYKIÍRÁS

2016/2017. TANÉVI TŐR VERSENYKIÍRÁS

Magyar Ugrókötelesek Szövetsége

A Fogyatékosok Országos Diák- és Szabadidősport Szövetsége. meghirdeti

VERSENYKIÍRÁS. A évi WKF egyéni és csapat Kata és Kumite magyar bajnoki címek és az utánpótlás bajnoki címek eldöntése

Programfejlesztési Modellek

Junior ranglista kiírás 2018

Magyarország Atlétikai Csapatbajnoksága Elődöntő Nyugati Csoport a ZÁÉV Zrt. és ZALAEGERSZEG MJV. Önkormányzata támogatásával

VERSENYKIÍRÁS. Országos Kötélugró Csapatbajnokság. Újvárosi DSE Szolnoki Szent-Györgyi Albert Általános Iskola

III. WATT 22 Kupa Versenykiírás

Magyar Ugrókötelesek Szövetsége

Eger, április 26.

MBSZ ELNÖKSÉGE ÁLTAL ELFOGADOTT SZAKMAI VÁLTOZÁSOK 2018

53. EJTŐERNYŐS CÉLBAUGRÓ MAGYAR NEMZETI BAJNOKSÁG

2015/2016. TANÉVI EVEZŐS DIÁKOLIMPIA ORSZÁGOS DÖNTŐ VERSENYKIÍRÁS

Magyar Sárkányhajó Bajnokság IV. forduló Újpesti-öböl augusztus 4.

Eger, május20.

IV. EAGLES CUP NEMZETKÖZI BAJNOKSÁG FELNŐTT, IFJÚSÁGI, SERDÜLŐ 2013.

VI. Hungarian Open Nemzetközi Szinkronúszó Verseny

Magyarország évi Atlétikai Csapatbajnoksága Elődöntő Keleti Csoport

VERSENYKIÍRÁS. 16. Magyar Klubcsapat Bajnokság

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

VERSENYKIÍRÁS. A évi WKF egyéni és csapat Kata és Kumite magyar bajnoki címek és az utánpótlás bajnoki címek eldöntése

VERSENYSZABÁLYZATA 2009.

A verseny rendezője: Magyar Atlétikai Szövetség és a Szentendrei Szabadtéri Néprajzi Múzeum

Rákoshegyi Vasutas SE V.

Kenguru és Gyermek Kupa. Versenykiírás 2010/2011.

VERSENYKIÍRÁS. A évi WKF egyéni és csapat Kata és Kumite magyar bajnoki címek és az utánpótlás bajnoki címek eldöntése

Magyar Bajnokság. Versenysport kategória évi versenykiírás

XVII. CSÁRDASZÁLLÁS KUPA

VIII. Oxigén Kupa Erdei futóverseny sorozat

FARSANG KUPA VERSENYKIÍRÁS 2016.

Magyar Pétanque Szövetség

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

MINŐSÍTÉSI ÉS EGYESÜLETI RANGSOR SZÁMÍTÁSÁNAK SZABÁLYZATA

Magyar Pétanque Szövetség

XXVIII. VILLAMOSENERGIA-IPARI TENISZTALÁLKOZÓ

A Magyar Fallabda (Squash) Szövetség felnőtt ranglista szabályzata

A FŐHESZ évi versenyei és versenysport támogatási koncepciója

XXVII. Utánpótlás, Felnőtt és Masters Országos Bajnokság

2010. évi Cápa és Junior korcsoport Uszonyosúszó Országos Bajnokság

SPORTBIZOTTSÁG MŰKÖDÉSI SZABÁLYZATA

HASZNÁLATI ESET DIAGRAM (USE CASE DIAGRAM)

A Generomax Kupa résztvevőinek a nevezési díj: 500 Ft!!!

Szoftvertechnológia ellenőrző kérdések 2005

Az országos döntőn a megyei elődöntőkről korcsoportonként az 1-3. helyezett egyéni versenyzői vehetnek részt.

MAGYAR MUAYTHAI SZAKSZÖVETSÉG IFMA MUAYTHAI AMATŐR VERSENYRENDSZERE 2018.

Magyar Torna Szövetség Gumiasztal Szakág. ORSZÁGOS DÖNTŐ Balatonfüred, Észak-Balatoni Regionális Konferencia Központ május 10.

01. gyakorlat - Projektalapítás

Torna. A kategória. Felversenyzés: Csapatversenyben minden tanuló csak a saját korcsoportjában versenyezhet,

XLIX. MAGYAR NEMZETI BAJNOKSÁG

MAGYAR MUAYTHAI SZAKSZÖVETSÉG IFMA MUAYTHAI AMATŐR VERSENYRENDSZERE 2018.

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Magyar Pétanque Szövetség

VII. Hungarian Open Nemzetközi Szinkronúszó Verseny

VERSENYKIÍRÁS. A évi WKF egyéni és csapat Kata és Kumite magyar bajnoki címek és az utánpótlás bajnoki címek eldöntése

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

A bíróknak a helyszínen március 16-án 18 órakor kötelező bírói továbbképzés lesz! (Szállás és vacsora biztosított) A verseny után bírói

VERSENYKIÍRÁS IV. Gyermek- IV. Serdülő- IV. Ifjúsági- IV. Junior- IV. Felnőtt Uszonyos- és búvárúszó Rövidpályás Országos Bajnokság (2018)

Preambulum:

Budapesti Tájékozódási Túrabajnokság versenyszabályzata

QUEEN OF THE RING NEMZETKÖZI NŐI VERSENY VERSENYKIÍRÁSA

XVIII. CSÁRDASZÁLLÁS KUPA

Átírás:

OMT esettanulmány Tornabajnokság eredmény nyilvántartó rendszere Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Miskolc 200

Tartalomjegyzék. A feladat vázlata... 2. A követelmény analízis... 2 3. Analízis fázis... 3 3.. Objektum modell... 3 3... Osztályok azonosítása... 3 3..2. Osztályok leírása... 5 3..3. Osztályok közötti kapcsolatok (asszociációk) azonosítása... 6 3..4. A kapcsolatok specifikációja... 7 3..5. A kapcsolatok finomítása... 7 3..6. A kapcsolatok számosságának meghatározása... 8 3..7. Attribútumok azonosítása... 9 3..8. Öröklődés... 0 3.2. Dinamikus modell... 3.3 Funkcionális modell... 3 3.4. Műveletek azonosítása... 4 4. Rendszertervezés... 5 4. Alrendszerekre bontás... 6 4.2. A rendszer topológiájának meghatározása... 7 4.3. A vezérlés elvének meghatározása... 7 5. Objektum tervezés... 7 i

Az esettanulmányban vázolt feladat ötletét Iseult White: Using the Booch Method című könyve adta. A könyvben található feladat egy némileg egyszerűsített változata található ebben a segédletben. Az esettanulmány az OMT feljlesztési módszertan egyes lépéseit mutatja be. A jelölésrendszer az UML szabvány szerinti (kivéve természetesen az adatfolyam diagrammot).. A feladat vázlata A megoldandó feladat az alábbiakban foglalható össze: A feladat egy tornabajnokság eredményeit nyilvántartó rendszer készítése. A rendszernek automatizálnia kell a versenyek kiírását, a versenyzők regisztrálását és az eredmények nyilvántartását egy versenyszezonon belül. A tornaszövetség egyesületek együttese, a csapatok egymás ellen versenyeznek. Minden csapat a tagjait nevezheti az egyes versenyekre. Egy tipikus verseny versenyszámokból áll, amelyeket egy napon belül bonyolítanak le. Egy versenyszám lehet például a női csapat, női egyéni, férfi csapat stb. Mindegyik lehet junior és felnőtt korosztály számára kiírva. Ha egy egyesület jelentkezik egy versenyre, minden versenyszámban indítania kell versenyzőket. Minden versenyszámra minden csapat ugyanannyi versenyzőből áll, akiknek a versenyszám valamennyi szerén indulniuk kell. Minden versenyszámban különböző szereken kell versenyezni. Például a női verseny gerendából, ugrásból, felemás korlátból és talajgyakorlatból áll. Minden szer egyidőben használatban van. Egy csapat minden tagja bemutatja a gyakorlatát egy szeren, majd megy a következő szerhez. Minden szerhez pontozóbírók vannak kijelölve, akik értékelik a gyakorlatokat. Minden bíró pontozza a gyakorlatokat. Az általa adott pontszámot jelenti a pontozónak. A pontozó elhagyja a lealacsonyabb és a legmagasabb pontszámot, és a maradék átlagát számítja. Ez lesz az adott versenyző eredménye az adott szeren. A csapat eredménye az adott szeren a tagjai egyéni pontszámainak összege. A szerenkénti eredmények összege adja a versenyszámban elért eredményt minden egyes csapatnál. A szövetség az egyes versenyek lebonyolításán felül elkészíti egy szezonra a versenynaptárt, biztosítja a bírók delegálását az egyes versenyekre és szerekre, nyilvántartja a versenyzők és az egyesületek eredményeit, és nyilvánosságra hozza a szezon eredményeit. Egy tipikus eredménytábla lehet pédául az alábbi: Verseny: Városi meghívásos Versenyszám: Női felnőtt csapat Dátum: 997. március 6. Egyesület Gerenda Ugrás Korlát Talajgyak. Amazonok 4.5 40.3 44.6 43.7 Szendék 43.2 38.5 40.2 4.3 Örömlányok 45.2 44.9 37.3 40.6

2. A követelmény analízis A fenti leírás (mint ahogyan az a gyakorlatban is szokásos) még nem elegendő a feladat megoldásához, mert pontatlan: nem pecíz definíciókat tartalmaz, az egyes fogalmak a hozzáértő számára egyértelműek, a kívülálló számára nem feltétlenül. hiányos: nem tartalmaz minden információt, amely a feladat megoldásához szükséges. (pl. milyen szereken versenyeznek a férfiak? hogyan pontozzák a félbemaradt gyakorlatot? stb) A követelmény analízis feladata tehát az információk pontosítása és teljessé tétele. Ehhez a jelen esetben az alábbiak lennének szükségesek: A pontos definíciókat tartalmazó anyagok összegyűjtése (Az egyes sportágak szabálykönyvei, versenyszabályok stb.) Az eddigi gyakorlatban keletkezett írásos anyagok összegyűjtése (Versenykiírások, versenyek jegyzőkönyvei, a szövetség és az egyesületek ide vonatkozó nyilvántartásai stb.) A versenyek szervezésében, lebonyolításában résztvevő szakértők meghallgatása (a szövetség tisztségviselői, pontozóbírók, verseny rendezők stb.) A fent felsorolt további információforrások alapján kiegészíthető és pontosítható a készítendő rendszer leírása. A követelmény analízis végén a részletes leírás mellett célszerű két összefoglaló anyag elkészítése:. Összefoglaló rendszer specifikáció Feladata a rendszerrel szemben támasztott követelmények tömör összefoglalása, a rendszer határainak meghatározása. Jelen esetben ez pl. az alábbi lehet: TORNA rendszer.0 verzió Rendszerspecifikáció A rendszernek az alábbiakat kell tudnia: Az egyes versenyek struktúrájának (a versenyszámok, azokon belül a szerek) nyilvántartása A egyesületek és versenyzőik, valamint a versenyeken résztvevő csapatok összetételének nyilvántartása A versenybírók nyilvántartása, ezen belül hogy melyikük melyik szer pontozására jogosult, melyik versenyre van kijelölve, és ott kinek milyen pontszámokat adott. 2

A versenyek és az eredmények folyamatos nyilvántartása 2. Rendszer fukciólista Feladata a rendszer legfontosabb funkcióinak (szolgáltatásainak) felsorolása. Most: TORNA rendszer.0 verzió Funkciólista Egy csapat nevezése egy versenyre Egy csapat nevezése egy versenyszámba Csapat összetételének változtatása kijelölése egy szerhez Az egyes szerek és versenyek eredményei A szezonon belüli sorrend számítása Értesítés a verseny beosztásról a versenyzőknek és a bíróknak 3. Analízis fázis Az OMT analízis fázisa az előzőekben részletezett információforrásokat használja. 3.. Objektum modell A leírás elemzésével elkülöníthetjük azon kulcs-elemeket (osztályokat) amelyek az adott rendszerben a legfontosabb szerepet játsszák. 3... Osztályok azonosítása A feladat egy tornabajnokság eredményeit nyilvántartó rendszer készítése. A rendszernek automatizálnia kell a versenyek kiírását, a versenyzők regisztrálását és az eredmények nyilvántartását egy versenyszezonon belül. Az aláhúzottak közül a tornabajnokság maga a rendszer, a kiírás, regisztrálás és eredmények nyilvántartása operáció. A szezon azonban egy absztrakció. Van adatszerű tulajdonsága, és kapcsolatban lehet további absztrakciókkal. Ez tehát egy potenciális osztály. 3

A tornaszövetség egyesületek együttese, a csapatok egymás ellen versenyeznek. Minden csapat a tagjait nevezheti az egyes versenyekre. Itt az aláhúzottak alapvető tulajdonságai a rendszernek, így osztályként kezelendők. A verseny azonban még nem eléggé tisztázott fogalom. Hasonlóan van némi bizonytalanság a csapat szóhasználatban is. (csapat=egyesület?). A később leírtak majd segítenek tisztázni a pontos fogalmat. A további szöveg elemzése: Egy tipikus verseny versenyszámokból áll, amelyeket egy napon belül bonyolítanak le. Egy versenyszám lehet például a női csapat, női egyéni, férfi csapat stb. Mindegyik lehet junior és felnőtt korosztály számára kiírva. Ha egy egyesület jelentkezik egy versenyre, minden versenyszámban indítania kell versenyzőket. Minden versenyszámra minden csapat ugyanannyi versenyzőből áll, akiknek a versenyszám valamennyi szerén indulniuk kell. Itt a duplán aláhúzott szöveg segít megérteni a csapat jelentését. A verseny, versenyszám, szer osztályokkal reprezentálható absztrakciók. A női csapat, stb csak a versenyszám osztály előfordulásai. A nap csak egy adatstruktúra. Tovább: Minden versenyszámban különböző szereken kell versenyezni. Például a női verseny gerendából, ugrásból, felemás korlátból és talajgyakorlatból áll. Minden szer egyidőben használatban van. Egy csapat minden tagja bemutatja a gyakorlatát egy szeren, majd megy a következő szerhez. Csak előfordulások. Tovább: Minden szerhez pontozóbírók vannak kijelölve, akik értékelik a gyakorlatokat. Minden bíró pontozza a gyakorlatokat. Az általa adott pontszámot jelenti a pontozónak. A pontozó elhagyja a legalacsonyabb és a legmagasabb pontszámot, és a maradék átlagát számítja. Ez lesz az adott versenyző eredménye az adott szeren. A csapat eredménye az adott szeren a tagjai egyéni pontszámainak összege. A bíró osztály, a pontozóbírók kifejezés bírók egy adott verseny adott szeréhez rendelt együttesét jelenti, ami egy kapcsolat a szer és a bíró osztály között. A pontszám absztrakció, de nem osztály, csak adattípus. 4

A pontozó osztályként reprezentálható absztrakciónak látszik. A feladatát elemezve azonban nyilvánvaló, hogy az automatizált rendszerben megszűnik szereplőnek lenni, és csak egy operáció marad (adatok összegyűjtése és számítás végzése). Tehát nem osztály. A szerenkénti eredmények összege adja a versenyszámban elért eredményt minden egyes csapatnál. A szövetség az egyes versenyek lebonyolításán felül elkészíti egy szezonra a versenynaptárt, biztosítja a bírók delegálását az egyes versenyekre és szerekre, nyilvántartja a versenyzők és az egyesületek eredményeit, és nyilvánosságra hozza a szezon eredményeit. Az eredmény csak attribútuma egy már ismert osztálynak, a versenynaptár és a szezon eredményei pedig az eddig ismert osztályok adataiból származtatható mennyiségek. (Bár lehet, hogy a tervezés során ezekből is osztály válhat.) Érdemes még a tag és a versenyző fogalmakat megvizsgálni. Ezeket - szerepük alapján - lehetséges osztályokként jelöltük meg. Azonban mindkét fogalom mögött ugyanaz a természetes objektum (egy személy) áll. Így ezt a két fogalmat egy, a szövegben közvetlenül nem szereplő absztrakció foghatja össze: a tornász osztály. Egy tornász objektum egyszerre tag (amennyiben egy egyesület része) és lehet versenyző, amennyiben az egyesület benevezi egy versenyre. A tag és a versenyző tehát kapcsolatok a tornász osztály és más osztályok között. Az eddigieket összefoglalva, az alábbi osztályok sorolhatók fel: Szezon Verseny szám Szer Verseny Csapat Szövetség Egyesület Tornász 3..2. Osztályok leírása Minden osztályra meg kell adni a szemantikáját, azaz a pontos absztrakciót. Ennek során leírjuk a definícióját, az eddig felfedezett attribútumait, korlátozó feltételeket, és ezeket rögzítjük az adatszótárban. Az adatszótár tartalma most valami ilyesmi: 5

Logical View Report Logical View Csapat Egyesületi tagokból az egyesület nevezi. Egyesület Az egyesület tagjai verseneyzhetnek. Szer Szezon A szezon az az idoszak, ami alatt a versenyek zajlanak Szövetség A szövetség egyesületekbõl áll. Tornász Verseny A verseny csapatok találkozója. Versenyszámokból áll. Versenyszám A versenyszámban versenyeznek egymással a csapatok. Szerekbõl áll. 3..3. Osztályok közötti kapcsolatok (asszociációk) azonosítása Az osztályok nem elszigetelt részei egy rendszernek, hanem kapcsolatok vannak közöttük. A kapcsolatokat is a feladat leírásának tanulmányozása során fedezhetjük fel. Az eddigi osztályok közötti kapcsolatokat mutatja az alábbi ábra. A kapcsolatok feltérképezése során még új osztályok szükségessége is felmerülhet: erre példa a szer és a tornász osztályok közötti kapcsolatot létrehozó gyakorlat osztály. 6

Versenyszám elõírás Szer meghirdetés jeletkezõ Verseny teljesítés verseny kiírás pontozóbírók Szezon Szövetség pontoz pontozó résztvevõ Egyesület teljesítlés nevezés tag Csapat versenyzõ Tornász 3..4. A kapcsolatok specifikációja Az egyes felfedezett kapcsolatoknak nevet kell adni, és el kell készíteni a leírásukat. 3..5. A kapcsolatok finomítása Ha egy kapcsolatnak nehéz volt jó leíró nevet adni és a leírását elkészíteni, az gyakran arrra utal, hogy új osztályok és kapcsolatok szükségesek, amiket az első közelítés elfedett. A vizsgált rendszerben például ilyen a szer - bíró kapcsolat. Mint jelent ez: egy bíró bíráskodhat vagy bíráskodik egy szeren? A válasz: mindkettő, de ez két különböző kapcsolat. Az egyik azt jelzi, hogy jogosult a bíráskodásra (megvan hozzá a képesítése), a másik azt, hogy ki is jelölték egy versenyre. Ha pedig kijelölték, akkor pontot ad egy gyakorlatra. Ezt a kapcsolatrendszert az alábbi ábra szemlélteti: 7

Szer pontozóbírók fajta teljesítés minõsített Szer típus pontoz Tornász teljesítlés 3..6. A kapcsolatok számosságának meghatározása Egy kapcsolat két alapvető jellemzővel rendelkezik: A forrás egy példánya kötelezően tartalmaz-e (legalább egy) cél példányt? (egy versenynek legalább egy versenyszámot tartalmaznia kell) A forrás egy példányához maximum hány cél példány tartozik? (egy versenynek több versenyszáma lehet) Az osztálydiagram ezekkel az adatokkal: 8

Versenyszám Csapat jeletkezõ Szezon 0.. elõírás Szövetség meghirdetés verseny kiírás nevezés pontoz résztvevõ Verseny Egyesület versenyzõ pontozóbírók minõsített tag fajta Szer típus pontoz Szer teljesítés Gy akorl at teljesítlés Tornász 3..7. Attribútumok azonosítása Az analízis része az egyes osztályok tulajdonságainak (attribútumainak) meghatározása is. Az attribútumok megtalálásához hasznos az eddigi osztályok leírásának, valamint a követelmény analízisnek az ismételt tanulmányozása. Természetesen a tulajdonságok elemzése közben is találhatunk új osztályokat. Pl.: A csapatot alkotó tornászok valamelyik egyesülethez tartoznak jelenleg, de nem biztos, hogy mindig ahhoz tartoztak. (A versenyzőknek joguk van egyesületet váltani.) Ebből adódik, hogy van tagság kezdete és tagság vége attribútum is. Azonnal felmerül a kérdés, hogy ezek az attributumok melyik osztályhoz rendelhetők? Igazából ezek az adatok leginkább az egyesület és a tornász kapcsolatához tartoznak. Az egyesület-váltás és a kapcsolat-adatok problémája is kezelhető például az osztálystruktúra alábbi megváltoztatásával: 9

Tornász szuletesi_datum : Date jelentkezés Egy esület nev : String tag Tagság kezdete : Date vege : Date 3..8. Öröklődés Bázisosztályba telepíthetők mindazon tulajdonságok és funkciók, amelyek az analízis során több osztályban is megjelennek. Például a tornászoknak és a bíróknak egyaránt értesítést kell küldeni az eseményekről. Ehhez mindkét osztálynak tartalmaznia kell levelezési címet, illetve azt kezelő operációt. Ezek egy közös bázisosztályba telepíthetők, az alábbiak szerint: Résztvevõ név : String cím : String Tornás z szuletesi_datum : Date kijelolt() minositett() Az attribútumokat és az öröklési hierarciákat is tartalmazó osztálydiagram: 0

Versenyszám elõírás : Szer jeletkezõ 0.. Csapat Objektum modell kapcsolatokkal és attributumokkal elõírás meghirdetés Verseny idõpont : Date fajta helyszín : String pontozóbírók Szezon kezdet : Date verseny k iírás Szövetség név : String résztvevõ : Egyesület nevezés résztvevõ pontoz Egyesület nev : String kijelolt() minositett() tag versenyzõ minõsített Szer típus pontoz Tagság kezdete : Date vege : Date (Nem teljes!) Résztvevõ név : String cím : String jelentkezés Szer teljesítés teljesítlés Tornász szuletesi_datum : Date 3.2. Dinamikus modell Az egyes osztályokhoz tartozó operációk meghatározásához a use case-ek vizsgálata szükséges. Ennek ábrázolásához használhatjuk például az együttműködési diagrammot. Például egy bírónak egy szer pontozására hivatott bírók közé való kijelölése az alábbi módon modellezhető: Use case: Egy bíró kijelölése egy adott szeren bíráskodók közé:. Ha a bíró még nincs kijelölve 2. és a bíró minősített az adott szerre 3. add a bírót az adott szerre kijelölt bírákhoz Együttműködési diagram 3: add_biro( ) : Szer : kijelolt( ) 2: minositett Talajgyakorlat : Szer típus Új bíró :

Egy másik fontos használati eset a pontszám megállapítás folyamata: Use case: Egy tornász pontszámának számítása egy adott versenyen:. Egy verseny valamennyi szerére vegyük a tornász pontszámát 2. Vegyük a pontszámot a gyakorlatra, amelyet a tornász bemutatott 3. Minden bíróra a bírói testületből vegyük a pontszámot, amit a bíró a gyakorlatra adott Az ennek megfelelő együttműködési diagram: : Verseny : pontoz(tornász) szer : Szer 2: osszes_pontszam() gyakorlat : 3: pontszam() biró : Ebből majd adódnak a szükséges operációk, és az, hogy kapcsolatnak kell lennie a verseny és a versenyszámok, a versenyszámok és a hozzá tartozó szerek illetve a szerek és a pontozóbírók között. Az is látható azonban az ábrából, hogy az egyes pontszámok (amelyek az összesített pontszám megállapításához szükségesek) csak a bíró és a szer közötti kapcsolat attribútumaként jelennek meg. Mivel azonban ez egy alapvető absztrakció, kár "eldugni" egy ilyen alárendelt helyre. Helyette vezessük be a Pontszám osztályt. 2

kijelolt() minositett() untitled() pontszamok : Pontszám nyers_pontszam() eredmeny() pontozó Pontszám 3.3 Funkcionális modell A funkcionális modell felállítása során végignézzük a rendszer be- és kimenő adatfolyamait, a rendszeren belül megvalósítandó számításokat és az azok között szükséges adatáramlásokat. Ezek rögzítésére használhatjuk az adatfolyam diagrammot. A rendszer egy lehetséges kontext diagramja: 3

Szervezõ Egyesület Verseny helyszínek Csapat nevezése Verseny idõpontok Csapat eredmények Verseny eredmény nyilvántartás Kijelölés Adott pontok Egyéni eredmények Tornász Egy elsőszintű adatfolyam diagram: Szervezõ Egyesület Tornász Verseny idõpontok Verseny helyszínek Csapat nevezése Csapat eredmények Egyéni eredmények Versenynaptár összeállítás 2 Versenyeek lebonyolítása 3 Eredménylisták közzététele Versenynaptár Nevezett csapatok Egy verseny résztvevõi Pontszámok Összesített pontszámok Adott pontok Kijelölés D verseny adatok D Eredmények 3.4. Műveletek azonosítása 4

A dinamikus és a funkcionális modell ismeretében az objektum modell kiegészíthető az osztályok operációival. Az adatfolyam ábrából látható, hogy a rendszer egyik feladata eredménylisták közzététele. Az ezeken szereplő értékeknek a rendszeren belül rendelkezésre kell állniuk vagy egy adatelem formájában, amelyet egy operáció segítségével elérhetünk, vagy számított adat formájában, amelyhez pedig a számítást végző operációnak kell rendelkezésre állnia. A kiíráshoz mellékelt táblázatban például szerepelnek olyan adatok, amelyek attributumai valamelyik osztálynak, de van egy olyan elem, ami számított: a csapat összpontszáma. Ennek előállításához szükséges egy operáció, valami ilyen formában: Score csapat_pont(team csapat) Az operáció a Szer osztályhoz rendelendő. Az ezeket a változásokat is tükröző osztálydiagram az alábbi: Versenyszám elõírás : Szer csapat_nevezes() egyeni_eredmenyek() Szezon kezdet : Date jel etkezõ Objektum modell kapcsolatokkal, attributumokkal és operációkkal (Nem teljes!) elõírás meghirdetés Verseny verseny_kiiras() verseny kiírás Szövetség név : String résztvevõ : Egyesület nevezés idõpont : Date helyszín : String meghirdetes : Versenyszám egyesulet_regisztr() résztvevõ Egyesület nev : String pontoz tag kijelolt() minositett() untitled() pontozóbírók Szer típus minõsített pontozó Tagság kezdete : Date vege : Date fajta Pontszám Résztvevõ név : String cím : String jelentkezés Szer csapat_pont(csapat : Csapat) : Integer add_gyakorlat() add_biro() teljesítés pontszamok : Pontszám nyers_pontszam() eredmeny() teljesítlés 0.. Csapat versenyzõ (Funkcionális modell után) Tornász szuletesi_datum : Date 4. Rendszertervezés Ennek a fázisnak célja a rendszer struktúrájának meghatározása. A feladat jellegéből adódóan jelen esetben az alábbi résztevékenységeknek van jelentősebb szerepe. 5

4. Alrendszerekre bontás A rendszer legfontosabb komponenseinek a meghatározása. Használható az ábrázolására az UML komponens diagramja. A most vizsgált rendszer esetén a particionált architektúra a célszerű. Egy lehetséges (felső szintű) particionálás például az alábbi csomagokat tartalmazhatja: Torna GUI Eredmény nyilvántartás Felhasználói felület Adattárolás <<globális>> Adatszerkezetek Ebből az eddig vizsgált renszer maga az "Eredmény nyilvántartás" csomag, az "Adattárolás" felelős az adatok hosszútávú tárolásáért. Természetesen ezek a csomagok tovább részletezhetők. Az "Eredmény nyilvántartás" csomag például az alábbi modulokat tartalmazhatja: Verseny lebonyolítás Verseny naptár Eredmény listák Résztvevõk nyilvántartása 6

4.2. A rendszer topológiájának meghatározása Az egyes modulok különböző helyeken és arhitektúrákon működhetnek. Az egyes modulok helyét és a közöttük levő kapcsolatokat szemléltethetjük a telepítési diagrammal, például az alábbi módon: Szövetségi szerver Versenyre telepített laptop File Intern et LAN File Egyesületi munkaállomások Adatbázis szerver (A szövetségnél) 4.3. A vezérlés elvének meghatározása A vezérlés a különböző modulokban batch vagy interaktív lehet, a felhasználás módjától függően. A verseny során az adatokat például interaktív módon vihetjük be, míg a verseny jegyzőkönyvek és a különböző eredménykimutatások batch módban készíthetők el. 5. Objektum tervezés A fázis feladata az implementácóhoz szükséges valamennyi döntés meghozatala és dokumentálása. Az alkalmazás logikájából adódó szempontok mellett most már implementációs kérdések is szóba kerülnek. 7