OMT esettanulmány Tornabajnokság eredmény nyilvántartó rendszere Ficsor 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.
Ficsor Lajos
OMT esettanulmány
OMTESET /
2
Követelmény analízis 1. 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 Ficsor Lajos
OMT esettanulmány
OMTESET /
3
Követelmény analízis 2. Összefoglaló rendszer specifikáció TORNA rendszer 1.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 Ficsor Lajos
OMT esettanulmány
OMTESET /
4
Követelmény analízis 3. Rendszer funkciólista TORNA rendszer 1.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 Ficsor Lajos
OMT esettanulmány
OMTESET /
5
Osztályok azonosítása 1. • 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. Ficsor 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?) Ficsor 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. Ficsor 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. Ficsor 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. Ficsor Lajos
OMT esettanulmány
OMTESET /
10
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
11
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.) Ficsor Lajos
OMT esettanulmány
OMTESET /
12
Osztályok azonosítása 5. • A tag é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. Ficsor Lajos
OMT esettanulmány
OMTESET /
13
Osztályok azonosítása 6. Szezon
Verseny szám
Verseny
Csapat
Szövetség
Ficsor Lajos
Egyesület
OMT esettanulmány
Szer
Bíró
Tornász
OMTESET /
14
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. Ficsor Lajos
OMT esettanulmány
OMTESET /
15
Osztályok közötti kapcsolatok elõírás
Versenyszám
Szer
meghirdetés
teljesítés
Verseny
jeletkezõ verseny kiírás
pontozób írók
Szezon
pontoz
Bíró
pontozó
Gyakorlat
Szövetség résztvevõ
teljesítlés
Egyesület nevezés
tag versenyzõ
Csapat Ficsor Lajos
OMT esettanulmány
Tornász
OMTESET /
16
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 Ficsor Lajos
OMT esettanulmány
OMTESET /
17
Kapcsolatok számossága 1
Versenyszám
1..*
1..*
*
me ghirdetés
* 1
jeletkezõ
Szövet ség
fajta
pontozób írók
1..*
1 Szer típus
teljesítés
*
1
mi nõsített
* 1..*
pontoz
1
1..*
*
Bíró
1..*
Gy akorlat pon toz
1..*
1 résztvevõ
1..*
nevezés 1..*
1
Verseny verseny kiírás
Szezon
Szer Gyakorlat
1..*
elõírás
0..*
1
tel jesítl és
Egy esület
1
versenyzõ
Csapat
1..*
1
tag
1..*
1 Tornász
1..* Ficsor Lajos
OMT esettanulmány
OMTESET /
18
Attribútumok azonosítása • új osztályokat is találhatunk. pl. tornász egyesület viszonya Tornász s zul etesi_datum : Date
Egy esület
1
nev : String
jelentkezés tag
1
1..* Tagság
1..*
kezdete : Date vege : Date
Ficsor Lajos
OMT esettanulmány
OMTESET /
19
Általánosítás - pontosítás • pl. tornász és bíró
Résztvevõ név : String cím : String
Bíró
Tornás z szuletesi_datum : Date
Ficsor Lajos
kijelolt() minositett()
OMT esettanulmány
OMTESET /
20
Új osztálydiagram Objektum modell kapcsolatokkal és attributumokkal Versenyszám elõírás : Szer
1 1..*
(Nem teljes!) 1..*
elõírás
*
meghirdetés
1
1..*
*
Verseny idõpont : Date helyszín : String
pontozób írók
1..*
Szezon kezdet : Date
1
fajta
1
versen y k iírás jeletkezõ
teljesítés
Szer típus *
1
* minõsített
1
1..*
*
Bíró Szövet ség
pontoz 1.. *
pontoz kijelolt() minositett()
név : String résztvevõ : Egyesület
Gyakorlat
1..*
1..* 1..*
Résztvevõ név : String cím : String
1
teljesítlés
résztvevõ
1..*
1..*
1
nev : String
0.. *
Tagság
tag
Egyesület nevezés
Szer Gyakorlat
1
1.. *
ke zdete : Date vege : D ate
jelentkezés
1
1..*
versenyzõ
Csapat
1 Tornás z szuletesi_datum : Date
1
1..* Ficsor Lajos
OMT esettanulmány
OMTESET /
21
Dinamikus modell 1. •
Use case: Egy bíró kijelölése egy adott szeren bíráskodók közé: 1. 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
3: add_b iro( )
: Szer
1: kijelolt( ) 2: minositett
Talaj gyakorl at : Szer típus
Pl. együtműködési diagr. Ficsor Lajos
OMT esettanulmány
Új bíró : Bíró
OMTESET /
22
Dinamikus modell 2. •
Use case: Egy tornász pontszámának számítása egy adott versenyen: 1. 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
Ficsor Lajos
OMT esettanulmány
OMTESET /
23
Dinamikus modell 3. : Verseny
• Ebből adódik:
1: pontoz(tornász)
szer : Szer
2: osszes_pontszam()
– szükséges operációk gyakorlat : – kapcsolatok: Gyakorlat • verseny - versenyszám • versenyszám - szerek • szerek - bírók – a pontszám a bíró és a szer közötti kapcsolat attribútuma - jobb lenne, ha osztály lenne
3: pontszam()
Ficsor Lajos
OMT esettanulmány
biró : Bíró
OMTESET /
24
Dinamikus modell 4. Gyakorlat
Bíró
pontszamok : Pontszám kijelolt() minositett() untitled()
nyers_pontszam() eredmeny()
1
1 pontozó
1..*
1..* Pontszám
Ficsor Lajos
OMT esettanulmány
OMTESET /
25
Funkcionális modell 1. Kontext diagram: Szervezõ
Egyesület
Csapat nevezése Verseny helyszínek
Csapat eredmények
Verseny idõpontok
Verseny eredmény nyilvántartás
Kijelölés Egyéni eredmények
Adott pontok
Tornász
Bíró
Ficsor Lajos
OMT esettanulmány
OMTESET /
26
Funkcionális modell 2. Első szintű adatfolyam diagram: Szervezõ
Egyesület
Tornász
Verseny idõpontok
Csapat eredmények
Csapat nevezése
Verseny helyszínek
1
2
Versenynaptár összeállítás
Versenynaptár
Versenyeek lebonyolítása
Egy verseny résztvevõi
Egyéni eredmények
3 Eredménylisták közzététele
Adott pontok
Pontszámok Kijelölés
Nevezett csapatok Összesített pontszámok
Bíró D
Ficsor Lajos
verseny adatok
D
OMT esettanulmány
Eredmények
OMTESET /
27
Műveletek azonosítása Versenyszám elõírás : Szer csapat_nevezes() egyeni_eredmenyek()
Objektum modell kapcsolatokkal, attributumokkal és operációkkal (Nem teljes!) 1 elõírás 1..* * meghirdetés 1.. * Verseny 1 idõpont : Date helyszín : String meghirdetes : Versenyszám
1..*
pontozób írók
Szer típus
egyesulet_regisztr()
1.. *
jel etkezõ
fajta
Gyakorlat csapat_pont(csapat : Csapat) : Integer add_gyakorlat() add_biro()
*
1
*
verseny kiírás
Szezon
1
Szer
min õsített
1
*
kezdet : Da te
pontozó
*
Pontszám
teljesítés
1..*
1.. *
pontoz 1..*
kijelolt() minositett() untitled()
1
Szövetség n év : Stri ng résztvevõ : Egyesüle t
Gyakorlat pontszamok : Pontszám
Bíró
ve rseny_kiiras()
1..*
1
nyers_pontszam() eredmeny()
1
1..*
Résztvevõ n év : Stri ng cím : Strin g
1 résztvevõ
1..*
Tagság
Egyesület tag
nev : String
1
1
1..*
kezdete : Date vege : Date
1..*
nevezés
1..*
teljesítlés
jele ntkezés
1
0..* verse nyzõ
Csapat 1
Ficsor Lajos (Funkcionális modell után)
1 Tornász
OMT esettanulmány
szuletesi_datum : Date
1..*
OMTESET /
28
Alrendszerekre bontás 1. Csomag diagram
Torna GUI
Eredmény nyilvántartás
Felhasználói felület
<
> Adats zerkez etek
Adattárolás
Ficsor Lajos
OMT esettanulmány
OMTESET /
29
Alrendszerekre bontás 2. Komponens diagram Verseny lebonyolítás
Eredmény listák
Verseny naptár
Résztvevõk nyilvántart ása
Ficsor 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
Egyesületi munkaállomások
Ficsor Lajos
File
Adatbázis s zerver (A szövetségnél)
OMT esettanulmány
OMTESET /
31
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
32