OMT esettanulmány ny Tornabajnokság g eredmény nyilvántart ntartó rendszere Lajos Miskolci Egyetem Általános Informatikai Tanszék
A megoldandó feladat A cél egy tornabajnokság eredmény nyilvántartó rendszerének megtervezése. A rendszernek nyilván kell tartania a szereplőket, a versenyeket és az azokon elért eredményeket. Az előzetes feladat vázlat mellékelve. Lajos OMT esettanulmány OMTESET / 2
Követelmény analízis. A leírás önmagában nem elegendő, mert pontatlan hiányos Beszerzendő további anyagok szabálykönyvek, versenyszabályok stb. eddig használt bizonylatok, dokumentumok résztvevőkkel készített interjúk Célszerűen elkészítendő: összefoglaló rendszer specifikáció rendszer funkciólista Lajos OMT esettanulmány OMTESET / 3
Követelmény analízis 2. Összefoglaló rendszer specifikáció 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. A versenyek és az eredmények folyamatos nyilvántartása Lajos OMT esettanulmány OMTESET / 4
Követelmény analízis 3. Rendszer funkciólista 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 Bíró 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 Lajos OMT esettanulmány OMTESET / 5
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. tornabajnokság maga a rendszer, a kiírás, regisztrálás és eredmények nyilvántartása operáció. szezon egy absztrakció - potenciális osztály. Lajos OMT esettanulmány OMTESET / 6
Osztályok azonosítása 2. A tornaszövetség egyesületek együttese, a csapatok egymás ellen versenyeznek. Minden csapat a tagjait nevezheti az egyes versenyekre. az aláhúzottak osztályként kezelendők. A verseny azonban még nem eléggé tisztázott fogalom. Hasonlóan nem tisztázott a csapat (csapat = egyesület?) Lajos OMT esettanulmány OMTESET / 7
Osztályok azonosítása 3. 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. duplán aláhúzott szöveg: csapat jelentése verseny, versenyszám, szer osztályok női csapat, stb csak a versenyszám osztály előfordulásai. nap csak egy adatstruktúra. Lajos OMT esettanulmány OMTESET / 8
Osztályok azonosítása 4. 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. Lajos OMT esettanulmány OMTESET / 9
Osztályok azonosítása 5. 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 egy kapcsolat a szer és a bíró osztály között. A pontszám absztrakció, de nem osztály, csak adattípus. A pontozó osztálynak látszik. 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. Lajos OMT esettanulmány OMTESET / 0
Osztályok azonosítása 5. A szerenkénti eredmények összege adja a versenyszámban elért eredményt minden egyes csapatnál. Az eredmény csak attribútuma egy már ismert osztálynak Lajos OMT esettanulmány OMTESET /
Osztályok azonosítása 6. 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. a versenynaptár és a szezon eredményei az eddig ismert osztályok adataiból származtatható mennyiségek (A tervezés során ezekből is osztály válhat.) Lajos OMT esettanulmány OMTESET / 2
Osztályok azonosítása 5. Atag és a versenyző fogalmak vizsgálata lehetséges osztályokként jelöltük meg Mindkét fogalom mögött ugyanaz a természetes objektum (egy személy) áll - a szövegben közvetlenül nem szereplő absztrakció: a tornász osztály. Egy tornász objektum egyszerre tag (egy egyesületben) és lehet versenyző, ha nevezik egy versenyre. A tag és a versenyző tehát kapcsolatok a tornász osztály és más osztályok között. Lajos OMT esettanulmány OMTESET / 3
Osztályok azonosítása 6. Szezon Versenyszám Szer Verseny Csapat Bíró Szövetség Egyesület Tornász Lajos OMT esettanulmány OMTESET / 4
Osztályok leírása Csapat: Egyesületi tagokból az egyesület nevezi. Egyesület: Az egyesület tagjai versenyezhetnek. Szezon: A szezon az az időszak, ami alatt a versenyek zajlanak Szövetség: A szövetség egyesületekből áll. Verseny: A verseny csapatok találkozója. Versenyszámokból áll. Versenyszám: A versenyszámban versenyeznek egymással a csapatok. Szerekből áll. Lajos OMT esettanulmány OMTESET / 5
Osztályok közötti kapcsolatok Versenyszám elõírás Szer meghirdetés jeletkezõ Verseny teljesítés verseny kiírás pontozóbírók Szezon pontoz Bíró pontozó Gyakorlat Szövetség résztvevõ Egyesület teljesítlés nevezés tag Csapat versenyzõ Tornász Lajos OMT esettanulmány OMTESET / 6
Kapcsolatok finomítása szer-bíró kapcsolat: bíráskodik vagy bíráskodhat? Szer Gyakorlat pontozóbírók fajta teljesítés Bíró minõsített Szer típus pontoz Tornász teljesítl és Gyakorlat Lajos OMT esettanulmány OMTESET / 7
Versenyszám Csapat jeletkezõ Szezon 0..* Kapcsolatok számossága Szövetség elõírás meghirdetés verseny kiírás nevezés pontoz résztvevõ Verseny Bíró Egyesület versenyzõ * * pontozóbírók Tornász Lajos OMT esettanulmány OMTESET / 8 * minõsített tag * fajta Szer típus pontoz * Szer Gyakorlat teljesítés Gy akorlat tel jesítl és
Attribútumok azonosítása új osztályokat is találhatunk. pl. tornász - egyesület viszonya Tornász s zuletesi_datum : Date jelentkezés Egy esület nev : String tag Tagság kezdete : Date vege : Date Lajos OMT esettanulmány OMTESET / 9
Általánosítás - pontosítás pl. tornász és bíró Résztvevõ név : String cím : String Tornász szuletesi_datum : Date Bíró kijelolt() minositett() Lajos OMT esettanulmány OMTESET / 20
Versenyszám elõírás : Szer jeletkezõ Csapat 0..* meghirdetés Szezon kezdet : Date Új osztálydiagram Objektum modell kapcsolatokkal és attributumokkal elõírás Szövetség verseny k iírás név : String résztvevõ : Egyesület nevezés résztvevõ pontoz Egyesület nev : String Verseny idõpont : Date helyszín : String Bíró * kijelolt() minositett() tag versenyzõ * * minõsített pontozóbírók Szer típus Lajos OMT esettanulmány OMTESET / 2 pontoz fajta Tagság kezdete : Date vege : Date (Nem teljes!) Résztvevõ név : String cím : String jelentkezés * * Szer Gyakorlat teljesítés Gyakorlat teljesítlés Tornász szuletesi_datum : Date
Dinamikus modell. 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 Pl. együtműködési diagr. Talajgyakorlat : Szer típus 3: add_biro( ) : Szer 2: minositett : kijelolt( ) Új bíró : Bíró Lajos OMT esettanulmány OMTESET / 22
Dinamikus modell 2. 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 Lajos OMT esettanulmány OMTESET / 23
Dinamikus modell 3. : Verseny : pontoz(tornász) Ebből adódik: szükséges operációk kapcsolatok: verseny - versenyszám versenyszám - szerek szerek - bírók szer : Szer 2: osszes_pontszam() gyakorlat : Gyakorlat a pontszám a bíró és a szer közötti kapcsolat attribútuma - jobb lenne, ha osztály lenne 3: pontszam() biró : Bíró Lajos OMT esettanulmány OMTESET / 24
Dinamikus modell 4. Bíró kijelolt() minositett() untitled() Gyakorlat pontszamok : Pontszám nyers_pontszam() eredmeny() pontozó Pontszám Lajos OMT esettanulmány OMTESET / 25
Kontext diagram: Funkcionális modell. 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 Bíró Tornász Lajos OMT esettanulmány OMTESET / 26
Funkcionális modell 2. 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 Bíró D verseny adatok D Eredmények Lajos OMT esettanulmány OMTESET / 27
Versenyszám elõírás : Szer csapat_nevezes() egyeni_eredmenyek() Műveletek azonosítása Objektum modell kapcsolatokkal, attributumokkal és operációkkal (Nem teljes!) elõírás * Verseny meghirdetés idõpont : Date helyszín : String meghirdetes : Versenyszám pontozóbírók Szer típus fajta * Gyakorlat Szer csapat_pont(csapat : Csapat) : Integer add_gyakorlat() add_biro() jel etkezõ Szezon kezdet : Date verseny_kiiras() verseny kiírás Szövetség név : String résztvevõ : Egyesület egyesulet_regisztr() résztvevõ Egyesület nev : String pontoz tag * Bíró kijelolt() minositett() untitled() * * minõsített pontozó Tagság kezdete : Date vege : Date Pontszám Résztvevõ név : String cím : String teljesítés Gyakorlat pontszamok : Pontszám nyers_pontszam() eredmeny() teljesítlés nevezés jelentkezés 0..* Csapat versenyzõ Tornász szuletesi_datum : Date Lajos OMT esettanulmány OMTESET / 28 (Funkcionális modell után)
Csomag diagram Alrendszerekre bontás. Torna GUI Eredmény nyilvántartás Felhasználói felület Adattárolás <<globális>> Adats zerkez etek Lajos OMT esettanulmány OMTESET / 29
Alrendszerekre bontás 2. Komponens diagram Verseny lebonyolítás Verseny naptár Eredmény listák Résztvevõk nyilvántart ása Lajos OMT esettanulmány OMTESET / 30
A rendszer topológiája Telepítési diagram 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) Lajos OMT esettanulmány OMTESET / 3
Vezérlés elvének meghatározása Funkciónként különböző lehet Batch módban verseny jegyzőkönyv eredmény listák Interaktív módban verseny eredmények Lajos OMT esettanulmány OMTESET / 32