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 gyémántok megszerzése. A játék világa kétdimenziós, az indián bármerre mozoghat és áshat, ahol föld, vagy már kiásott barlang található. Nem mehet keresztül a keményebb grániton, illetve a sziklákon. A különbség, hogy míg a gránit az egyszerű földet helyettesítheti bizonyos helyeken, a szikla egy különálló tárgy, amely eltolható, alsó alátámasztás hiányában lezuhan, oldalsó alátámasztás hiányában oldalra elgördül, hasonlóan a gyémánthoz. Ha Júz Kéz fejére szikla vagy gyémánt esik, meghal. Előfordulhat az is, hogy olyan helyzetbe kerül, ahonnan a játék nem folytatható, mert a szükséges gyémántokat és az indiánt elzárták egymástól a kövek, vagy a gránit. A barlangban élnek még különböző szörnyek is, ezeket meg lehet ölni, de nem kötelező, ha viszont elkapják az indiánt, meghal. A szörnyek nem képesek ásni. Megölhetők valaminek (gyémánt vagy szikla) ráejtésével, illetve robbantással. Négyféle szörny létezik. Az első ha van elég hely, adott időközönként szaporodik, de csak össze-vissza bolyong. A második üldözi a kincskeresőt, és ha szikla esik rá, gyémánttá alakul. Létezik még egy össze-vissza bolyongó, szikla ráejtés hatására gyémánttá alakuló lény, és egy kincskeresőt üldöző, de a sziklától egyszerűen meghaló lény is. A robbanószer egy gomb megnyomásával elhelyezhető, majd egy másik gombbal felrobbantható. Egyszerre több robbanószer is lehet letéve, ezek egyszerre fognak robbanni, így például nagy számú szörny csalható csapdába. A robbanás mindent elpusztít, ami a hatósugarán belül van. A robbanószernek nem kell alátámasztás, hogy a helyén maradjon. Ha sikerült megszerezni a szükséges gyémántokat, akkor a barlang kijárata kinyílik, ezen belépve lehet tovább haladni a következő pályára, ahol kezdetben robbanószer utánpótlást kaphatunk, az életek viszont nem pótlódnak. Szótár alátámasztás - Tárgyak gördülését, illetve zuhanását megakadályozó dolog, például szikla, föld vagy gránit. ás - Az indián olyan mozgása, melynek során földet távolít el. (a helyén barlang lesz) barlang - Üres terület, ahol minden szabadon mozoghat. bejárat - Az a terület, ahol egy új pályán kezd az indián. esik - Lásd zuhan. élet - Számláló, ami ha eléri a nullát, a játéknak vége. Meghalás hatására csökken. föld - Kiásható terület, csak a szörnyek mozgását akadályozza. Alátámasztást biztosít. gördül - Oldalsó alátámasztás hiányában oldalirányba elmozdul. gránit - Olyan terület, amely csak robbantással ásható ki. gyémánt - Összegyűjtendő fényes tárgy. indián - A szereplő, amit a játékos irányít. Júz Kéz - Vagy a játék neve, vagy az indián. lezuhan - Egy gyémánt vagy szikla, ha nincs alátámasztva, elindul lefelé, és amíg meg nem áll, megöli az útjába kerülő indiánt és szörnyeket. lény - Ellenfelek, különböző képességekkel. kijárat - Az a terület, ahol a pálya teljesítése után továbbmehetünk a következő szintre. kincskereső - Lásd indián. meghal - Ha egy lény hal meg, akkor egyszerűen eltűnik a pályáról, többé nem jelent
veszélyt. Ha a kincskereső, akkor egyel csökken az életek száma, és ismét a bejárattól indul a játék. pálya - A játék egy szakasza. Egymást követik. Ha elfogytak, a játékos nyert. ráesik - Valamit zuhanás közben felülről eltalál. robbanás - A robbanószer körüli adott sugarú körben mindent elpusztító esemény. robbanószer - Robbantani lehet vele, de amíg csak el van helyezve, veszélytelen, minden áthaladhat rajta. Alátámasztást nem igényel és nem is biztosít. szikla - Olyan tárgy, amit tologatni lehet, de átmenni rajta nem. szörny - Lásd lény. Követelmény definíció A program célja, alapvető feladata A program egy oldalnézetből megjelenített barlangban játszódó játék. A cél a megfelelő mennyiségű gyémánt megszerzése, és így a pályák teljesítése. Ezt különböző ellenfelek és lezuhanó sziklák nehezítik. Részletesebb leírás a játék ismertetésénél található. A fejlesztés célja egy olyan játékprogram előállítása, mely működőképes, élvezhetően játszható, és amely minden olyan gépen futtatható, melyen a megfelelő Java futtatókörnyezet található. A fejlesztés során különleges hangsúlyt kap az UML modellező rendszer minél tökéletesebb használata. A fejlesztő környezet A forráskódot Subversion verziókezelőben fogjuk tárolni. Itt csak a.java forrásfile-ok lesznek, az IDE-k különböző projekt file-jai nem, ezért minden csapattag szabadon választhat. A dokumentációt egy, a wikipediához hasonló rendszerben szerkesztjük, majd minimális módosításokkal (tartalom, fedőlap hozzáadása) nyomtatjuk ki. A dokumentáció egyes részeit (mint az osztálydiagram, az egyes osztályok, metódusok és adattagok leírása) a kódból generáljuk a Doxygen és a Code2UML nevű programok segítségével. A további UML ábrákat Netbeans segítségével rajzoljuk meg. Ezekből sem kód nem generálható, sem kódból nem generálhatóak, így bármilyen más programmal is megtehetnénk.ű A használt rendszerek előnye, hogy utólag is látható, hogy ki mely részeken dolgozott, ami nagy segítség a napló elkészítésében. A futtatáshoz szükséges környezet Java Runtime Environment, illetve az a számítógép, mely ezt futtatni képes. (A Sun ajánlásai PC-re: Pentium 66Mhz vagy gyorsabb processzor és 32Mb memória.) A játék használatához grafikus képernyő és egér szükséges. Magának a programnak nem lesz nagy memóriaigénye, de elképzelhető, hogy a grafikus részek miatt meghaladja az Mb-ot. (Ez csak becslés.) A felhasználói felület A játékprogram végső változata grafikus felhasználói felülettel rendelkezik. A programot a felhasználó a billentyűzet segítségével vezérelheti.
Minőségi tényezők Teljesítmény: A cél az, hogy a játék élvezhetően játszható legyen a fentebb meghatározott minimális rendszeren. A grafikus felületnél törekedni fogunk a folyamatos animációk alkalmazására, és ügyelni fogunk a folyamatos játékmenet biztosítására. Újrafelhasználhatóság: A cél az, hogy a grafikus felhasználói felületet a program többi részétől teljesen különválasszuk, így lehetővé téve azt, hogy később a grafikus felület egyszerűen és gyorsan változtatható legyen. Rugalmasság: A rugalmasságot a fejlesztőkörnyezet biztosítja, a játéknak ugyanis minden olyan környezetben futtathatónak kell lennie, melyben létezik megfelelő Java futtatókörnyezet. Felhasználhatóság: A használat különösebb tanítást nem igényel, alapfokú számítástechnikai tudással akár a felhasználói kézikönyv elolvasása nélkül is könnyen játszható. A software minősítése A kifejlesztett software akkor megfelelő, ha minél pontosabban megegyezik a fentebb leírtakkal. Ezt ellenőrizni lehet a játék futtatásával és kipróbálásával, illetve a forráskód és a modell összevetésével. A kibocsátás A program kibocsátása először a forráskóddal együtt a konzulens felé fog történni, valamint hozzáférhető lesz az Interneten is. Project terv A fejlesztői csapat Csapattag neve Feladatköre Ferenczy Szabolcs Széll Tamás Grafikus részek kódja, tesztelés. Kód és ami abból generálható (osztály diagram, osztály/metódus/adattag leírások), főként a nem grafikus részek. Dokumentáció karbantartása, kódrészletek. Életciklus modell A feladat először a program megtervezése, mely a dinamikus- és objektummodelleket foglalja magába. Ha ez készen van, elkezdhető a skeleton implementálása. Ez a lépés már teljesen meghatározott, nem merülhet fel semmilyen komplikáció, ha a modellek megfelelőek voltak. A következő feladat a prototípus elkészítése. A programnak ebben az állapotban könnyen tesztelhetőnek kell lennie, hogy a programozási és funkcionalitási logikai hibák könnyen felismerhetők legyenek. A könnyű tesztelhetőség azt jelenti, hogy a bemenetet és a kimenetet is lehet állományból illetve állományba generálni, hogy ennek kiértékelése is egyszerű legyen. Ha már a prototípus is megfelelő, akkor kezdődhet a grafikus felület megvalósítása. Itt is fontos a
tesztelés és a kiértékelés, mert a jó megjelenés sokat számít a játék élvezhetőségében. Ha ennek kifejlesztése is sikeres, készen van a program első teljes változata. A kötelező feladat csak eddig tart. Ezt a változatot kell leadni a dokumentációval és a forráskóddal együtt. Szervezési struktúra A csapat három emberből áll. A feladat szempontjából a tudásunk nem azonos, mindenki más-más területet érez a magáénak, illetve a feladat eltérő részinek megoldásához van nagyobb kedvünk. Azt a felépítést választottuk, hogy mindenki az érdeklődésének és tudásának legmegfelelőbb részt kapja az egész feladatból. A feladatok szétosztását találkozókon beszéljük meg, ahol az egyéni kívánságok mellett ügyelünk arra, hogy minden feladat kiosztásra kerüljön, valamint a csapattagok az egész feladat megoldásából nagyjából egyenlő mértékben vegyék ki a részüket. A találkozók keretében, mivel a szétosztott feladatok nagy mértékben függnek egymástól, javaslatokat teszünk egymásnak a feladat megoldásának körülményeit és a határidőt illetően. Ezt követően egyikünk (beadásonként változhat, hogy melyikünk) három, közelítőleg egyenlő részre osztja az elvégzendő feladatokat, amelyből először a másik két csapattag választja ki a neki tetsző részt, majd a szétosztást végző tag megkapja a megmaradt részfeladatot. Végül a csapattagok elvégzik a rájuk kiosztott feladatot, ennek során természetesen segíthetnek egymásnak. Hogy a fejlesztés minél hatékonyabb és zökkenőmentesebb legyen, a következő korszerű eszközöket alkalmazzuk: E-mail: Egyes fontos adatokat, dokumentumokat e-mailben küldhetünk el egymásnak. Főként akkor használjuk, ha nem elérhető a teljes csapat MSN-en. MSN: Elsődlegesen az MSN protokollon keresztül tartjuk egymással a kapcsolatot, akár online meetingek is megvalósíthatók vele. Google Code: A Google kiváló szolgáltatása biztosítja a dokumentáció elkészítéséhez a wikit, és a verziókezelő rendszert is. Így mindenki a legfrissebb változatokon dolgozhat. Fejlesztési ütemterv A program fejlesztésének három fő lépcsőfoka van. Ezek a következők: Skeleton: A cél az, hogy mind a dinamikus, mind az objektum modell jól legyen kitalálva. Ha ezek elkészültek, akkor a fejlesztés szempontjából sikeresen leraktuk az alapokat. Prototípus: Ez már szinte a teljes változat, csak a grafikus felület elemei hiányoznak. Ez a változat tökéletesen megfelelő arra, hogy az objektumok, rutinok, függvények szemantikai helyességét vizsgáljuk. Grafikus változat: A program teljes változata. Tulajdonképpen a prototípus a grafikus felülettel kiegészítve, esetleg kismértékben továbbfejlesztve.
Határidők február 3. csapatok regisztrációja 2 február 9. Követelmény, projekt, funkcionalitás - beadás 3 február 26. Analízis modell kidolgozása. - beadás 4 március 5. Analízis modell kidolgozása 2. - beadás 5 6 7 március 2. március 9. március 26. Szkeleton tervezése - beadás Szkeleton - beadás Prototípus koncepciója - beadás 8 április 2. Részletes tervek - beadás 0 3 4 április 6. április 23. május 7. május 4. Prototípus - beadás Grafikus felület specifikációja - beadás Grafikus változat - beadás Összefoglalás - beadás Szükséges dokumentációk Az a dokumentáció, mely a fejlesztés során keletkezik, a program belső működési elvét jeleníti meg, egy esetleges továbbfejlesztésnél nagy előnyt jelent. Ezentúl a felhasználó számára is szükséges egy dokumentáció készítése, a játszhatóság és a könnyű használhatóság érdekében. (Telepítési útmutató, felhasználói leírás.) Ezek a további dokumentumok a fejlesztési dokumentációt ismerő szakembernek semmi újat nem mondanak, az átlagfelhasználótól azonban nem várhatjuk el, hogy kiigazodjon a -ek és a State Chart-ok között. A program a felhasználónak készül, így azt úgy kell közzétenni, ahogy a felhasználó elvárja, hogy a használata bosszúságok helyett minél több örömöt okozzon neki.
Essential use case-ek Diagramok
leírások Új játék Új játék kezdése az első pályától. Újrakezdés Az életek számának szándékos csökkentése eggyel, és újrakezdés a bejáratól. Pálya léptetés Az adott pálya kijáratára mozogva a következő pálya betöltését kezdeményezi. Mozgatás A játékos mozgatja az indiánt, ide tartozik az ásás, a sziklák eltolása és a gyémánt összegyűjtése is, mert ugyanúgy csinálja. Robbanószer elhelyezése Az indián jelenlegi helyén robbanószert tesz le. Robbantás A lerakott robbanószerek felrobbantása.
Napló Dátum Alany Tárgy 2009-02- 7:56-2009-02-5 23:33 2009-02-5 22:28-2009-02-5 22:38 2009-02-7 22:24-2009-02-7 22:54 2009-02-7 22:55-2009-02-7 22:59 2009-02-7 22:56-2009-02-7 23:0 2009-02-7 23:00-2009-02-7 23:0 2009-02-7 23:2-2009-02-7 23:52 2009-02-8 8:37-2009-02-8 9:07 2009-02-8 23:48-2009-02-9 00:8 2009-02-9 00:44-2009-02-9 0:4 Ferenczy Szabolcs,, Széll Tamás Széll Tamás Szervezési struktúra, fejlesztő környezet, adminisztratív és technikai teendők megbeszélése e-mailben és MSN-en. A mintapéldából átvehető részek "megírása". Fejlesztőkörnyezetről szóló rész megírása. A program célja, alapvető feladata rész megírása. Fejlesztőkörnyezetes rész kisebb javítása. Határidők rész megírása. Követelmények leírása és szótár elkészítése. case leírások elkészítése. case diagram elkészítése. Napló elkészítése.