Verkehrsmeldungen am UML

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Verkehrsmeldungen am UML"

Átírás

1 Verkehrsmeldungen am UML 27 Led Zeppelin Konzulens: Budai Péter Csapattagok Bodó Péter MKA2DY Pál Tamás UVKSGJ Szárnyas Gábor U944EQ

2 Tartalom Tartalom Követelmény, projekt, funkcionalitás Követelmény definíció A program célja, alapvető feladatai A felhasználói felület A program futtatásához szükséges követelmények A szoftver fejlesztésével kapcsolatos alapkövetelmények, elvek, célok Projekt terv A felhasznált fejlesztőeszközök A fejlesztőcsapat tagjai, azok feladatkörei Kommunikációs modell Fejlesztési mérföldkövek, ütemterv Határidők Átadás Szükséges dokumentációk Feladatleírás Szótár Essential use-case-ek Use-case diagram Use-case leírások Napló Analízis modell kidolgozása Napló Analízis modell kidolgozása Objektum katalógus City Timer Field ITickable <<interface>> Vehicle Police Civilian Thief Road HideOut BorderIn BorderOut Junction RoadSign StopSign Semaphore NoRoadSign Osztályok leírása Statikus struktúra diagramok Szekvencia diagramok State-chartok Napló

3 4. Szkeleton tervezése A szkeleton modell valóságos use-case-ei Use-case diagramok Use-case leírások Architektúra A szkeleton kezelői felületének terve, dialógusok Szekvencia diagramok a belső működésre Civil határon ki / Rendőr határon ki és be Civil kereszteződésből útra Civil útról útra Civil útról lámpás kereszteződésbe Civil stoptáblás kereszteződésbe Rendőr kereszteződésből útra lép Rendőr útról keresztezősbe lép Rendőr útról útra lép Tolvaj kereszteződésből útra lép Tolvaj határon ki Tolvaj útról rejtekhelyre Tolvaj útról kereszteződésbe lép Tolvaj útról útra Játék indítása Idő léptetése Napló Szkeleton beadása Fordítási és futtatási útmutató Fájllista Fordítás Futtatás Dokumentáció generálása Értékelés Napló Statisztika Prototípus koncepciója Prototípus interface-definíciója Az interfész általános leírása Paraméterek Bemeneti nyelv Pályaformátum Kimeneti nyelv Összes részletes use-case Játékos use-case-ei Óra use-case-ei Tesztelési terv Tesztelés menete Teszt-esetek Napló Részletes tervek Osztályok és metódusok tervei City

4 7.1.2 Timer ITickable <<interface>> Vehicle Bunny Police Civilian Thief Road HideOut BorderIn BorderOut Junction RoadSign StopSign Semaphore NoRoadSign A tesztek részletes tervei, leírásuk a teszt nyelvén Civilian (Police) mozgása Roadról Roadra Város elhagyása, érkezés Ütközés elkerülés Civilian útról kereszteződésbe Tolvaj mozgása Elkapás Ütközés Győzelem Police Roadról Junctionbe A tolvaj felveszi a nyuszit és a rendőr nekiütközik A tolvaj felveszi a nyuszit és a rendőrnek ütközik A tesztelést támogató programok tervei Változtatások a követelmények módosulása miatt Napló Prototípus beadása Fordítási és futtatási útmutató Fájllista Fordítás Futtatás Tesztek jegyzőkönyvei Civilian (Police) mozgása Roadról Roadra Város elhagyása, érkezés Ütközés elkerülés Civilian útról kereszteződésbe Tolvaj mozgása Elkapás Ütközés Győzelem Police Roadról Junctionbe A tolvaj felveszi a nyuszit és a rendőr nekiütközik A tolvaj felveszi a nyuszit és a rendőrnek ütközik Értékelés

5 8.4 Napló Statisztika Grafikus felület specifikációja A grafikus interfész A grafikus rendszer architektúrája A felület működési elve A felület osztály-struktúrája A grafikus objektumok felsorolása IView <<interface>> CView BorderInView JunctionView RoadView HideOutView BorderOutView StopSignView SemaphoreView NoRoadSignView BunnyView PoliceView CivilianView ThiefView Road Kapcsolat az alkalmazói rendszerrel Napló Összefoglalás Projekt összegzés Mit tanultunk Idő és pontszám Dokumentálás A projektre fordított munkaidő A feltöltött programok forrássorainak száma fázisonként Változtatási javaslatok Ajánlott feladat Napló

6 1. Követelmény, projekt, funkcionalitás 1.1 Követelmény definíció A program célja, alapvető feladatai A tervezendő program egy játék, amelyben egy forgalmas várost modellező pályán kell a felhasználónak eljuttatnia a bankrabló autóját a banktól a rejtekhelyig, kikerülve a forgalom véletlenszerűen mozgó autóit és a rendőrautókat. A fejlesztőcsapat célja egy olyan program létrehozása, amely eleget tesz a specifikációban leírtaknak, és futtatható minden olyan gépen, ami megfelel a meghatározott minimum követelményeknek A felhasználói felület A program grafikus felhasználó felülettel (GUI) fog rendelkezni, mely egérrel kezelhető; a bankrabló autója pedig a billentyűzet kurzorgombjaival irányítható A program futtatásához szükséges követelmények A programot úgy készítjük el, hogy a HSZK laborban (R.4.K) lévő számítógépeken megfelelő sebességgel fusson. A fejlesztés során ügyelünk arra, hogy a kód lefordítható legyen az 1.6-os verziójú JDK java.exe fordítójával. Ehhez a szükséges minimumkonfigurációnak legalább 64 MB memóriával és 98 MB tárhellyel kell rendelkeznie A szoftver fejlesztésével kapcsolatos alapkövetelmények, elvek, célok Teljesítmény: a program hardverigényét próbáljuk minél alacsonyabban tartani. Ennek főleg PC-nél gyengébb teljesítményű számítógépek (netbook, handheld eszközök) van komoly jelentősége, hiszen a Java fejlesztési platform miatt a kész program más platformokon is futtatható lesz. Modularitás: a külön funkciót ellátó programrészeket külön modulokban helyezzük el, így erősítve az újrafelhasználhatóságot. Felhasználóbarát felület: a program könnyen kezelhető, intuitív grafikus felhasználói felülettel rendelkezzen. Bővíthetőség: az objektumorientált modellt úgy alkotjuk meg, hogy utólag bővíthető legyen, pl. egy új jármű felvétele esetén a régiekben csak az új járművel való interakciót kelljen megvalósítani, más módosítást ne igényeljen. Funkcionalitás, kis hardverigény: mivel a projekt célja nem egy látványos grafikai felület elkészítése, ezért programunkban a modellalkotásra, a letisztult és átlátható kódolásra koncentrálunk. A kis hardverigény biztosítja, hogy a játék szinte minden konfiguráción élvezhető sebességgel fusson

7 1.2 Projekt terv A felhasznált fejlesztőeszközök A fejlesztéshez a csapat az Eclipse IDE for Java Developerst választotta, annak robosztussága és ergonómiája miatt. Az UML diagramok elkészítéséhez a Visual Paradigm UML modellező szoftvert használjuk, amely képes a diagramokból Java kód generálására is. A szöveges állományok szinkronizálása egy Eclipse SVN beépülő modult, a subclipse-et 2 használtuk. A dokumentáció Microsoft Word 2007-tel készült, a tantárgy honlapján elérhető sablonok módosításával A fejlesztőcsapat tagjai, azok feladatkörei név Neptun-kód feladatok Bodó Péter MKA2DY dokumentáció, kódolás, tesztelés Pál Tamás UVKSGJ UML, kódolás, tesztelés Szárnyas Gábor U944EQ csapatvezetés, dokumentáció, kódolás Mivel csapatunk három főből áll, természetesen nagyobb átfedések vannak a feladatkörökben, mint egy négyfős csapat esetén. A felosztás nem végleges, a feladatok nehézsége és az egyes tagok egyetemi elfoglaltsága miatt időközben változhat Kommunikációs modell A csapattagok úgy kerültek kiválasztásra, hogy mindenki a Schönherz Zoltán kollégium lakója legyen, ami hétköznap jelentősen megközelíti a kapcsolattartást. Minden héten megbeszélést tartunk az egyik tanulószobában az adott heti teendők megbeszélése és kiosztása ügyében. Hétvégén és kisebb ügyekben interneten keresztül, Windows Live Messengerrel és en tartjuk a kapcsolatot. A csapat kis létszáma és a találkozások egyszerűsége miatt nem éreztük szükségét levelezőlista létrehozásának Fejlesztési mérföldkövek, ütemterv A fejlesztés mérföldköveit a tárgy honlapjának definíciója alapján készítjük el: Szkeleton A szkeletonnal vizsgálható a feladat modellezésének helyessége. A szkeletonban már valamennyi, a végső rendszerben szereplő objektum szerepel, azonban csak interfészük definiált. Minden metódus az indulás pillanatában a karakteres kimenetre írja a nevét és meghívja azokat a metódusokat, amelyeket a kész szoftverben is használni fog. Feltételes hívás esetén a karakteres bemeneten keresztül felhasználói beavatkozás dönti el, hogy melyik metódus hívódjon meg. A szkeleton segítségével ellenőrizhetők a forgatókönyvek és a szekvencia diagramok. Prototípus A prototípus egy kész, működő program, a grafikus felületet kivéve. Tervezési szempontból késznek tekinthető, az ütemezés és az objektumok kezelése megoldott. Az

8 objektumok (a megjelenítésre vonatkozó részeket kivéve) metódusai a végleges algoritmusokat tartalmazzák. A működés karakteres kimeneten követhető és fájlba is menthető a tesztelés megkönnyítése érdekében. Grafikus felület (GUI) A grafikus felülettel rendelkező változat a prototípustól csak a felhasználó felületben tér el. Ez a szoftver végleges verziója, mely után csak apróbb javítások lehetnek szükségesek Határidők hét dátum feladat 1 febr h - csapatok regisztrációja 2 febr. 18. Követelmény, projekt, funkcionalitás - beadás 3 febr. 25. Analízis modell kidolgozása 1. - beadás 4 márc. 4. Analízis modell kidolgozása 2. - beadás 5 márc. 11. Szkeleton tervezése - beadás 6 márc. 18. Szkeleton - beadás 7 márc. 25. Prototípus koncepciója - beadás 8 ápr. 1. Részletes tervek - beadás 9 ápr ápr. 15. Prototípus - beadás 11 ápr. 22. Grafikus felület specifikációja - beadás 12 ápr máj. 6. Grafikus változat - beadás 14 máj. 13. Összefoglalás - beadás Átadás A heti aktuális nyomtatott dokumentációt a követelményeknek megfelelően átlátszó műanyag irattartóban, fedőlappal adjuk le. A már elkészült forráskódokat a Hercules feladatbeadó rendszeren keresztül töltjük fel Szükséges dokumentációk Követelmény, projekt, funkcionalitás 3. Analízis modell kidolgozása Analízis modell kidolgozása Szkeleton tervezése 6. Szkeleton 7. Prototípus koncepciója 8. Részletes tervek Prototípus 11. Grafikus felület specifikációja

9 Grafikus változat 14. Összefoglalás 1.3 Feladatleírás A játék Verkehrsmeldungen am Uml városka életét eleveníti meg. A városban van egy bank, ahol a lakosok vagyonának egy részét őrzik. Egy tolvaj szemet vet erre a vagyonra, és ki akarja rabolni a bankot. A bank kirablása után autójába pattan, és a közlekedési szabályokra fittyet hányva a rejtekhelye felé veszi az irányt. A tolvaj dolgát nehezítik a városban járőröző rendőrök. A városi forgalomban az ütközések elkerülése, és a menekülés a rendőr elől ügyességi, és logikai próbatételt jelent a felhasználó számára. A világ egyirányú és egy autó széles utakból áll, amelyeken stoptáblák és szemaforok határozzák meg a közlekedési szabályokat. A járművek mindig betartják ezeket a szabályokat. Stop táblánál a járművek megállnak és megnézik, hogy folytathatják-e tovább útjukat. A szemaforoknak kétféle jelzésük van: piros és zöld. Ezek a jelzések bizonyos időközönként váltják egymást. Ha egy autó piros jelzést kap, megáll, és megvárja, míg a szemafor zöld jelzésre nem vált. Zöld jelzés esetén folytatja tovább az útját. Ha egy autó a másik előtt lassít, akkor a hátsó is lelassít az ütközés elkerülése érdekében. Ha egy járművet nem akadályoz semmi, akkor maximális sebességével halad az utakon. Minden útkereszteződésben vannak útjelzők. A városunk nem más, mint egy kétdimenziós úthálózat. A felhasználó a billentyűzet segítségével irányíthatja a tolvaj autóját a városban. Két mező közt átjárás van, ha nincs ott egy másik jármű. A játékos nem hagyhatja el a várost, amennyiben a határhoz ér, veszít. Ez nem vonatkozik a többi járműre (civilek és rendőrök), ők a megfelelő helyeken elhagyhatják a várost. Ekkor azonnal egy bemenő útra kerülnek, így a járművek száma a városban állandó. A járművek meghatározott közlekedési szabályok alapján közlekednek, amelyeket a rendőr és a játékos nem köteles betartani, ezzel növelve az ütközés valószínűségét. A játék célja az, hogy a felhasználó épségben elirányítsa a tolvaj járművét a banktól a rejtekhelyre. A bank és a rejtekhely a városban jól látható módon meg van jelölve. A tolvaj autója egy helyben áll vagy állandó sebességgel mozog, de nem gyorsabb a rendőrök járműveitől. Az tolvaj járművét a WASD vagy a kurzorgombokkal lehet irányítani a városban. A tolvajjal nem lehet falnak ütközni. A játék akkor tekinthető sikeresnek, ha biztonságban eljutott a tolvaj járműve a rejtekhelyre. A felhasználó dolgát nehezíti, az őt üldöző rendőr és a város forgalma. Ha a rendőr utoléri a tolvaj autóját, vagy ha a tolvaj személyautóba ütközik, akkor elveszíti a játékot. Ekkor a játék újrakezdhető, megnyerésére korlátlan számú próbálkozás áll rendelkezésre. Új játék egy gombbal indítható. A játékot akármikor befejezhetjük. A város térképe téglalap alakú, egyértelműen látszanak a térképen a járművek, a rendőrök valamint az útjelző táblák helyzete. A tolvaj sikeres eljuttatása a rejtekhelyre, a felhasználó ügyességén, gyors helyzetfelismerésén alapszik. A járművek és a rendőrök teljesen a felhasználó mozgásától függetlenül mozognak. A felhasználónak figyelnie kell rá, hogy ne kapja el a rendőr, és kerülnie kell az ütközéseket a többi járművel. A program indításakor a felhasználót a főmenü fogadja. Itt kezdhető új játék, ill. lehetőség van a játék elhagyására is. A megjelenített felület nagy részét a város adja. A felületen még figyelhetjük a játék kezdetétől eltelt időt. A játék valós időben fut, a járművek folyamatosan, véletlenszerűen mozognak a város útjain

10 1.4 Szótár felhasználó Aki kezeli a programot jármű tolvaj rendőr város út Gépkocsik, melyek a városban közlekednek a szabályokat betartva Jármű, melyre nem vonatkoznak a közlekedési szabályok, a felhasználó irányítja Jármű, melyre nem vonatkoznak a közlekedési szabályok, és el tudja kapni a tolvajt A játék helyszín, utakból és kereszteződésekből áll A város olyan része, ahol autók haladhatnak kereszteződés A város olyan része, ahol több út találkozik városhatár elhagy elsőbbség szemafor stop tábla bank rejtekhely megáll lassít gyorsit sebesség ütközés elkap Olyan utak ahol a járművek elhagyhatják a várost Amikor egy jármű a városhatárnál megszűnik létezni Kereszteződéseknél meghatározza, hogy milyen sorrendben léphetnek be a járművek Jelzőlámpa, mely piros és zöld jelzésekkel irányítja a forgalmat Az autókat megállásra kötelezi Az az épület, amely melletti úton kezdődik a játék A tolvaj rejtekhelye, ahova ha eljut megnyeri a játékot A jármű sebességét nullára csökkenti, azaz 1 helyben áll az úton A sebesség csökkentése A sebesség növelése Egységnyi idő alatt megtett utak Ha két jármű (beleértve tolvajt és rendőrt is) ugyanarra az útra érkezik A rendőr a tolvaj járművébe ütközik

11 1.5 Essential use-case-ek Use-case diagram Use-case leírások Use-case neve Játék indítása Autó mozgatása Rövid leírás A játékos új játékot kezd A játékos vezérli az autót Aktorok Játékos Játékos Forgatókönyv Betöltődik a pálya A leütött billentyűknek megfelelően mozog az autó 1.6 Napló Kezdet Időtartam Résztvevők Leírás :00 0,5 óra Bodó Pál Szárnyas kapcsolatban :00 2 óra Bodó Pál Szárnyas Csapatjelentkezés leadása, online konzultáció a csapatnévvel Értekezlet. Döntések: Bodó készíti a szótárat és a specifikációt. Pál készíti a use case diagramokat. Szárnyas készíti a projekt tervet :00 1 óra Szárnyas Dokumentációhoz sablon készítése, formázási beállítások. Projekt terv elkészítése :15 1,5 óra Bodó Pál Konzultáció (R.4.K) Szárnyas :00 2 óra Bodó Specifikáció elkészítése :00 2 óra Pál Use-case diagram és követelmény definíció elkészítése :00 2 óra Szárnyas Elkészült anyagrészek összerendezése, kiegészítések :00 - Szárnyas nyomtatás

12 2. Analízis modell kidolgozása 2.1 Napló Kezdet Időtartam Résztvevők Leírás :00 3 óra Bodó Pál Szárnyas Értekezlet. Objektummodell felvázolása papíron, felkészülés a konzultációra :00 3 óra Bodó Pál Értekezlet. Konzultáción szerzett ismeretek Szárnyas :00 8 óra Bodó Pál megvitatása. Feladatok szétosztása. Első analízis modell megalkotása Szárnyas :00 7 óra Bodó Szekvenciadiagramok megrajzolása :00 7 óra Pál Dokumentáció elkészítése :00 6 óra Szárnyas Osztálydiagram, state chartok és az időzítési szekvenciadiagram megrajzolása :00 1 óra Szárnyas Dokumentáció finomítása, nyomtatás

13 3. Analízis modell kidolgozása 3.1 Objektum katalógus City A várost megvalósító objektum, tartalmazza a város mezőit, a járműveket és a Timer objektumot. példányszám 1 ősosztályok perzisztencia konkurencia felelősségek komponensek nincs dinamikus passzív nincs Timer timer Az időzítő objektum Vehicle[0..*] vehicles Field[0..*] fields szolgáltatások A járműveket tartalmazó tömb A mezőket tartalmazó tömb void addvehicle(v:v) Jármű hozzáadása a tömbhöz void removevehicle(v:v) Jármű törlése a tömbből void win() Játék megnyerése void gameover() Játék elvesztése változók nincs Timer Az időzítőjelet kiadó objektum. példányszám 1 ősosztályok nincs perzisztencia dinamikus konkurencia aktív felelősségek nincs komponensek ITickable[0..*] tickables A tickelhető objektumok heterogén kollekciója

14 szolgáltatások void tick() A tickelhető objektumok ontick függvényeinek meghívása void addtickable(t:itickable) Tickelhető objektum hozzáadása a kollekcióhoz void removetickable(t:itickable) Tickelhető objektum törlése a kollekcióból változók nincs Field A város mezőit megvalósító objektumok. példányszám ősosztályok perzisztencia konkurencia felelősségek n nincs dinamikus passzív nincs komponensek nincs szolgáltatások nincs változók nincs ITickable <<interface>> A tickelhető objektumok közös interfésze. példányszám - ősosztályok perzisztencia konkurencia felelősségek nincs dinamikus passzív nincs komponensek nincs szolgáltatások void ontick() A tick hatására végbemenő eseményeket valósítja meg változók nincs

15 3.1.5 Vehicle A járműveket megvalósító objektum. példányszám - ősosztályok perzisztencia konkurencia felelősségek komponensek ITickable <<interface>> dinamikus passzív nincs Road[0..1] r Az az útszakasz, amin a jármű van. szolgáltatások void ontick() Timer által meghívott időzítő függvény, ami a leszármazottakban felül van definiálva void accept(r:road) Meghívja a Road removevehicle függvényét, a következő Road setvehicle függvényét, és a Vehicle setroad függvényét void choose(j: Junction, directions: enum[]) void incoming(v: Vehicle) - A kapott irányokból választ egyet, majd azzal meghívja a Junction osztály megfelelő exit függvényét void setroad(r:road) Beállítja a Vehicle r értékét void catch() - változók int frequency A jármű frekvenciája, ennyi tick telik el két lépés között int state Az előző lépés óta eltelt idő Police A rendőrt megvalósító objektum. példányszám ősosztályok perzisztencia konkurencia felelősségek n Vehicle, ITickable <<interface>> dinamikus passzív nincs

16 komponensek nincs szolgáltatások void ontick() Növeli a state változó értékét eggyel, ha egyezik a frekvenciával, akkor nullázza és meghívja a Road objektum forwardpolice függvényét saját magával. void incoming(v:vehicle) Üres függvény void choose(j: Junction, directions: enum[]) void catch() Üres függvény A kapott irányok közül választ, majd meghívja a Junction exitpolice függvényét változók nincs Civilian A civil járművet megvalósító objektum. példányszám ősosztályok perzisztencia konkurencia felelősségek n Vehicle, ITickable <<interface>> dinamikus passzív nincs komponensek nincs szolgáltatások void ontick() Növeli a state változó értékét eggyel, ha egyezik a frekvenciával, akkor nullázza és meghívja a Road objektum forwardcivilian függvényét saját magával. void incoming(v:vehicle) Üres függvény void choose(j: Junction, directions: enum[]) void catch() Üres függvény A kapott irányok közül választ, majd meghívja a Junction exitcivilian függvényét változók nincs Thief A civil járművet megvalósító objektum. példányszám 1 ősosztályok Vehicle, ITickable <<interface>>

17 perzisztencia konkurencia felelősségek komponensek dinamikus passzív nincs szolgáltatások void ontick() Meghívja a Road objektum forwardthief függvényét saját magával void incoming(v:vehicle) A City gameover függvényét hívja void choose(directions:enum[]) A tolvaj irányát a játékos választja ki a kereszteződésben, majd azzal meghívja a Junction exitthief függvényét void hide() Meghívja a Road removevehicle függvényét, a HideOut setvehicle függvényét, a Thief setroad függvényét, és a City win függvényét void exit() Meghívja a City gameover függvényét void catch() Meghívja a City gameover() függvényét változók nincs Road A város útjait megvalósító objektumok példányszám ősosztályok perzisztencia konkurencia felelősségek komponensek n Field dinamikus passzív nincs Vehicle v Az úton tartózkodó jármű Roadsign rs Útjelző szolgáltatások void steppolice(p:police) Ha a Road üres, akkor a Police accept függvényét hívja, ha nem üres, akkor a rajta levő jármű catch függvényét hívja

18 void stepcivilian(c:civilian) Ha a Roadon nincs jármű, akkor a Civilian accept függvényét hívja void stepthief(t:thief) Ha a Roadon nincs jármű, akkor a Thief accept függvényét híjva, ha van, akkor a Thief incoming függvényét hívja void setvehicle(v:vehicle) Beállítja a Road v értékét void removevehicle() A Road v értékét nullra állítja, és meghívja a RoadSign reset függvényét void forwardpolice(p:police) Meghívja a következő RoadSign enterpolice függvényét void forwardcivilian(c:civilian) Meghívja a következő RoadSign entercivilian függvényét void forwardthief(t:thief) Meghívja a következő RoadSign enterthief függvényét void addroad(r:road, rs:roadsign) Beállítja a Road rs értékét, és meghívja a A RoadSign setnextroad függvényét r-rel változók nincs enum[] direction HideOut A rabló búvóhelyét megvalósító osztály példányszám 1 ősosztályok perzisztencia konkurencia felelősségek Field, Road dinamikus passzív nincs komponensek nincs szolgáltatások void stepthief(t:thief) Ha a HideOut üres, meghívja a Thief hide függvényét, ha a HideOut-on jármű van, meghívja a Thief incoming függvényét változók nincs

19 BorderIn A városba bemenő utat megvalósító objektum példányszám ősosztályok perzisztencia konkurencia felelősségek n Field, Road dinamikus passzív nincs komponensek nincs szolgáltatások nincs változók nincs BorderOut A városból kivezető utakat megvalósító objektum példányszám ősosztályok perzisztencia konkurencia felelősségek n Field, Road dinamikus passzív nincs komponensek nincs szolgáltatások void forwardthief(t:thief) Meghívja a Thief exit függvényét változók nincs Junction A városban levő útkereszteződéseket megvalósító objektum példányszám ősosztályok perzisztencia konkurencia felelősségek n Field, Road dinamikus passzív nincs

20 komponensek szolgáltatások nincs void forwardpolice(p:police) Meghívja a Police choose függvényét void forwardcivilian(c:civilian) Meghívja a Civilian choose függvényét void forwardthief(t:thief) Meghívja a Thief choose függvényét void exitcivilian(c:civilian,dir:enum) Meghívja a RoadSign entercivilian függvényét void exitpolice(p:police,dir:enum) Meghívja a RoadSign enterpolice függvényét void exitthief(t:thief,dir:enum) Meghívja a RoadSign enterthief függvényét változók nincs RoadSign A forgalmat szabályozó útjelzéseket megvalósító objektum. A Roadok közötti csatoló osztály, amely összeköthet utat úttal (pl. gyalogos-átkelőhely) és utat kereszteződéssel is (pl. jelzőlámpa, STOP tábla). példányszám n ősosztályok perzisztencia konkurencia felelősségek komponensek ITickable <<interface>> dinamikus passzív nincs Road r A következő út szolgáltatások void ontick() - void reset() - void enterpolice(p:police) - void entercivilian(c:civilian) - void enterthief(t:thief) - void setnextroad(r:road) Beállítja a RoadSign r változóját változók nincs

21 StopSign A stop táblát megvalósító osztály példányszám ősosztályok perzisztencia konkurencia felelősségek n ITickable <<interface>>, RoadSign dinamikus passzív nincs komponensek nincs szolgáltatások void ontick() Üres függvény void reset() Countdown változót 0-ra állít void enterpolice(p:police) Meghívja a következő Road steppolice függvényét void entercivilian(c:civilian) Alapállípotban meghívja a startcountdownt, visszaszámlálás állapotban a deccountdownt, átenged állípotban pedig a következő Road stepcivilian függvényét void enterthief(t:thief) Meghívja a következő Road stepthief függvényét void startcountdown() A countdown értékét kezdőértékre állítja void deccountdown() A countdown értékét csökkenti változók int countdown számláló Semaphore A jelzőlámpát megvalósító osztály. példányszám ősosztályok perzisztencia konkurencia felelősségek n ITickable <<interface>>, RoadSign dinamikus passzív nincs komponensek nincs szolgáltatások

22 void ontick() A color változót változtatja void reset() Üres függvény void enterpolice(p:police) Meghívja a következő Road steppolice függvényét void entercivilian(c:civilian) Ha a lámpa zöld meghívja a következő Road stepcivilian függvényét void enterthief(t:thief) Meghívja a következő Road stepthief függvényét enum getcolor() A color értékével tér vissza változók int period A Semaphore periódusideje. int a A periódusban [a, b] részén zöld a lámpa, különben piros. int b int i A periódusban eltelt idő. enum color A Semaphore színe NoRoadSign Üres útjelzés, ami minden forgalmat átenged. példányszám ősosztályok perzisztencia konkurencia felelősségek n ITickable <<interface>>, RoadSign dinamikus passzív nincs komponensek nincs szolgáltatások void ontick() Üres függvény void reset() Üres függvény void enterpolice(p:police) Meghívja a következő Road steppolice függvényét void entercivilian(c:civilian) Meghívja a következő Road stepcivilian függvényét void enterthief(t:thief) Meghívja a következő Road stepthief függvényét változók nincs

23 3.2 Osztályok leírása City: A játéktérként szolgáló várost valósítja meg. Ez tartalmazza a várost alkotó mezőket, a járműveket és az időzítő objektumot. Timer: Egy meghatározott frekvenciával vezérli az engedélyező jeleket, amely a játék eseményeinek időzítéséért felelős. Field: A várost alkotó mezők. Road: Egy speciális mező, amely a város útjának egy darabját szimbolizálja. Ismeri az őt követő útszakaszt, ill. a köztük lévő útjelző táblát (STOP táblát vagy jelzőlámpát). Egyszerre egy jármű tartózkodhat rajta. Megvizsgálhatja a következő útszakaszt, és továbbküldheti a rajta levő járművet az időzítőjel hatására. BorderIn: A városba belépő útszakaszok BorderOut: A városból kilépő útszakaszok Junction: Kereszteződés, egy vagy több bejárattal és kijárattal. HideOut: Rejtekhely, a tolvaj célja ennek elérése, ha sikerül, megnyeri a játékot. RoadSign: Útjelzés, ami stop tábla vagy szemafor lehet. Ezek felelősek a forgalom irányításáért. Megmondja, hogy adott irányból behajthat-e jármű a kereszteződésbe. StopSign: Állj, elsőbbségadás kötelező tábla. Az érkező járművet megállásra készteti, majd tovább engedi. Semaphore: Jelzőlámpa, piros vagy zöld állapottal. Csak akkor enged tovább járművet, ha zöld. Vehicle: Az utakon közlekedő járművek ősosztálya. Police: A jármű egyik speciális változata a rendőr, nem vonatkoznak rá a szabályok, a kereszteződésekben pedig a véletlen irányítja. Thief: A játékos által irányított jármű, amire nem vonatkoznak a szabályok. Civilian: A város lakóinak járművei, szabályosan közlekednek, és a véletlen irányítja őket a kereszteződésekben. ITickable: Időtől függő objektumokat összefogó interfész, amelyen keresztül a Timer az objektumok időzítését végzi

24 3.3 Statikus struktúra diagramok

25 3.4 Szekvencia diagramok

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40 3.5 State-chartok Stop tábla működése 3.6 Napló Szemafor működése Kezdet Időtartam Résztvevők Leírás :00 2 óra Bodó Pál Szárnyas objektummodell átalakítása :00 2 óra Bodó Pál Szárnyas :00 2 óra Bodó Pál Értekezlet. Konzultáción hallottak megbeszélése, Szekvencia-diagramok rajzolása, modell letisztázása Objektummodell finomítása, csatoló osztály bevezetése Szárnyas :00 8 óra Bodó Szekvencia-diagramok megrajzolása :00 8 óra Pál Dokumentáció elkészítése :00 8 óra Szárnyas Osztálydiagram, state chartok és az

41 :00 2 óra Szárnyas, Bodó néhány szekvenciadiagram megrajzolása Dokumentáció finomítása, nyomtatás

42 4. Szkeleton tervezése 4.1 A szkeleton modell valóságos use-case-ei Use-case diagramok Játékos use case-ei

43 Óra use case-ei

44 4.1.2 Use-case leírások Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Játék indítása A pálya inicializálása, mezők, járművek, útjelzők létrehozása és beállítása Játékos Tolvaj mozgatása foglalt útra A tolvaj összeütközik az úton levő járművel, a játékot elveszítjük Játékos Rendőr van az úton A tolvaj összeütközik az úton levő rendőrrel, a játékot elveszítjük Játékos Civil van az úton A tolvaj összeütközik az úton levő civillel, a játékot elveszítjük Játékos Tolvaj mozgatása szabad útra A tolvaj átkerül az új útszakaszra Játékos Rejtekhelyre lép A tolvaj megmenekül, a játékot megnyerjük Játékos Városból kilép A tolvaj elhagyja a játékteret, a játékot elveszítjük Játékos Útról útra vagy kereszteződésbe lép A tolvaj átkerül az új útra vagy kereszteződésbe Játékos Kereszteződésből útra lép (irányt választ) A tolvaj a választásunknak megfelelő útra lép Játékos Idő léptetése Üzenetet küldése minden időre cselekvő dolognak a pályán Óra

45 Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Útjelzők működtetése Minden útjelző idejének léptetése Óra Szemafor működtetése A szemaforok idejének léptetése, színeiknek beállítása a paramétereiknek megfelelően Óra Stop tábla működtetése A stop táblák idejének léptetése, belső állapotaik beállítása Óra Járművek léptetése Minden jármű idejének léptetése Óra Civil léptetése A civil járművek idejének léptetése, és a jármű továbbküldése a következő útra Óra Civil útról lámpás kereszteződésbe A szemafor állapotának és a kereszteződés foglaltságának megfelelően a civil jármű áthelyezése a kereszteződésbe, vagy az úton hagyása Óra Civil útról stop táblás kereszteződésbe A civil jármű várakozásra késztetése, majd a kereszteződés foglaltságának megfelelően a kereszteződésbe léptetése Óra Civil útról útra Civil jármű következő útra léptetése, ha az szabad, egyébként helyben hagyása Óra Civil kereszteződésből útra Civil jármű áthelyezése a kereszteződés egyik véletlenszerűen kiválasztott kijáratára, ha az szabad, egyébként helyben hagyása Óra

46 Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Civil határon ki és be Civil jármű áthelyezése egy város kijáratról egy bejáratra ha az szabad, egyébként helyben hagyása Óra Tolvaj léptetése A tolvaj következő útra léptetése az irányításnak megfelelően Óra Tolvaj útról rejtekhelyre Ha a rejtekhely foglalt a játékot elveszítjük, ha szabad, akkor megnyerjük Óra Tolvaj kereszteződésből útra Az irányításnak megfelelő útra lép a tolvaj, ha az foglalt, akkor a játékot elveszítjük Óra Tolvaj útról kereszteződésbe Tolvaj belép a kereszteződésbe, ha az foglalt, akkor a játékot elveszítjük Óra Tolvaj útról útra Tolvaj a következő útra lép az irányításnak megfelelően, ha az foglalt, a játékot elveszítjük Óra Tolvaj határon ki A tolvaj kilép a városhatáron, a játkot elveszítjük Óra Rendőr léptetése A rendőr a következő útra lép Óra Rendőr határon ki és be A rendőr kilép a városhatáron és belép egy bejáraton Óra Rendőr kereszteződésből útra A rendőr a kereszteződés egy véletlenszerűen választott útjára lép, ha civil van rajta, akkor helyben marad, ha pedig tolvaj, akkor elkapja Óra

47 Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Rendőr útról kereszteződésbe A rendőr a kereszteződésbe lép, ha azon civil van, akkor helyben marad, ha tolvaj, akkor elkapja Óra Rendőr útról útra A rendőr a következő útra lép, ha azon civil van, akkor helyben marad, ha pedig tolvaj, akkor elkapja Óra 4.2 Architektúra A szkeleton az egyes use-casek bemutatására szolgál, mely során meggyőződhetünk a szekvencia diagramjaink helyességéről. Az egyes eseteket előre megtervezett, lekódolt tesztpályákon ellenőrizhetjük. A szkeleton futása során megfigyelhetjük, hogy a függvényeink a szekvencia diagramokban feltüntetett sorrendben hívódnak-e meg. A hasonló eseteknek nem készítettünk külön tesztkörnyezetet. A pályák leírásában szerepel, hogy milyen a pálya felépítése, milyen járművek találhatók rajta és mely esetek tesztelésére szolgál. Az egyes esetek tesztelésére a lehető legkisebb tesztpályát hoztuk létre. 1. Tesztpálya Roadok száma: 2 Civilian száma: 1 Ez a tesztpálya az egyes Civilian mozgását mutatja be Roadról üres Roadra. Ugyanígy mozog a Police is. 2. Tesztpálya Roadok száma: 3 Civilian száma: 2 A tesztpálya az ütközések elkerülését szimulálja. A Policeok is így kerülik el az ütközést. 3. Tesztpálya Roadok száma: 3 Junctionok száma: 1 Roadsign száma: 1 Civilian száma: 1 A teszpályán kiválasztható, hogy milyen útjelzı legyen az útkeresztezıdésben. Megfigyelhetı, hogyan viselkedik a civil jármő a jelzıtábláknál, és az útválasztás. 4. Tesztpálya Borderin száma: 1 Road száma: 1 Borderout száma: 1 Civilian száma: 1 Megfigyelhetı a város elhagyásának, valamint az érkezésnek a módja. Ez vonatkozik a Civilianra és a Policera is. 5. Tesztpálya

48 Roadok száma: 3 Junctionok száma: 1 Borderoutok száma: 2 Thiefek száma: 1 A tesztpályán a thief mozgása tesztelhetı (mozgás, útválasztás, Roadsignok figyelmen kívül hagyása), valamint a pályaelhagyás thief esetén. 6. Tesztpálya Roadok száma: 3 Thiefek száma: 1 Civilianok száma: 1 Thieffel történı ütközések szimulálására szolgál. Ez két esetre bontható szét, amikor Policeba vagy Civilianba ütközünk. 7. Tesztpálya Roadok száma: 1 Hideoutok száma: 1 Thiefek száma: 1 Ezen a tesztpályán figyelhetı meg, hogy mi történik mikor a Thief a Hideotra lép. 8. Tesztpálya Roadok száma: 2 Thiefek száma: 1 Police száma: 1 A pálya azt szimulálja, amikor egy Police elkapja a Thiefet. 9. Tesztpálya Roadok száma: 3 Junctionok száma: 1 Policeok száma: 1 Megfigyelhetı, hogy a rendır milyen módon lép be a keresztezıdésekbe és az útválasztás. 4.3 A szkeleton kezelői felületének terve, dialógusok A szkeleton célja annak bizonyítása, hogy a program képes-e az elvárt működést biztosítani, vagyis ellenőrizhető vele a szekvencia diagramok működőképessége. A szkeletonban már minden objektum a végleges interfészével szerepel, de algoritmusokat még nem tartalmaznak. Egy metódus meghívásakor a konzolra írja a következőket: az őt tartalmazó objektum neve, osztálya, hashcode-ja, metódus neve és paraméterlistája Az indentálás jelzi, hogy hány metódus fut az adott pillanatban. Ezután a metódus meghívja az általa használt többi metódust. A döntéseket a végleges programmal ellentétben nem a saját logikája alapján végzi, hanem a konzolon keresztül megkérdezi a felhasználót. A felhasználó kérdésre adott válasza (egész szám) után annak megfelelően folytatódik a program futása. Példa: Civil útról útra lép Program inditasa... { szglab4.city@14318bb letrehozva

49 { letrehozva. } Kezdo use-case-ek: 1. civil 2. rendor 3. tolvaj Valassz a fentiek kozul: 1 { szglab4.civilian@530daa letrehozva. } 1. utrol utra 2. utrol lampas keresztezodesbe 3. utrol stopstablas keresztezodesbe 4. keresztezodesbol utra 5. hataron ki es be Valassz a fentiek kozul: 1 { szglab4.road@89ae9e letrehozva. } { szglab4.road@60aeb0 letrehozva. } { szglab4.road@89ae9e --> szglab4.road@60aeb0.setnextroad() } { <-- setvehicle() } { <-- setroad() } szglab4.city@14318bb --> szglab4.civilian@530daaontick() { szglab4.civilian@530daa --> szglab4.road@89ae9e.forwardcivilian() (szglab4.c ivilian@530daa) { szglab4.road@89ae9e --> szglab4.noroadsign@16caf43.entercivilian()(szglab4.civilian@530daa) { szglab4.noroadsign@16caf43 --> szglab4.road@60aeb0.stepcivilian() (szgla b4.civilian@530daa) { Legyen jarmu elotte(1. igen, 2. nem): 2 szglab4.road@60aeb0 --> szglab4.civilian@530daa.accept(szglab4.road@60 aeb0) { szglab4.civilian@530daa --> szglab4.road@89ae9e.removevehicle() { szglab4.road@89ae9e --> szglab4.noroadsign@16caf43.reset() <-- removevehicle } szglab4.civilian@530daa --> szglab4.road@60aeb0.setvehicle() (szglab 4.Civilian@530daa) { <-- setvehicle()

50 } --> (szgla { <-- setroad() } <-- accept() } <-- stepcivilian() } <-- entercivilian() } <-- forwardcivilian() } <-- ontick() } } Kilepes a programbol

51 4.4 Szekvencia diagramok a belső működésre Civil határon ki / Rendőr határon ki és be

52 4.4.2 Civil kereszteződésből útra

53 4.4.3 Civil útról útra

54 4.4.4 Civil útról lámpás kereszteződésbe

55 4.4.5 Civil stoptáblás kereszteződésbe

56 4.4.6 Rendőr kereszteződésből útra lép

57 4.4.7 Rendőr útról keresztezősbe lép

58 4.4.8 Rendőr útról útra lép

59 4.4.9 Tolvaj kereszteződésből útra lép

60 Tolvaj határon ki

61 Tolvaj útról rejtekhelyre

62 Tolvaj útról kereszteződésbe lép

63 Tolvaj útról útra

64 Játék indítása

65 Idő léptetése

66 4.5 Napló Kezdet Időtartam Résztvevők Leírás :00 5 óra Pál Use-case-ek dokumentálása és rajzolása :00 4 óra Szárnyas Inicializálás és idő léptetése szekvendiagramok elkészítése, kezelői felület kialakítása :00 6 óra Bodó Szekvenciadiagramok use-case-ekhez társítása, apróbb módosítások, tesztpályák :00 1 óra Szárnyas Dokumentum összerendezése, nyomtatás

67 5. Szkeleton beadása 5.1 Fordítási és futtatási útmutató Az szglab4.zip állomány tartalmazza a program forráskódját, a fordításhoz, futtatáshoz és a dokumentáció generálásához szükséges parancsfájlokat. A futtatható állományok és a dokumentáció elkészítéséhez az első lépés a.zip fájl kicsomagolása. Az így kapott állományok és mappák listája az alábbiakban látható Fájllista A forrásállományokat tartalmazó./szglab4 mappa tartalma: Fájl neve Méret Keletkezés ideje Tartalom BorderIn.java :21 Bemenő út osztály BorderOut.java :21 Kimenő út osztály City.java :21 Város osztály Civilian.java :21 Civil jármű osztály Direction.java :21 Irány enumeráció EnumColor.java :21 Szín enumeráció HideOut.java :21 Rejtekhely osztály ITickable.java :21 Időzíthető interfész Logger.java :34 Naplózó osztály Junction.java :21 Kereszteződés osztály Main.java :12 Main osztály, belépési pont NoRoadSign.java :21 Üres útjelző osztály Police.java :21 Rendőr osztály Road.java :21 Út osztály RoadSign.java :21 Útjelző tábla absztrakt osztály Semaphore.java :21 Jelzőlámpa osztály StopSign.java :21 Stoptábla osztály Thief.java :21 Tolvaj osztály Timer.java :21 Időzítő objektum User.java :50 Felh. interakció osztály Vehicle.java :21 Jármű absztrakt osztály A futtatáshoz szükséges parancsfájlokat tartalmazó./ mappa tartalma: Fájl neve compile.bat doc.bat run.bat set_java_home.bat szglab4.manifest Méret Keletkezés ideje Tartalom :30 Fordítás :52 Dokumentáció generálása :46 Futtatás :51 JAVA_HOME környezeti változó beállítása :23 A fordításhoz szükséges manifest állomány

68 5.1.2 Fordítás A fordítás a compile.bat állomány futtatásával végezhető. A fordítás előfeltétele, hogy a JAVA_HOME környezeti változó az 1.6-os Java JDK könyvtárának helyét tartalmazza. Amennyiben ez nincs beállítva, 4 a set_java_home.bat állományban a REM SET JAVA_HOME="C:\Program Files\Java\jdk1.6.0_17" parancs előtti kommentjelzés (REM) megszüntetésével állítható be. A pontos cím és a jdk utáni verziószám természetesen függ a használt konfigurációtól. Sikeres fordítás esetén a./szglab4 mappában létrejönnek a.class állományok, a./ mappában pedig az szglab4.jar állomány Futtatás Sikeres fordítás után a kapott szglab4.jar állomány a run.bat futtatásával indítható. A java.exe is a JDK része, ezért a JAVA_HOME környezeti változó beállítására a fordításnál leírtak ide is érvényesek. Futtatáskor a program felajánlja a kezdeti use-case-eket, amelyekből a felhasználó számmal választhat. Hibás választás esetén a program futása véget ér. Ha egy metódus döntésre kényszerül, felhasználói beavatkozás dönti el, hogy mi történjen. Ehhez is egy számot kell beírnia a felhasználónak. Természetesen minden use-case tartalmazza (<<includes>>) az init use-case-t, amiben létrejönnek a felhasznált objektumok és egymással kapcsolatba kerülnek (pl. a jármű az útra kerül, két út egy útjelző csatoló osztályon keresztül összekötődik). A kért use-case kiválasztása után először az init use-case működése figyelhető meg, utána fut le a konkrét use-case szekvenciája. A szkeleton elkészítésénél egy utólag vitatható tervezési döntést hoztunk, miszerint a függvények hívása előtt hívjuk meg a Logger osztály Log metódusát és kiírjuk a hívó objektum és a hívott objektum típusát és hashcode-ját, valamint a meghívott metódust és annak paramétereit. Így szemléletesebben látható, hogy melyik objektum melyik másik objektumot hívja, ugyanakkor minden hívásnál oda kell figyelni ennek beszúrására. Persze az is jó megoldás lenne, ha minden metódus meghíváskor kiírná az őt tartalmazó objektum típusát, hashcode-ját és a saját paramétereit ekkor az indentáció segítségével lehetne eldönteni, hogy melyik objektum hívta a metódust. Mivel ez a szkeleton használhatóságát nem befolyásolja, úgy döntöttünk, megtartjuk az eredeti megoldásunkat Dokumentáció generálása A Javadoc dokumentáció a doc.bat futtatásával készíthető el. A javadoc.exe is a JDK része, ezért a JAVA_HOME környezeti változó beállítására a fordításnál leírtak ide is érvényesek. Sikeres futtatás esetén a dokumentáció a docs mappába kerül, ahonnan az index.html-t megnyitva tekinthető meg. 4 Parancssorban (Start menü Futtatás cmd) a SET %JAVA_HOME% paranccsal ellenőrizhető

69 5.1.5 Értékelés Tapasztalatlanságunkból fakadóan sok nehézséggel szembesültünk az IDE környezet beállítása, az SVN rendszer telepítése és a batch fájlok készítése során is. A csapatmunkát nagyban segítette, hogy mindhárman kollégisták vagyunk, így a közös értekezletek megszervezése nagyon egyszerű volt. A munkából a csapat minden tagja legjobb képességeinek megfelelően kivette részét, a feladatokat sikerült egyenletesen felosztanunk és a munkafolyamatokat a lehetőségeknek megfelelően párhuzamosítanunk. Tag neve Munka százalékban Bodó Péter 33 Pál Tamás 33 Szárnyas Gábor Napló Kezdet Időtartam Résztvevők Leírás :00 3 óra Szárnyas SVN repository létrehozása :00 2 óra Bodó Subclipse beállítása :00 2 óra Pál SVN beállítása :00 2 óra Szárnyas Osztálydiagramnak megfelelő.java állományok legenerálása :00 2 óra Bodó Pál SVN tesztelése, feladatok felosztása Szárnyas :00 2 óra Szárnyas Main, Logger és User osztály implementálása :00 3 óra Szárnyas Fordítás, futtatás és dokumentációgenerálás batch fájljainak elkészítése :00 8 óra Bodó Pál Szekvenciadiagramok implementálása, Javadoc dokumentáció készítése :00 2 óra Szárnyas CLI elkészítése :00 2 óra Bodó Pál Szárnyas Tesztesetek végigfuttatása, javítások 5.3 Statisztika A munkaórák összege a 6. beadandó elkészítésével bezárólag. Tag neve Munkaórák Bodó Péter

70 Pál Tamás 46 Szárnyas Gábor

71 6. Prototípus koncepciója 6.1 Prototípus interface-definíciója A program prototípusa konzolos felületen keresztül lesz irányítható előre specifikált parancsok segítségével. A prototípus tesztelési célokat lát el, hiszen képet kapunk a program belső működéséről. A tesztelést előre megírt parancssorozatokkal és tesztpályákkal végezzük, majd a kapott eredményt összehasonlítjuk az elvárt kimenettel, így a hibás működés kiszűrhető Az interfész általános leírása A prototípus input és output felületnek csak a szabványos be- és kimenetet használhatja, ill. fájlból olvashatónak és fájlba menthetőnek kell lennie. Utóbbi beállításokra külön parancsokat hoztunk létre, így az prototípus tesztelése kötegelt állománnyal egyszerűen végezhető Paraméterek A prototípus működését batch állománnyal való tesztelés segítésére paraméterezhetően valósítottuk meg. A prototípus meghívásának módja: java -jar szglab4.jar inputfile outputfile Bemeneti nyelv loadmap map.txt Betölti és felépíti a map.txt állományban található pályát exit Kilép a programból tick [tickcount] tickcount számút lép, ha nincs megadva, 1-et showmap Kiírja a pályán található utak és járművek mátrixait. deterministic on off Beállítja, hogy a történések véletlenszerűek vagy determinisztikusak legyenek. nextdirection id TOP RIGHT BOTTOM LEFT Csak deterministic on esetén alkalmazható. A következő döntési helyzetben az id azonosítójú jármű a specifikált irányba fog mozogni. movethief TOP RIGHT BOTTOM LEFT A játékos figuráját a specifikált irányba mozgatja // [komment] Komment (a // után szóköz szükséges)

72 6.1.4 Pályaformátum A program a pálya konfigurálását külön a pályát leíró fájl alapján végzi. Ez három fő részből fog állni: utakat, járműveket, és útjelzőket tartalmazó rész. A fájl első N sora tartalmazza a város felépítéséhez szükséges útszakaszokat leíró információkat. Minden sor M karakterből áll, egy karakter egy útszakasznak felel meg, így ez az N M karakter méretű mátrix a város térképe. A különböző útszakaszokat a következő karakterek írják le: [R] útszakasz [J] kereszteződés [I] városba belépő útszakasz [O] városból kilépő útszakasz [H] rejtekhely [-] üres mező Példa: ----O R---- IRRRJRRRO ----R I---- Az utak irányát később állítjuk be az utak egymás közötti kapcsolataiból (JOIN). A következő N sor az úthálózaton levő járműveket tartalmazza az előzőek szerinti NxMes elrendezés alapján. A járműveket a következő karakterek írják le: [T] tolvaj (csak egy lehet belőle a pályán) [P] rendőr [C] civil [-] jármű nélküli mező Példa: C C----P ----T A fájl további részében utasítások találhatóak a pálya felépítésére és a járművekre vonatkozóan. Egy JOIN X1 Y1 X2 Y2 TIPUS [INTA INTB PERIOD] sor ír le egy összeköttetést két útszakasz között a megfelelő szabályok szerint. Egy sor szóközökkel elválasztva a következő információkat tartalmazza: az első útszakasz első koordinátája (egész szám) az első útszakasz második koordinátája (egész szám)

73 a második útszakasz első koordinátája (egész szám) a második útszakasz második koordinátája (egész szám) az útszakaszok közötti útjelző típusa (szemafor: [S], stop tábla: [T], útjelző nélküli: [N]) Szemafor esetén a sor végén további három elem található: a szemaforra jellemző intervallum kezdete (egész szám) a szemaforra jellemző intervallum vége (egész szám) a szemafor periódusideje (egész szám) Az útszakaszok első koordinátája a sorának száma, a második pedig az oszlopának száma. A bal felső útszakasz koordinátái [0, 0], a jobb alsóé [N, M]. Példa: JOIN N JOIN S Egy VEHICLE N M F sorral az [N, M] koordinátákon szereplő autó F frekvenciája állítható be. Példa: VEHICLE Kimeneti nyelv A program indításakor az alábbi üzenet jelenik meg: Program loaded. Ezután a program felhasználói utasításra vár. Az egyes utasítások eredménye a következő lehet: input inputfile "inputfile" does not exist. "inputfile" loaded. output mode [outputfile] Output mode set to 0. Output mode set to 1. Output mode set to 2. Cannot access "outputfile". loadmap map.txt exit "map.txt" does not exist. "map.txt" loaded. Goodbye

74 tick [tickcount] Civilian [id] moved from [X1, Y1] to [X2, Y2]. Civilian exited the city [X1, Y1], entered the city [X2, Y2]. Police [id] moved from [X1, Y1] to [X2, Y2]. Police exited the city [X1, Y1], entered the city [X2, Y2]. Thief moved from [X1, Y1] to [X2, Y2]. Thief reached the hideout. Thief exited the city [X, Y]. Thief crashed with vehicle [id]. Police [id] caught the Thief. Semaphore changed color to [piros/zold]. StopSign changed state to [alap/visszaszamol/beenged]. showmap Roads: ----O R---- IRRRJRRRO ----R I---- Vehicles: C C----P ----T deterministic on off Game logic is set to deterministic. Game logic is set to random. nextdirection id TOP RIGHT BOTTOM LEFT Vehicle [id]'s next direction is TOP RIGHT BOTTOM LEFT. 6.2 Összes részletes use-case Játékos use-case-ei Use-case neve Rövid leírás Játék indítása A pálya inicializálása, mezők, járművek, útjelzők

75 Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Óra use-case-ei Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok létrehozása és beállítása Játékos Tolvaj mozgatása foglalt útra A tolvaj összeütközik az úton levő járművel, a játékot elveszítjük Játékos Tolvaj mozgatása szabad útra A tolvaj átkerül az új útszakaszra Játékos Rejtekhelyre lép A tolvaj megmenekül, a játékot megnyerjük Játékos Városból kilép A tolvaj elhagyja a játékteret, a játékot elveszítjük Játékos Útról útra vagy kereszteződésbe lép A tolvaj átkerül az új útra vagy kereszteződésbe Játékos Kereszteződésből útra lép (irányt választ) A tolvaj a választásunknak megfelelő útra lép Játékos Idő léptetése Üzenetet küldése minden időre cselekvő dolognak a pályán Óra Szemafor működtetése A szemaforok idejének léptetése, színeiknek beállítása a paramétereiknek megfelelően Óra Stop tábla működtetése A stop táblák idejének léptetése, belső állapotaik beállítása Óra Járművek léptetése Minden jármű idejének léptetése Óra

76 Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Civil léptetése A civil járművek idejének léptetése, és a jármű továbbküldése a következő útra Óra Civil útról lámpás kereszteződésbe A szemafor állapotának és a kereszteződés foglaltságának megfelelően a civil jármű áthelyezése a kereszteződésbe, vagy az úton hagyása Óra Civil útról stop táblás kereszteződésbe A civil jármű várakozásra késztetése, majd a kereszteződés foglaltságának megfelelően a kereszteződésbe léptetése Óra Civil útról útra Civil jármű következő útra léptetése, ha az szabad, egyébként helyben hagyása Óra Civil kereszteződésből útra Civil jármű áthelyezése a kereszteződés egyik véletlenszerűen kiválasztott kijáratára, ha az szabad, egyébként helyben hagyása Óra Civil határon ki és be Civil jármű áthelyezése egy város kijáratról egy bejáratra ha az szabad, egyébként helyben hagyása Óra Tolvaj léptetése A tolvaj következő útra léptetése az irányításnak megfelelően Óra Tolvaj útról rejtekhelyre Ha a rejtekhely foglalt a játékot elveszítjük, ha szabad, akkor megnyerjük Óra Tolvaj kereszteződésből útra Az irányításnak megfelelő útra lép a tolvaj, ha az foglalt, akkor a játékot elveszítjük

77 Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Use-case neve Rövid leírás Aktorok Óra Tolvaj útról kereszteződésbe Tolvaj belép a kereszteződésbe, ha az foglalt, akkor a játékot elveszítjük Óra Tolvaj útról útra Tolvaj a következő útra lép az irányításnak megfelelően, ha az foglalt, a játékot elveszítjük Óra Tolvaj határon ki A tolvaj kilép a városhatáron, a játkot elveszítjük Óra Rendőr léptetése A rendőr a következő útra lép Óra Rendőr határon ki és be A rendőr kilép a városhatáron és belép egy bejáraton Óra Rendőr kereszteződésből útra A rendőr a kereszteződés egy véletlenszerűen választott útjára lép, ha civil van rajta, akkor helyben marad, ha pedig tolvaj, akkor elkapja Óra Rendőr útról kereszteződésbe A rendőr a kereszteződésbe lép, ha azon civil van, akkor helyben marad, ha tolvaj, akkor elkapja Óra Rendőr útról útra A rendőr a következő útra lép, ha azon civil van, akkor helyben marad, ha pedig tolvaj, akkor elkapja Óra 6.3 Tesztelési terv Tesztelés menete A prototípus fordítása és indítása a szkeletonhoz hasonlóan kötegelt állományokkal (compile.bat és run.bat) lehetséges

78 A prototípus alapértelmezésben a szabványos ki- és bemenetet használja, de a megfelelő parancsok segítségével átirányíthatóak fájlba írása, ill. fájlból olvasásra. Mindkét esetben csak a pontban specifikált utasítások használhatóak és egy sor egy utasítást tartalmazhat. A kért tesztesek lefuttatása után a program összehasonlítja a kapott kimenetet az elvárt kimenettel és kiírja, hogy ezek megegyeznek-e Teszt-esetek Teszt-eset neve Civilian (Police) mozgása Roadról Roadra Rövid leírás Civilianok száma: 1 Policok száma: 1 Civilianok száma : 1 Roadok száma: 4 Teszt célja A tesztpályán megfigyelhető a Civil jármű mozgása útról útra. A Police is ugyanígy lép útról útra Teszt-eset neve Város elhagyása, érkezés Rövid leírás Civilianok száma: 1 BorderInek száma: 1 BorderOutok száma: 1 Teszt célja Azt szimulálja, hogyan hagyja el a várost a civil jármű és hogyan érkezik oda meg Teszt-eset neve Ütközés elkerülés Rövid leírás Roadok száma: 3 Civilianok száma: 2 Teszt célja Megfigyelhető, hogy hogyan kerülik el az ütközést a civil járművek, és a Rendőrök Teszt-eset neve Civilian útról szemaforos kereszteződésbe Rövid leírás Roadok száma: 4 Junction száma: 2 Stopsignok száma: 1 Semaphorok száma: 1 Civilek száma: 1 Teszt célja Civil járműnek a viselkedését figyelhetjük meg útjelzőnél, és az irányválasztást. Teszt-eset neve Thief mozgása Rövid leírás Roadok száma: 4 Junctionok száma: 2 Borderoutok száma: 2 Stopsignok száma: 1 Semaphorok száma: 1 Thiefek száma: 1 Teszt célja A tesztpályán a thief mozgása tesztelhető (mozgás, útválasztás, Roadsignok figyelmen kívül hagyása), valamint a pályaelhagyás Thief esetén

79 Teszt-eset neve Elkapás Rövid leírás Roadok száma: 2 Policok száma: 1 Thiefek száma: 1 Teszt célja A pálya azt szimulálja, amikor egy Police elkapja a Thiefet. Teszt-eset neve Ütközés Rövid leírás Roadok száma: 3 Junctionok száma: 1 Civilian száma: 1 Policeok száma: 1 Thiefek száma : 1 Teszt célja Ez a tesztpálya szimulálja a Thief ütközését Civiliannal vagy Police-szal Teszt-eset neve Győzelem Rövid leírás Roadok száma: 1 Hideoutok száma: 1 Thiefek száma: 1 Teszt célja Megfigyelhető, hogy mi történik, ha a tolvaj eléri a Hideoutot Teszt-eset neve Police Roadról Junctionba Rövid leírás Roadok száma: 3 Junctionok száma: 1 Policeok száma: 1 Teszt célja Megfigyelhető, hogy a rendőr milyen módon lép be a kereszteződésekbe és az útválasztás

80 6.4 Napló Kezdet Időtartam Résztvevők Leírás :00 3 óra Bodó Pál Szárnyas Prototípus koncepciójának kidolgozása, feladatok kiosztása, use-case-ek kitöltése :00 2 óra Szárnyas cmp.exe használata, tesztelés menete :00 2 óra Bodó tesztesetek dokumentálása :00 2 óra Pál pályaformátum megalkotása :00 4 óra Bodó Pál Szárnyas Bemeneti és kimeneti nyelv megalkotása és dokumentálása

81 7. Részletes tervek 7.1 Osztályok és metódusok tervei City A várost megvalósító objektum, tartalmazza a város mezőit, a járműveket és a Timer objektumot. Felelősség A City hozza létre és tárolja a játék objektumait. A járműveket a vehicles tömbben, az utakat a roads tömbben. Ez az osztály felelős a játék végéért, ha nyerünk vagy vesztünk. Ősosztályok Nincs Interfészek Nincs Attribútumok -timer: Timer referencia a Timer objektumra -vehicles: ArrayList<Vehicle> a járműveket tartalmazó tömb -roads: Road[][] a pálya mezőit tartalmazó kétdimenziós tömb -thiefid: int A tolvaj azonosítója -view: View A megjelenítőosztályok interfésze -gamerunning: boolean A játék futásának állapota -inputfilename: String A térképállomány neve -outputfilename: String A kimeneti állomány neve Metódusok -void loadmap(mapfilename: String, view: View_) Betölti a térképet, a járműveket, összekapcsolja az utakat, és beállítja a járművek frekvenciáit. +void win() A játék megnyerése, leállítja a timert. +void gameover() A játék elvesztése, eállítja a timert. +void actionperformed(actionevent e) Lekezeli az eseményeket. +void keypressed(keyevent e)

82 Gomb nyomvatartásakor lefutó függvény. +void keyreleased(keyevent e) Gombfelengedés esetén lefutó függvény. +void repaint() Újrarajzolja az utakat, útjelzőket, és a járműveket. +void exit() Kilépés a programból Timer Az időzítőobjektum. Felelősség Tartalmaz egy tömböt az összes tickelhető objektumról, amiknek meghatározott időnként meghívja az ontick metódusait. Ősosztályok Nincs Interfészek Nincs Attribútumok -tickables: ArrayList<ITickable> a tickelhető objektumok heterogén kollekciója -t: javax.swing.timer beépített timer objektum Metódusok +void tick() Meghívja a tickables elemeinek ontick metódusait. +void addtickable(t: ITickable) A kapott objektumot hozzáadja a tickables tömbhöz. +void removetickable(t:itickable) A kapott objektumot törli a tickables tömbből. +void start() Elindítja a timer objektumot. +void stop() Megállítja a timer objektumot ITickable <<interface>> A tickelhető objektumok közös interfésze. Minden osztály megvalósítja, ami az időtől függően változik. Felelősség Nincs

83 Ősosztályok Nincs Interfészek Nincs Attribútumok Nincs Metódusok +void ontick() A tick hatására végbemenő eseményeket valósítja meg Vehicle A járműveket megvalósító osztály. Felelősség Azokat az attribútumokat és metódusokat tartalmazza, amik minden járműre jellemzőek. Ősosztályok Nincs Interfészek ITickable Attribútumok #r: Road referencia az adott járművet tartalmazó útra #frequency: int a jármű frekvenciája, ennyi tick telik el két lépés között #state: int az előző lépés óta eltelt idő #view: IView referencia a megjelenítő osztályok interfészére #nextdirection: Direction a következő kereszteződésnél ebbe az irányba fog továbbmenni a jármű ha lehetséges -id: int a jármű azonosítója Metódusok +void ontick() Timer által meghívott időzítő függvény, ami a leszármazottakban felül van definiálva +void choose(j: Junction, directions: Direction[])

84 A kapott irányokból választ egyet, majd meghívja a Junction osztály megfelelő exit függvényét. +void incoming(v: Vehicle) - +void catchvehicle() - +void steponpolice() - +void steponcivilian() - +void steponthief(t: Thief) - +void steponbunny() - +void accept(r: Road) A járművet áthelyezi a következő útra úgy, hogy meghívja a Road removevehicle() függvényét, a következő Road setvehicle(v: Vehicle) függvényét saját magával, és a Vehicle setroad(r: Road) függvényét a következő úttal. +void setroad(r: Road) A Vehicle r referenciáját állítja be a kapott útra. +void setfrequency(int f) A frekvenciát állítja be. +int getid() Az id-t adja vissza. +void setid(int id) Az id-t állítja be. +void setnextdirection(nextdirection: Direction) Beállítja a nextdirection értékét. +Direction getnextdirection() A nextdirection értékével tér vissza. +Road getroad() Az r értékével tér vissza. +void setview(view: IView) Beállítja a view értékét Bunny A húsvéti nyuszit megvalósító objektum. Felelősség Időnként megjelenik a pályán. Ha rendőr vagy civil üti el, a nyuszi eltűnik; ha tolvaj, a nyuszi eltűnik és a tolvaj bizonyos ideig halhatatlan lesz. Ősosztályok Vehicle Interfészek ITickable

85 Attribútumok -frequency: int a nyuszi pályán tartózkodásának idejét határozza meg -state: int a nyuszi pályán tartózkodásának idejét méri -live: boolean Ha a nyuszi él igaz, egyébként hamis. Metódusok +void ontick() Növeli a state értékét eggyel, ha egyezik a frequency-vel, akkor leveszi magát az útról. +void choose(j: Junction, directions: Direction[]) Üres függvény. +void incoming(v: Vehicle) Meghívja a paraméterként kapott jármű steponbunny() metódusát, majd törli magát az útról. +void steponpolice() Üres függvény. +void steponcivilian() Üres függvény. +void steponthief(t: Thief) Üres függvény. +void steponbunny() Üres függvény. +void reborn() Újjáéleszti a nyuszit. +void catchvehicle(v: Vehicle)

86 Meghívja a paraméter incoming(v: Vehicle) függvényét Police A rendőrt megvalósító objektum. Felelősség Az útjelzőket figyelmen kívül hagyja, civillel nem ütközik, és a tolvajt elkaphatja, ha nekimegy. Ősosztályok Vehicle Interfészek ITickable Attribútumok -notdestroyed: boolean Ha a rendőr elpusztult, az értéke hamis lesz. Metódusok +void ontick() Növeli a state értékét eggyel, ha egyezik a frequencyvel, akkor nullázza és meghívja a Road objektum forwardpolice(p: Police) függvényét saját referenciáját átadva paraméterként. +void choose(j: Junction, directions: Direction[])

87 A kapott irányok közül véletlenszerűen választ, majd meghívja a Junction exitpolice(p: Police, dir: Direction[]) függvényét saját magával és a választott iránnyal. +void incoming(v: Vehicle) A paraméterül kapott jármű steponpolice() függvényét hívja meg. +void steponpolice() Üres függvény. +void steponcivilian() Üres függvény. +void steponthief(t: Thief) Meghívja a Thief catchvehicle() függvényét. +void steponbunny() Üres függvény. +void catchvehicle(v: Vehicle) Üres függvény. +boolean getdestroyed() A notdestroyed változó értékével tér vissza. +void Destroyed() A notdestroyed értékét hamisra állítja Civilian A civil járművet megvalósító objektum. Felelősség Más járműnek nem megy neki mozgása során. Ősosztályok Vehicle Interfészek ITickable Attribútumok Metódusok +void ontick() Növeli a state értékét eggyel, ha egyezik a frequencyvel, akkor nullázza és meghívja a Road objektum forwardcivilian(c: Civilian) függvényét saját referenciáját átadva paraméterként

88 +void choose(j: Junction, directions: Direction[]) A kapott irányok közül véletlenszerűen választ, majd meghívja a Junction exitcivilian(c: Civilian, dir: Direction[]) függvényét saját magával és a választott iránnyal. +void incoming(v: Vehicle) A paraméterül kapott jármű steponcivilian() függvényét hívja meg +void catchvehicle(v: Vehicle) Üres függvény +void steponpolice() Üres függvény. +void steponcivilian() Üres függvény. +void steponthief(t: Thief) Üres függvény. +void steponbunny() Üres függvény Thief A tolvajt megvalósító objektum. Felelősség A játékos irányítja, az útjelzőket figyelmen kívül hagyja, ha más járművel ütközik vége a játéknak, ha a nyuszit elüti védelmet kap egy időre. Ősosztályok Vehicle

89 Interfészek ITickable Attribútumok +invulnerable: int() Ha az értéke nem nulla, akkor sebezhetetlen a tolvaj a rendőr által annyi ideig amennyi az értéke. Metódusok +void ontick() Meghívja a Road objektum forwardthief(t: Thief) függvényét saját magával. Ha az invulnerable értéke nem nulla, akkor csökkenti. +void choose(j: Junction, directions: Direction[]) Meghívja a Junction exitthief(t: Thief, dir: Direction[]) függvényét saját magával és a nextdirectionnel. +void incoming(v: Vehicle) Meghívja a Vehicle steponthief függvényét. +void exit() Meghívja a City gameover() függvényét. +void hide(h: HideOut) Meghívja a HideOut accept() függvényét, majd a City win() függvényét. +void steponpolice()

90 Ha a tolvaj sebezhető, akkor meghívja a City gameover() függvényét. Ha sebezhetetlen, akkor elpusztítja a rendőrt, és átteszi magát a következő útra. +void steponcivilian() Meghívja a City gameover() függvényét.. +void steponthief(t: Thief) Üres függvény. +void steponbunny() Az invulnerable értékét 15-re állítja. +void catchvehicle() Ha a tolvaj sebezhető, rálépteti a rendőrt, ha sebezhetetlen, meghívja a City gameover() függvényét Road A város útjait megvalósító osztály. Felelősség A rajta levő járművet továbbküldi a következő útra a jármű kérésére. Ősosztályok Nincs Interfészek Nincs Attribútumok #v: Vehicle referencia az úton levő járműre #roads: RoadSign[] azon utakhoz tartozó útjelzők referenciája, amelyekre az adott útról lépni lehet #view: IView referencia a megjelenítő osztályok interface-ére #x: int az út egyik koordinátája #y: int az út egyik koordinátája Metódusok +void steppolice(p: Police) Ha a Road üres, akkor a Police accept(r: Road) függvényét hívja saját magával, ha nem üres, akkor a rajta levő jármű incoming(v: Vehicle) függvényét hívja a kapott paraméterrel

91 +void stepcivilian(c: Civilian) Ha a Road üres, akkor a Civilian accept(r:road) függvényét hívja saját magával, ha nem üres, akkor a rajta levő jármű incoming(v: Vehicle) függvényét hívja a kapott paraméterrel. +void stepthief(t: Thief) Ha a Road üres, akkor a Thief accept(r: Road) függvényét hívja saját magával, ha nem üres akkor a rajta levő jármű incoming(v: Vehicle) függvényét hívja a kapott paraméterrel

92 +void setvehicle(v: Vehicle) Beállítja a Road r referenciáját a kapott paraméterre. +void removevehicle() A Road értékét nullra állítja, és meghívja a RoadSign-ok reset() függvényeit. Notify()-t hív. +void forwardpolice(p: Police) Meghívja a RoadSign enterpolice(p: Police) függvényét a kapott paraméterrel. +void forwardcivilian(c: Civilian) Meghívja a RoadSign entercivilian(c: Civilian) függvényét a kapott paraméterrel. +void forwardthief(t: Thief) Meghívja a RoadSign enterthief(t: Thief) függvényét a kapott paraméterrel. +void addroad(r: Road, roads: RoadSign) Beállítja a roads értékét a kapott paraméterre, és meghívja a RoadSign setnextroad(r: Road) függvényét r-rel. +void setvehiclefrequency(int f) A jármű sebességét állítja be. +int getx() Az út x koordinátáját adja vissza. +int gety() Az út y koordinátáját adja vissza. +void setx() Az út x koordinátáját állítja be. +void gety() Az út y koordinátáját állítja be. +void setview(view: IView) A view referencia értékét állítja be. +Color color() Az út színét adja vissza. +void notifyroadsigns() Az úthoz tartozó útjelzőket rajzolja újra

93 +boolean getvehicle() Ha az úton van jármű igazzal tér vissza, egyébként hamissal. +void ArrayList<Direction> getdirections() Visszaadja, hogy milyen irányokba lehet továbbhaladni HideOut A tolvaj búvóhelyét megvalósító osztály. Felelősség Ha a tolvaj rálép, amikor üres, megnyeri a játékot. Ősosztályok Road Interfészek Nincs Attribútumok Metódusok +void stepthief(t: Thief) Ha a HideOut üres, meghívja a Thief hide() függvényét, ha nem üres, meghívja a Thief incoming() függvényét BorderIn A városba bemenő utat megvalósító osztály. Felelősség A városból kilépő, majd a városba belépő járművek itt jelennek meg. Ősosztályok Road Interfészek Nincs Attribútumok Nincs Metódusok Nincs BorderOut A városból kivezető utakat megvalósító osztály

94 Felelősség Az innen továbbhaladó járművek egy bejáraton jelennek meg, kivéve a tolvaj, ami veszíti a játékot, ha kilép. Ősosztályok Road Interfészek Nincs Attribútumok Nincs Metódusok +void forwardthief(t: Thief) Meghívja a Thief exit() függvényét Junction A városban levő útkereszteződéseket megvalósító osztály. Felelősség A rajta levő járműveket kérésükre továbbküldi a kivezető utak valamelyikére. Ősosztályok Road Interfészek Nincs Attribútumok Nincs Metódusok +void forwardpolice(p: Police) Meghívja a Police choose(j: Junction, dir: Direction[]) függvényét saját magával, és a válaszható irányok tömbjével +void forwardcivilian(c: Civilian) Meghívja a Civilian choose(j: Junction, dir: Direction[]) függvényét saját magával, és a válaszható irányok tömbjével. +void forwardthief(t: Thief) Meghívja a Thief choose(j: Junction, dir: Direction[]) függvényét saját magával, és a válaszható irányok tömbjével. +void exitpolice(p: Police, dir: Direction) Meghívja a megfelelő irányhoz tartozó RoadSign enterpolice(p: Police) függvényét a kapott paraméterrel. +void exitcivilian(c: Civilian, dir: Direction)

95 Meghívja a megfelelő irányhoz tartozó RoadSign entercivilian(c: Civilian) függvényét a kapott paraméterrel. +void exitthief(t: Thief, dir: Direction) Meghívja a megfelelő irányhoz tartozó RoadSign enterthief(t: Thief) függvényét a kapott paraméterrel RoadSign A forgalmat szabályozó útjelzéseket megvalósító osztály. Felelősség A Roadok közötti csatoló osztály, amely összeköthet utat úttal (pl. gyalogos-átkelőhely) és utat kereszteződéssel is (pl. jelzőlámpa, STOP tábla). Ősosztályok Nincs Interfészek ITickable Attribútumok #r: Road referencia a következő útra #view: IView referencia a megjelenítőosztályok interfészére -x: int az útjelzőhöz tartozó út egyik koordinátája -y: int az útjelzőhöz tartozó út egyik koordinátája -direction: Direction az útjelző iránya Metódusok +void ontick() A tick hatására végbemenő eseményeket valósítja meg. +void reset() Absztrakt függvény +void enterpolice(p: Police) Absztrakt függvény +void entercivilian(c: Civilian) Absztrakt függvény +void enterthief(t: Thief) Absztrakt függvény +void setnextroad(r: Road) Beállítja a RoadSign r értékét a kapott paraméterre. +void setview(view: IView) Beállítja a view attribútumot a kapott paraméterre. +void setx(x: int)

96 Beállítja az x koordináta értékét. +void sety(y: int) Beállítja az y koordináta értékét. +void setdirection(direction: Direction) Beállítja a direction értékét. +int getx() Az x koordinátát adja vissza. +int gety() Az y koordináta értékét adja vissza. +Direction getdirection() A direction értékét adja vissza StopSign A stop táblát megvalósító osztály. Felelősség Az állapotától függően átengedi, vagy megállítja az előtte levő járművet. Ősosztályok RoadSign Interfészek ITickable Attribútumok -countdown: int számláló, ami tárolja a stop tábla állapotait (0: alap, 1: átenged, 3,2: visszaszámlál)

2. Követelmény, projekt, funkcionalitás

2. Követelmény, projekt, funkcionalitás 2. Követelmény, projekt, funkcionalitás 2.1 Követelmény definíció: 2.1.1 A program célja, alapvetı feladata: A program nem más, mint egy ügyességi játék, ahol a feladat a pályán lévı gyémántok megszerzése.

Részletesebben

Követelmény, projekt, funkcionalitás 41 CSK 1

Követelmény, projekt, funkcionalitás 41 CSK 1 Követelmény, projekt, funkcionalitás 41 CSK 1 konzulens Eredics Péter csapattagok Olasz Ákos G34NIY olaszakos@gmail.com Panyiczky Péter Zoltán T533FJ panyika@gmail.com Lágler Krisztián FYMGQ8 lagler.krisztian@gmail.com

Részletesebben

A követelmények leírása

A követelmények leírása A követelmények leírása Júz Kéz az indián kincskereső barlangokban gyémántra vadászik. Ehhez korlátozott mennyiségű robbanószer és élet áll rendelkezésére. A játékos feladata az indián irányítása, és a

Részletesebben

Szkeleton tervezése. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András. 2005. március 21.

Szkeleton tervezése. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András. 2005. március 21. Szkeleton tervezése 100 Generalis faliora Konzulens: Szabó András Csapattagok: Kenéz Tamás TLSXNP arachnus@tvn.hu Kiss Gergely KNJU43 6er6e1y@gmail.com Papp Gergely L584UF pg554@hszk.bme.hu Rostás Gábor

Részletesebben

KINDERGARTEN. 46 InFoka. Dady Róbert. Csapattagok: Konzulens:

KINDERGARTEN. 46 InFoka. Dady Róbert. Csapattagok: Konzulens: KINDERGARTEN 46 InFoka Konzulens: Dady Róbert Csapattagok: Bors Alpár Szabolcs Z0AVHU alpijoe@sch.bme.hu Szegedi Tamás AASWGX szedzsi@sch.bme.hu Tóth Tamás EWYXK4 tommey@freemail.hu 2006. május 15. 2006.

Részletesebben

Kincskereső játék. 78 TeraCorp DT. Bíró Barna. Konzulens:

Kincskereső játék. 78 TeraCorp DT. Bíró Barna. Konzulens: Kincskereső játék 78 TeraCorp DT Konzulens: Bíró Barna Csapattagok: Schmidt Antonio IW3JDL santoni87@hotmail.com Tahi Bálint X0818E tahi.balint@hotmail.com Zsoldos Tamás EBNZZS thomastheronin@msn.com 1.

Részletesebben

Csoport neve: Kisiskolások Feladat sorszáma: 2. Feladat címe: Oktatási intézmény honlapja, oktatási naplóval. E-Project.

Csoport neve: Kisiskolások Feladat sorszáma: 2. Feladat címe: Oktatási intézmény honlapja, oktatási naplóval. E-Project. Csoport neve: Kisiskolások Feladat sorszáma: 2. Feladat címe: Oktatási intézmény honlapja, oktatási naplóval E-Project Gyakorlatvezető: Krizsán Zoltán Csoport tagok: Koncz Gergely WP21 info@teng.hu Lajtner-Gerán

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67 SZOFTVERTECHNOLÓGIA Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - RENDSZERTERVEZÉS 1 1 of 67 TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK IV. RENDSZERARCHITEKTÚRÁK

Részletesebben

Előzmények 2011.10.23.

Előzmények 2011.10.23. Előzmények Dr. Mileff Péter A 80-as évek közepétől a szoftverek komplexitása egyre növekszik. Megjelentek az OO nyelvek. Az OO fejlesztési módszerek a rendszer különböző nézőpontú modelljeit készítik el.

Részletesebben

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23.

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23. Szoftverprototípus készítése Dr. Mileff Péter A prototípus fogalma: a szoftverrendszer kezdeti verziója Mi a célja? Arra használják, hogy bemutassák a koncepciókat, kipróbálják a tervezési opciókat, jobban

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. Bánsághi Anna 1 of 54

Bánsághi Anna anna.bansaghi@mamikon.net. Bánsághi Anna 1 of 54 SZOFTVERTECHNOLÓGIA Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - KÖVETELMÉNY MENEDZSMENT Bánsághi Anna 1 of 54 TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK

Részletesebben

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench) 8. Rendszermodellek Kérdések Miért kell a rendszer kontextusát már a követelménytervezés során modellezni? Mi a viselkedési modell, az adatmodell és az objektum-modell? Milyen jelöléseket tartalmaz az

Részletesebben

Viharvadász csapat. Bankrablós játék. 2006. augusztus 20.

Viharvadász csapat. Bankrablós játék. 2006. augusztus 20. Viharvadász csapat Bankrablós játék 2006. augusztus 20. Tartalomjegyzék Vihar Tartalomjegyzék Követelmény, projekt, funkcionalitás...3 Analízis modell kidolgozása...16 Szkeleton tervezése...43 Szkeleton

Részletesebben

Analízis modell kidolgozása I.

Analízis modell kidolgozása I. Analízis modell kidolgozása I. 65 Konzulens: Zsolnai Károly Csapattagok Balogh Péter Tamás B6E4VC b4logh.peter@gmail.com Gál István László EKCBOK galpityu@gmail.com Kárász Gábor QHTQ8N raknepseg@gmail.com

Részletesebben

Kaspersky Internet Security Felhasználói útmutató

Kaspersky Internet Security Felhasználói útmutató Kaspersky Internet Security Felhasználói útmutató ALKALMAZÁS VERZIÓJA: 16.0 Tisztelt Felhasználó! Köszönjük, hogy termékünket választotta. Reméljük, hogy ez a dokumentum segít a munkájában, és választ

Részletesebben

7. Verifikáci. ció. Ennek része a hagyományos értelemben vett szoftvertesztelés is. A szoftver verifikálásának,

7. Verifikáci. ció. Ennek része a hagyományos értelemben vett szoftvertesztelés is. A szoftver verifikálásának, 7. Verifikáci ció, validáci ció A verifikáció és a validáció (V&V) azon ellenőrző és elemző folyamatok összessége, amelyek célja annak vizsgálata, hogy a szoftver megfelel a specifikációnak. Ennek része

Részletesebben

Objektum Orientált Szoftverfejlesztés (jegyzet)

Objektum Orientált Szoftverfejlesztés (jegyzet) Objektum Orientált Szoftverfejlesztés (jegyzet) 1. Kialakulás Kísérletek a szoftverkrízisből való kilábalásra: 1.1 Strukturált programozás Ötlet (E. W. Dijkstra): 1. Elkészítendő programot elgondolhatjuk

Részletesebben

Darts - Krikett Projekt feladat specifikáció

Darts - Krikett Projekt feladat specifikáció Darts - Krikett Projekt feladat specifikáció 1 Tartalomjegyzék 1 Tartalomjegyzék... 2 2 Bevezetés... 3 2.1 A feladat címe... 3 2.2 A feladat rövid ismertetése... 3 3 Elvárások a feladattal kapcsolatban...

Részletesebben

1. Funkcionális terv. 1.1. Feladat leírása: 1.2. Rendszer célja, motivációja:

1. Funkcionális terv. 1.1. Feladat leírása: 1.2. Rendszer célja, motivációja: Rendszerterv 1. Funkcionális terv 1 1.1. Feladat leírása: 1 1.2. Rendszer célja, motivációja: 1 1.3. Szereplők és igényeik: 2 1.3.1. Valódi felhasználók: 2 1.3.2. Hirdetők : 3 1.3.3. Szerver oldal: 3 1.4.

Részletesebben

Rendszerterv. 1. Funkcionális terv. 1.1. Feladat leírása:

Rendszerterv. 1. Funkcionális terv. 1.1. Feladat leírása: Rendszerterv 1. Funkcionális terv 1.1. Feladat leírása: A feladat egy GPS-képes eszközökön futó alkalmazás, illetve ennek szerver oldali párjának létrehozása. A program a szerveren tárolt adatbázis alapján

Részletesebben

PÁLYÁZATI FELHÍVÁS. az EGT Finanszírozási Mechanizmus 2009-2014. Kulturális és természeti örökség megőrzése, megújítása program

PÁLYÁZATI FELHÍVÁS. az EGT Finanszírozási Mechanizmus 2009-2014. Kulturális és természeti örökség megőrzése, megújítása program PÁLYÁZATI FELHÍVÁS az EGT Finanszírozási Mechanizmus 2009-2014 Kulturális és természeti örökség megőrzése, megújítása program A kulturális és a művészeti sokszínűség előmozdítása az európai kulturális

Részletesebben

VirtualBox, Debian telepítés

VirtualBox, Debian telepítés VirtualBox, Debian telepítés 1 VirtualBox Az Oracle VirtualBox egy x86-alapú (azaz AMD vagy Intel rendszerekre kifejlesztett), több platformon is futtatható virtualizációs program. A segítségével virtuális

Részletesebben

A SZOFTVERTECHNOLÓGIA ALAPJAI

A SZOFTVERTECHNOLÓGIA ALAPJAI A SZOFTVERTECHNOLÓGIA ALAPJAI Objektumorientált tervezés 8.előadás PPKE-ITK Tartalom 8.1 Objektumok és objektumosztályok 8.2 Objektumorientált tervezési folyamat 8.2.1 Rendszerkörnyezet, használati esetek

Részletesebben

Szkeleton beadása. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András. 2005. március 29.

Szkeleton beadása. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András. 2005. március 29. Szkeleton beadása 100 Generalis faliora Konzulens: Szabó András Csapattagok: Kenéz Tamás TLSXNP arachnus@tvn.hu Kiss Gergely KNJU43 6er6e1y@gmail.com Papp Gergely L584UF pg554@hszk.bme.hu Rostás Gábor

Részletesebben

ProCOM GPRS ADAPTER TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. v1.00.0096 és újabb modul verziókhoz Dokumentumverzió: 1.41 2013.08.09

ProCOM GPRS ADAPTER TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. v1.00.0096 és újabb modul verziókhoz Dokumentumverzió: 1.41 2013.08.09 ProCOM GPRS ADAPTER TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ v1.00.0096 és újabb modul verziókhoz Dokumentumverzió: 1.41 2013.08.09 Tartalomjegyzék 1 A ProCOM GPRS Adapter alapvető funkciói... 3 1.1 Funkciók

Részletesebben

HITELESÍTÉSI ELŐÍRÁS GÉPJÁRMŰ MENETÍRÓK HE 23-2000

HITELESÍTÉSI ELŐÍRÁS GÉPJÁRMŰ MENETÍRÓK HE 23-2000 HITELESÍTÉSI ELŐÍRÁS HE 23-2000 Az adatbázisban lévő elektronikus változat az érvényes! A nyomtatott forma kizárólag tájékoztató anyag! TARTALOMJEGYZÉK 1. AZ ELŐÍRÁS HATÁLYA... 4 2. MÉRTÉKEGYSÉGEK, JELÖLÉSEK...

Részletesebben

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

A Szekszárdi I. Béla Gimnázium Helyi Tanterve A Szekszárdi I. Béla Gimnázium Helyi Tanterve Négy évfolyamos gimnázium Informatika Készítette: a gimnázium reál munkaközössége 2015. Tartalomjegyzék Alapvetés...3 Egyéb kötelező direktívák:...6 Informatika

Részletesebben

Használati útmutató. DALI EASY 1.0 változat. www.osram.com www.osram.de

Használati útmutató. DALI EASY 1.0 változat. www.osram.com www.osram.de Használati útmutató DALI EASY 1.0 változat OSRAM GmbH Customer-Service-Center (CSC) Steinerne Furt 62 86167 Augsburg, Germany www.osram.com www.osram.de Tel. : (+49) 1803 / 677-200 (díjköteles) Fax.: (+49)

Részletesebben

Az MS Access adatbázis-kezelő program

Az MS Access adatbázis-kezelő program Az adatbázis-kezelő program A tananyagban az alapfogalmak és a tervezési megoldások megismerése után a gyakorlatban is elkészítünk (számítógépes) adatbázisokat. A számítógépes adatbázisok létrehozásához,

Részletesebben

Informatika-érettségi_emelt 11.-12. évfolyam Informatika

Informatika-érettségi_emelt 11.-12. évfolyam Informatika 11. évfolyam A tanév célja a középszintű érettségire való felkészítés, az emelt szintű érettségire való felkészülésnek a megalapozása. A középszintű érettségi elősegíti az eligazodást és a munkába állást

Részletesebben

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA 2.Szoftverfejlesztés 2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA Szoftverfejlesztés: magában foglalja mindazon elveket, módszereket és eszközöket, amelyek célja a programok megbízható és hatékony elkészítésének

Részletesebben

Általános Szerződési Feltételek

Általános Szerződési Feltételek Általános Szerződési Feltételek október 8 2013 Az ASP-Netkom Kereskedelmi és Szolgáltató Korlátolt Felelősségű Társaság Internet Hozzáférési Szolgáltatásra vonatkozó Általános Szerződési Feltételei Hatályos:

Részletesebben

Divar 2 - Vezérlőközpont. Kezelési útmutató

Divar 2 - Vezérlőközpont. Kezelési útmutató Divar 2 - Vezérlőközpont HU Kezelési útmutató Divar Vezérlőközpont Kezelési kézikönyv HU 1 Magyar Divar Többfunkciós digitális videofelvevő Divar Vezérlőközpont Kezelési útmutató Tartalom Első lépések.............................................3

Részletesebben

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat 2. Digitális óra 28 OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK 2.1 A feladat Ebben a fejezetben egy viszonylag egyszerő problémára alkalmazva tekintjük át az OO tervezés modellezési technikáit. A feladat

Részletesebben

Tartalomjegyzék. MOK Ügyeletnyilvántartó rendszer használati kézikönyve v2.1

Tartalomjegyzék. MOK Ügyeletnyilvántartó rendszer használati kézikönyve v2.1 Tartalomjegyzék A keret-rendszerről általánosságban...2 Technológiák... 2 Elérést biztosító technológiák...2 Bejelentkezés... 2 Használat helye... 3 Használat (bejelentkezés után)...3 Jelszavak... 4 Hiba

Részletesebben

On-Line Preferansz Követelményspecifikáció

On-Line Preferansz Követelményspecifikáció On-Line Preferansz Követelményspecifikáció Verzió: 10 Dátum: 20080331 Készítette Név: Bálint Zsolt, Bartis Csaba Jóváhagyta Név: Dátum: 20080331 Dátum: Aláírás: Aláírás: Dátum: 20080331 Kovetelmeny Specifikaciodoc

Részletesebben

Programozás 1. 2.gyakorlat

Programozás 1. 2.gyakorlat Programozás 1. 2.gyakorlat Ismétlés Objektum: Egy a való világból vett elem (ami lehet elvonatkoztatott is) számítógépes ábrázolása. Pl: Kurzus, Személy stb Minden Objektum rendelkezik: Állapottal Viselkedéssel

Részletesebben

SuliXerver 3.5 TELEPÍTÉSE GYORSAN ÉS EGYSZERŰEN

SuliXerver 3.5 TELEPÍTÉSE GYORSAN ÉS EGYSZERŰEN SuliXerver 3.5 TELEPÍTÉSE GYORSAN ÉS EGYSZERŰEN Telepítési útmutató türelmetleneknek A kézikönyv elkészítésekor az ULX Kft. a lehető legnayobb gondossággal és körültekintéssel járt el, ennek ellenére nem

Részletesebben

14.2. OpenGL 3D: Mozgás a modellben

14.2. OpenGL 3D: Mozgás a modellben 14. Fotórealisztikus megjelenítés 1019 14.2. OpenGL 3D: Mozgás a modellben A program az OpenGL technika alkalmazásával gyors lehetőséget biztosít a modellben való mozgásra. A mozgás mellett lehetőség van

Részletesebben

Ismeretanyag Záróvizsgára való felkészüléshez

Ismeretanyag Záróvizsgára való felkészüléshez Ismeretanyag Záróvizsgára való felkészüléshez 1. Információmenedzsment az információmenedzsment értelmezése, feladatok különböző megközelítésekben informatikai szerepek, informatikai szervezet, kapcsolat

Részletesebben

ORPHEUS. Felhasználói kézikönyv. C o p y r i g h t : V a r g a B a l á z s 2 0 1 2 Oldal: 1

ORPHEUS. Felhasználói kézikönyv. C o p y r i g h t : V a r g a B a l á z s 2 0 1 2 Oldal: 1 ORPHEUS Felhasználói kézikönyv C o p y r i g h t : V a r g a B a l á z s 2 0 1 2 Oldal: 1 Tartalomjegyzék Rendszerkövetelmények... 5 Telepítés... 6 A program célja... 10 A program indítása... 10 Rendszeradminisztráció...

Részletesebben

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. TARTALOM 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery

Részletesebben

"MD 3060" digitális hőmérő

MD 3060 digitális hőmérő Megrend. szám: 100722 Conrad Szaküzlet 1067 Budapest, Teréz krt. 23. Tel: (061) 302-3588 Conrad Vevőszolgálat 1124 Budapest, Jagelló út 30. Tel: (061) 319-0250 "MD 3060" digitális hőmérő A modern mikroprocesszoros

Részletesebben

Logoprint 500. Sajátosságok határérték figyelés eseményjelzés terjedelmes szövegkijelzés statisztika (jelentés) min- / max- és középértékkel

Logoprint 500. Sajátosságok határérték figyelés eseményjelzés terjedelmes szövegkijelzés statisztika (jelentés) min- / max- és középértékkel Meß- und Regelgeräte GmbH A-1232 Wien, Pfarrgasse 48 Magyarországi Kereskedelmi Képviselet Telefon: 00-43-1 / 61-061-0 H-1147 Budapest Öv u. 143. Fax: 00-43-1 / 61-061-59 Telefon/fax: 00-36-1 / 467-0835,

Részletesebben

Access 2013 Lekérdezéstől testre szabásig TARTALOM 1

Access 2013 Lekérdezéstől testre szabásig TARTALOM 1 TARTALOM 1 2 TARTALOM Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Pétery Tamás Szerkesztő:

Részletesebben

Procontrol Clienter ügyfélhívó rendszer általános leírása

Procontrol Clienter ügyfélhívó rendszer általános leírása Procontrol Clienter ügyfélhívó rendszer általános leírása Létrehozás dátuma: 2009.01.26 11:53 1. oldal, összesen: 15 Tartalomjegyzék Tartalomjegyzék... 2 Bevezetés... 3 Rendszerelemek... 3 A rendszer működési

Részletesebben

MUNKAANYAG. Angyal Krisztián. Szövegszerkesztés. A követelménymodul megnevezése: Korszerű munkaszervezés

MUNKAANYAG. Angyal Krisztián. Szövegszerkesztés. A követelménymodul megnevezése: Korszerű munkaszervezés Angyal Krisztián Szövegszerkesztés A követelménymodul megnevezése: Korszerű munkaszervezés A követelménymodul száma: 1180-06 A tartalomelem azonosító száma és célcsoportja: SzT-004-55 SZÖVEGSZERKESZTÉS

Részletesebben

Technikai segédlet a Domus elektronikus pályázati rendszer felhasználói részére

Technikai segédlet a Domus elektronikus pályázati rendszer felhasználói részére Technikai segédlet a Domus elektronikus pályázati rendszer felhasználói részére A Domus szülőföldi ösztöndíj pályázat benyújtása senior pályázat esetén a https://palyazat.mta.hu/domus_szulofoldi_senior_2016,

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok 1 Objektum Definíció Az

Részletesebben

Bártfai Barnabás. Office 2010

Bártfai Barnabás. Office 2010 Bártfai Barnabás Office 2010 BBS-INFO Kiadó, 2011. 4 Office 2010 Bártfai Barnabás, 2011. Minden jog fenntartva! A könyv vagy annak oldalainak másolása, sokszorosítása csak a szerző írásbeli hozzájárulásával

Részletesebben

A B-NET TEAM Kft. ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEI ( ÁSZF ) ELEKTRONIKUS HÍRKÖZLÉSI SZOLGÁLTATÁSOK IGÉNYBEVÉTELÉRE. (egyéni előfizetők részére)

A B-NET TEAM Kft. ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEI ( ÁSZF ) ELEKTRONIKUS HÍRKÖZLÉSI SZOLGÁLTATÁSOK IGÉNYBEVÉTELÉRE. (egyéni előfizetők részére) A B-NET TEAM Kft. ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEI ( ÁSZF ) ELEKTRONIKUS HÍRKÖZLÉSI SZOLGÁLTATÁSOK IGÉNYBEVÉTELÉRE (egyéni előfizetők részére) napjától Készült: 2006. November 21. Utolsó módosítás: 2015.

Részletesebben

CellCom. Szoftver leírás

CellCom. Szoftver leírás CellCom Szoftver leírás A vezérlő szoftver bemutatása 2 www.lenyo.hu Tartalom LCC vezérlőszoftver 5 Rendszerkövetelmények 5 Telepítés 5 Indítás 7 Eltávolítás, újratelepítés és javítás 8 Kulcskezelés 8

Részletesebben

prolan rcm Felhasználói kézikönyv

prolan rcm Felhasználói kézikönyv prolan rcm Felhasználói kézikönyv Tartalomjegyzék A készülékről általában................... 4 Felépítés, tartozékok.....................5 Menürendszer.........................6 Hosszúhullámú rádió adó-vevő..............8

Részletesebben

webmanko.hu videó alapú távoktatási és tesztrendszer

webmanko.hu videó alapú távoktatási és tesztrendszer webmanko.hu videó alapú távoktatási és tesztrendszer A Webmankó távoktatási rendszer lehetőséget ad az egyéni kompetenciák bővítésére, mindezt mérhető módon teszi. Ennek első lépése a kompetencia-felmérés.

Részletesebben

2. Követelmény, projekt, funkcionalitás

2. Követelmény, projekt, funkcionalitás 2. Követelmény, projekt, funkcionalitás 39 Kapufa-Soft Konzulens: Hartung István Csapattagok Deák Endre BNOX1H profendre@gmail.com Diószegi Tamás T08LBX diotomi@gmail.com Mácsai Gábor GQ1EGW matcha8@gmail.com

Részletesebben

!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7

!! KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7 !!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7 #$%#&'( 1. Bevezet... 4 1.1. Feladatkiírás:... 4 1.2. Specifikáció... 4 2. A kidolgozás munkafázisai, szakaszai... 6 3. Fejlesztési irányelvek...

Részletesebben

(11) Lajstromszám: E 004 039 (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

(11) Lajstromszám: E 004 039 (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA !HU0000039T2! (19) HU (11) Lajstromszám: E 004 039 (13) T2 MAGYAR KÖZTÁRSASÁG Magyar Szabadalmi Hivatal (21) Magyar ügyszám: E 03 74228 (22) A bejelentés napja: 03. 02. 18. (96) Az európai bejelentés bejelentési

Részletesebben

Tavaszi szél vizet áraszt - projektterv

Tavaszi szél vizet áraszt - projektterv Tavaszi szél vizet áraszt - projektterv Készítette Tóth Lászlóné Összefoglalás A tanulók csoportmunkában feltérképezik hazánk vízkészleteit és erről digitális és hagyományos térképeket készítenek. A csoportok

Részletesebben

MUNKAANYAG. Földy Erika. A szakmai önéletrajztól a művészeti kritikáig (Az. alkotói tevékenység komplex megjelenítése,

MUNKAANYAG. Földy Erika. A szakmai önéletrajztól a művészeti kritikáig (Az. alkotói tevékenység komplex megjelenítése, Földy Erika A szakmai önéletrajztól a művészeti kritikáig (Az alkotói tevékenység komplex megjelenítése, önértékelés, és szakmai kommunikáció) A követelménymodul megnevezése: Művészetelméleti alapozás

Részletesebben

Prezentáció használata

Prezentáció használata Prezentáció használata A számítógép alkalmazásának egyik lehetséges területe, amikor a számítógépet mint segédeszközt hívjuk segítségül, annak érdekében, hogy előadásunk vagy ismertetőnk során elhangzottakat

Részletesebben

ELŐADÁS ÁTTEKINTÉSE 6. ea.: Projekttervezés III.

ELŐADÁS ÁTTEKINTÉSE 6. ea.: Projekttervezés III. ELŐADÁS ÁTTEKINTÉSE 6. ea.: Projekttervezés III. Tevékenységek tervezése Időtervezés: Gantt diagramm Hálótervezés: Kritikus út Tartalék idő Példa ismertetése TEVÉKENYSÉGEK TERVEZÉSE Fel kell vázolni egy

Részletesebben

Kiegészítő melléklet (elektronikus beszámoló)

Kiegészítő melléklet (elektronikus beszámoló) Felhasználói dokumentáció a Kiegészítő melléklet (elektronikus beszámoló) programhoz Forgalmazó: FORINT-Soft Kft. 6500 Baja, Roosevelt tér 1. Tel: 79/424-772, 79/523-600 Fax: 79/420-857 E-mail: forintsoft@forintsoft.hu

Részletesebben

Műszerek tulajdonságai

Műszerek tulajdonságai Műszerek tulajdonságai 1 Kiválasztási szempontok Műszerek kiválasztásának általános szempontjai mérendő paraméter alkalmazható mérési elv mérendő érték, mérési tartomány környezeti tényezők érzékelő mérete

Részletesebben

AIX 6.1. IBM Systems Director Console for AIX

AIX 6.1. IBM Systems Director Console for AIX AIX 6.1 IBM Systems Director Console for AIX AIX 6.1 IBM Systems Director Console for AIX Megjegyzés Az információk és a tárgyalt termék használatba vétele előtt olvassa el a Nyilatkozatok oldalszám:

Részletesebben

Felhasználói kézikönyv. Angol szókincsfejlesztő rendszer

Felhasználói kézikönyv. Angol szókincsfejlesztő rendszer Felhasználói kézikönyv Angol szókincsfejlesztő rendszer 2016 Üdvözlet a fejlesztőtől Sok-sok évvel ezelőtt, amikor angolul tanultam, nagy segítséget jelentett volna számomra egy számítógépes szókincsfejlesztő

Részletesebben

Jelformáló áramkörök vizsgálata Billenő áramkörök vizsgálata (Időkeret: 5óra) Név:

Jelformáló áramkörök vizsgálata Billenő áramkörök vizsgálata (Időkeret: 5óra) Név: Jelformáló áramkörök vizsgálata Billenő áramkörök vizsgálata (Időkeret: 5óra) Név: Előzetes kérdések: Írja az áramköri jelhez a dióda és a tranzisztor lábainak elnevezését! Kell ügyelni a nf kapacitású

Részletesebben

Mérés labor 2 AVR házi feladatok

Mérés labor 2 AVR házi feladatok Page 1 of 6 Mérés labor 2 AVR házi feladatok Jelzőlámpák, fényjátékok Forgalmi jelzőlámpa fényérzékelő éjszakai üzemmóddal A két LED oszlop egy-egy jelzőlámpája a kereszteződés két irányának tekintendő

Részletesebben

RAPTOR - primer áramnyomató rendszer

RAPTOR - primer áramnyomató rendszer Sokfunkciós készülék A RAPTOR egy fejlett vizsgálórendszer, melyet pontosan azoknak a primer oldali vizsgálatoknak az elvégzésére fejlesztettek ki, melyek az alállomások üzembehelyezése és karbantartása

Részletesebben

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére Az Informatika szigorlat alapvetően az IR-fejlesztés, valamint az OO-fejlesztés c. tantárgyi blokkok, valamint az

Részletesebben

03. AZ F-SECURE POLICY MANAGER TELEPÍTÉSI LÉPÉSEI

03. AZ F-SECURE POLICY MANAGER TELEPÍTÉSI LÉPÉSEI 03. AZ F-SECURE POLICY MANAGER TELEPÍTÉSI LÉPÉSEI A.) Előkészítő információk A Policy Manager telepítésének előfeltétele, hogy a kívánt gépen a központi felügyelet és a végpontvédelem telepítő állományai

Részletesebben

Dr. Pétery Kristóf: Excel 2003 magyar nyelvű változat

Dr. Pétery Kristóf: Excel 2003 magyar nyelvű változat 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery István

Részletesebben

Közzététel és Adatszolgáltatás IT tudatosság projekt

Közzététel és Adatszolgáltatás IT tudatosság projekt Közzététel és Adatszolgáltatás IT tudatosság projekt Felhasználói kézikönyv v3.0 2009. 03. 03. Tartalomjegyzék 1 BEVEZETÉS... 4 2 ÁLTALÁNOS INFORMÁCIÓK... 4 2.1 RENDSZER ÁTTEKINTÉSE, FELHASZNÁLÓK, ALAPFOGALMAK...

Részletesebben

1.1 DEVIZÁS SZÁMLA KIEGYENLÍTÉSÉHEZ KAPCSOLÓDÓ AUTOMATIKUS ÁRFOLYAM KÜLÖNBÖZET KÖNYVELÉS

1.1 DEVIZÁS SZÁMLA KIEGYENLÍTÉSÉHEZ KAPCSOLÓDÓ AUTOMATIKUS ÁRFOLYAM KÜLÖNBÖZET KÖNYVELÉS HÍREK 2016.06.01. EOS FONTOSABB PROGRAM-MÓDOSÍTÁSOK 1. KIEMELT FEJLESZTÉSEK 1.1 DEVIZÁS SZÁMLA KIEGYENLÍTÉSÉHEZ KAPCSOLÓDÓ AUTOMATIKUS ÁRFOLYAM KÜLÖNBÖZET KÖNYVELÉS Költségvetési könyvelést folytató ügyfeleink

Részletesebben

Felhasználói kézikönyv

Felhasználói kézikönyv NEPTUN-@Napló Felhasználói kézikönyv NEPTUN-@Napló Elektronikus Ellenőrzőkönyv Tartalomjegyzék Tartalomjegyzék Tartalomjegyzék... 2 Az e-ellenőrzőkönyv általános áttekintése... 4 WEB alkalmazások kezelése...

Részletesebben

ELSZÁMOLÁSI FELTÉTELEK, TUDNIVALÓK

ELSZÁMOLÁSI FELTÉTELEK, TUDNIVALÓK 2. sz. melléklet ELSZÁMOLÁSI FELTÉTELEK, TUDNIVALÓK a Nemzeti Foglalkoztatási Alap képzési alaprész 2012. évi decentralizált keretéből finanszírozott beruházási támogatások felhasználásáról készített elszámolásokhoz,

Részletesebben

Számítógépvezérelt rendszerek mérnöki tervezése 2006.05.19.

Számítógépvezérelt rendszerek mérnöki tervezése 2006.05.19. Számítógépvezérelt rendszerek mérnöki tervezése 2006.05.19. 1 Bevezetés Az irányított rendszerek típusa és bonyolultsága különböző bizonyos eszközöket irányítunk másokat csak felügyelünk A lejátszódó fizikai

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika XVII. rész A grafikai modellezés A modellezés A generatív számítógépes grafikában és a képfeldolgozás során nem a valódi objektumokat (valóságbeli tárgyakat), hanem azok egy modelljét

Részletesebben

Aronic Road Útnyilvántartó program

Aronic Road Útnyilvántartó program 6085 Fülöpszállás, Kiskunság tér 4. Internet: www.cin.hu E-mail: software@cin.hu Tel: 78/435-081, 30/9-573-673 Aronic Road útnyilvántartó program V2.000 Szoftverdokumentáció Önnek is jár egy jó szoftver!

Részletesebben

7. Kezelőszervek. RESET (visszaállítás)(- )

7. Kezelőszervek. RESET (visszaállítás)(- ) Ne hagyja a csomagolóanyagot szanaszét heverni, a gyerekek számára veszélyes játékszerré válhatnak. Bánjon óvatosan a készülékkel, lökés, ütés, vagy már kis magasságból való leejtés következtében is megsérülhet.

Részletesebben

INFORMATIKA. 6 évfolyamos osztály

INFORMATIKA. 6 évfolyamos osztály INFORMATIKA Az informatika tantárgy ismeretkörei, fejlesztési területei hozzájárulnak ahhoz, hogy a tanuló az információs társadalom aktív tagjává válhasson. Az informatikai eszközök használata olyan eszköztudást

Részletesebben

Ki miben mindentudós? - hivatalos versenyszabályzat -

Ki miben mindentudós? - hivatalos versenyszabályzat - Ki miben mindentudós? - hivatalos versenyszabályzat - A vetélkedő szervezője: A Ki miben mindentudós? országos középiskolai vetélkedősorozat (továbbiakban Vetélkedő) szervezője Mindentudás Egyeteme Kht.

Részletesebben

Akkumulátor teszter és adatgyűjtő 24V/25A

Akkumulátor teszter és adatgyűjtő 24V/25A Processzoros 24V/25A Kezelési utasítás , amely alkalmas 24V-os akkumulátor felügyelet nélküli tesztelésére, kapacitásmérésre, kiegészítő eszközökkel (akkumulátor töltő, elektronikus szulfátmentesítő) akkumulátor

Részletesebben

Informatika. Középszintű érettségi vizsga témakörök. 1. Információs társadalom. 2. Informatikai alapismeretek hardver

Informatika. Középszintű érettségi vizsga témakörök. 1. Információs társadalom. 2. Informatikai alapismeretek hardver Informatika Középszintű érettségi vizsga témakörök 1. Információs társadalom 1.1. A kommunikáció 1.1.1. A kommunikáció általános modellje Ismerje a kommunikáció modelljét és tudjon gyakorlati példákat

Részletesebben

easyaid GSM Segélyhívó

easyaid GSM Segélyhívó easyaid GSM Segélyhívó TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ v2.04.0090 és újabb modulverziókhoz Dokumentumverzió: 1.31 2013.08.09 Tartalomjegyzék 1 Az easyaid Segélyhívó rendszer alapvető funkciói... 3 1.1

Részletesebben

DT920 Fordulatszámmérő

DT920 Fordulatszámmérő DOC N : DT920 No EEx-62 DT920 Fordulatszámmérő Felhasználói leírás Gyártó: DATCON Ipari Elektronikai Kft 1148 Budapest, Fogarasi út 5 27 ép Tel: 460-1000, Fax: 460-1001 2 Tartalomjegyzék 1 Rendeltetés4

Részletesebben

NOD32 Antivirus 3.0. Felhasználói útmutató. Beépített összetevők: ESET NOD32 Antivirus ESET NOD32 Antispyware. we protect your digital worlds

NOD32 Antivirus 3.0. Felhasználói útmutató. Beépített összetevők: ESET NOD32 Antivirus ESET NOD32 Antispyware. we protect your digital worlds NOD32 Antivirus 3.0 Beépített összetevők: ESET NOD32 Antivirus ESET NOD32 Antispyware Felhasználói útmutató we protect your digital worlds tartalomjegyzék 1. ESET NOD32 Antivirus 3.0...4 1.1 Újdonságok...

Részletesebben

Dr. Pétery Kristóf: Excel 2007 feladatok és megoldások 2.

Dr. Pétery Kristóf: Excel 2007 feladatok és megoldások 2. 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery István

Részletesebben

Flatpack áramellátó rendszer család. Flatpack MPSU rendszer

Flatpack áramellátó rendszer család. Flatpack MPSU rendszer Flatpack áramellátó rendszer család Az innovatív Flatpack egyenirányító modulok felhasználásával 700 Wattól 60 kw-ig lehet könnyedén kialakítani a felhasználói igényeknek megfelelő gazdaságos rendszert.

Részletesebben

Szövegszerkesztés Verzió: 0.051

Szövegszerkesztés Verzió: 0.051 Verzió: 0.051 1 Tartalomjegyzék A Word 2003 munkakörnyezet...9 Word 2003 program megnyitása...9 A Word 2003 képernyő...9 Program bezárása:...11 Az eszköztár...12 Környezetfüggő eszköztár...13 Fájl menü...14

Részletesebben

Techtrading Műszaki Fejlesztő és Kereskedelmi Kft.

Techtrading Műszaki Fejlesztő és Kereskedelmi Kft. AF 200 GPS DGPS TÉRINFORMATIKAI ADATGYŰJTŐ ÉS FELMÉRŐ RENDSZER 2 Bevezetés A Techtrading Kft. kifejlesztett egy olyan felhasználóbarát új térinformatikai és adatgyűjtő rendszert, amely az élet számos területén

Részletesebben

ORSZÁGOS KOMPETENCIAMÉRÉS 2009 ÚTMUTATÓ. A 4. ÉVFOLYAM telephelyi koordinátorainak és felmérésvezetőinek

ORSZÁGOS KOMPETENCIAMÉRÉS 2009 ÚTMUTATÓ. A 4. ÉVFOLYAM telephelyi koordinátorainak és felmérésvezetőinek Oktatási Hivatal ORSZÁGOS KOMPETENCIAMÉRÉS 2009 ÚTMUTATÓ A 4. ÉVFOLYAM telephelyi koordinátorainak és felmérésvezetőinek 2009-ben 3-féle Útmutató készült a telephelyi koordinátorok és felmérésvezetők részére:

Részletesebben

Dr. Pétery Kristóf: AutoCAD LT 2007 Fóliák, tulajdonságok

Dr. Pétery Kristóf: AutoCAD LT 2007 Fóliák, tulajdonságok 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery István

Részletesebben

Tartalomjegyzék 5 TARTALOMJEGYZÉK

Tartalomjegyzék 5 TARTALOMJEGYZÉK Tartalomjegyzék 5 TARTALOMJEGYZÉK Bevezető... 13 1. Általános tudnivalók... 14 1.1. Az operációs rendszer... 14 1.2. Tudnivalók a Windows-ról... 15 1.2.1. Honnan kapta nevét a Windows?... 15 1.2.2. A Windows,

Részletesebben

TSZA-04/V. Rendszerismertető: Teljesítmény szabályzó automatika / vill

TSZA-04/V. Rendszerismertető: Teljesítmény szabályzó automatika / vill TSZA-04/V Teljesítmény szabályzó automatika / vill Rendszerismertető: 1. A TSZA-04/V működése...2 2. A TSZA-04/V üzemi paramétereinek jelentése...4 3. A TSZA-04/V programozható paramétereinek jelentése...5

Részletesebben

ESET vírusirtó rendszer

ESET vírusirtó rendszer ESET vírusirtó rendszer Technológia, mely elsőként ismeri fel a veszélyeket: - A proaktív védelem úttörőjeként az ESET olyan szoftvereket fejleszt, amelyek azonnal reagálnak a még ismeretlen károkozókkal

Részletesebben

A tananyag. Témakörök. Optimum. Tudja meghatározni a numerikus, és karakteres adtok tárolt alakját.

A tananyag. Témakörök. Optimum. Tudja meghatározni a numerikus, és karakteres adtok tárolt alakját. Informatika helyi tanterv a PEDELLUS NOVITAS Kiadó Informatika 9-10. tankönyvéhez Szerzők: Kiss Albert,Ludányiné Prém Judit tankönyv+munkafüzet - kerettantervre épülő A tananyag Óraszám: 2 éves tantárgy

Részletesebben

SGS-48 FORGALOMTECHNIKAI SEGÉDLET

SGS-48 FORGALOMTECHNIKAI SEGÉDLET SWARCO TRAFFIC HUNGARIA KFT. Vilati, Signelit együtt. SGS-48 FORGALOMTECHNIKAI SEGÉDLET V 2.0 SWARCO First in Traffic Solution. Tartalomjegyzék 1. Bevezető...1 2. Jelzésképek...1 3. A berendezés működési

Részletesebben

GÁZ-KORLÁT Készülékcsalád

GÁZ-KORLÁT Készülékcsalád Fin-Soft 2002 Szerződésszám:. Termék típusa: GK05M2/ GF-7021-11 GÁZ-KORLÁT Készülékcsalád Gázfogyasztás korlátozó berendezés Kezelési utasítás Budapest 2011.december. Tartalomjegyzék A berendezés célja:...

Részletesebben

Raiffeisen Electra Terminál. Felhasználói kézikönyv

Raiffeisen Electra Terminál. Felhasználói kézikönyv Raiffeisen Electra Terminál Felhasználói kézikönyv Tartalomjegyzék 1 Bevezetés... 4 2 Adatbiztonság, adatvédelem... 4 3 Az Electra ügyfélprogram hardver/szoftver feltételei... 5 4 Könyvtárszerkezet...

Részletesebben