Miskolci Egyetem Általános Informatikai Tanszák
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
OMTESET /
3
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
Ficsor Lajos
OMT esettanulmány
OMT / 1
Miskolci Egyetem Általános Informatikai Tanszák
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
6
OMT / 2
Miskolci Egyetem Általános Informatikai Tanszák
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
9
OMT / 3
Miskolci Egyetem Általános Informatikai Tanszák
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
12
OMT / 4
Miskolci Egyetem Általános Informatikai Tanszák
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
Egyesület
Szövetség
Ficsor Lajos
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
15
OMT / 5
Miskolci Egyetem Általános Informatikai Tanszák
Osztályok közötti kapcsolatok elõírás
Versenyszám
Szer
meghirdetés
Verseny
jeletkezõ
teljesítés
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
Tornász
OMT esettanulmány
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
minõsített
Bíró
Szer típus
pontoz
teljesítl és
Tornász
Gyakorlat Ficsor Lajos
OMT esettanulmány
OMTESET /
17
Kapcsolatok számossága 1
Versenyszám 1..*
*
me ghirdetés
* 1 Verseny
verseny kiírás
Szövet ség
pontozób írók
1..*
1 Szer típus
1
* 1..*
pontoz
1
mi nõsített
1..*
*
Bíró
1..*
Gy akorlat pon toz
1..*
résztvevõ
1..*
nevezés
0..*
1
1..* tel jesítl és
Egy esület
1
versenyzõ
Csapat 1
tag
1..*
1 Tornász
1..* Ficsor Lajos
Ficsor Lajos
teljesítés
*
1
1..*
1
fajta
jeletkezõ
Szezon
Szer Gyakorlat
1..*
elõírás
1..*
OMT esettanulmány
OMTESET /
18
OMT / 6
Miskolci Egyetem Általános Informatikai Tanszák
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
1
tag
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övetsé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..*
nevezés
1
nev : String
0.. *
Tagság
tag
Egyesület 1..*
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
Ficsor Lajos
Szer Gyakorlat
OMT esettanulmány
OMTESET /
21
OMT / 7
Miskolci Egyetem Általános Informatikai Tanszák
Dinamikus modell 1. •
Use case: Egy bíró kijelölése egy adott szeren bíráskodók közé:
3: add_b iro( )
: Szer
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
1: kijelolt( ) 2: minositett
Talaj gyakorl at : Szer típus
Új bíró : Bíró
Pl. együtműködési diagr. Ficsor Lajos
OMT esettanulmány
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
Ficsor Lajos
OMT esettanulmány
biró : Bíró
OMTESET /
24
OMT / 8
Miskolci Egyetem Általános Informatikai Tanszák
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
Ficsor Lajos
verseny adatok
D
OMT esettanulmány
Eredmények
OMTESET /
27
OMT / 9
Miskolci Egyetem Általános Informatikai Tanszák
Műveletek azonosítása Versenyszám elõírás : Szer
Objektum modell kapcsolatokkal, attributumokkal és operációkkal (Nem teljes!) elõírás 1..* * meghirdetés 1.. * Verseny 1
Szer Gyakorlat
1
csapat_nevezes() egyeni_eredmenyek()
idõpont : Date helyszín : String meghirdetes : Versenyszám
1..*
pontozób írók
Szer típus
egyesulet_regisztr()
fajta
*
1
*
verseny kiírás
1.. *
Pontszám
min õsített
1
Szezon
1
csapat_pont(csapat : Csapat) : Integer add_gyakorlat() add_biro()
*
jel etkezõ kezdet : Date
pontozó
*
teljesítés
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 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..*
1..*
nevezés
1..*
teljesítlés
kezdete : Date vege : Date
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
OMTESET /
1..*
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
30
OMT / 10
Miskolci Egyetem Általános Informatikai Tanszák
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
Ficsor Lajos
OMT esettanulmány
OMTESET /
32
OMT / 11