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 Komlósy Zsolt G3EA36 komlosy@gmail.com 2010-02-14 1
2.1 Követelmény definíció 2.1.1 A program célja A fejlesztendő program egy játék, amelyben egy bankrabló autóval kell eljutni a banktól a rejtekhelyig, ügyelve a többi autóra, melyekkel nem lehet ütközni, és a rendőrre, amellyel pedig nem szabad találkozni. A csapat elsődleges célja a specifikációban foglaltak maximális kielégítése úgy, hogy a kész program használata valós játékélményt nyújt. Emellett cél természetesen az is, hogy a fejlesztők elsajátítsák a csapatmunkában való együttműködés fogásait, a szervezéssel, tervezéssel, dokumentálással kapcsolatos irányelveket, és ezeket a gyakorlatba átültessék. 2.1.2 Felhasználói felület, rendszerkövetelmények A kész program grafikus felülettel rendelkezik, billentyűzettel és egérrel irányítható. A program futtatásához szükséges követelményeket a BME HSZK 1 számítógépeihez igazítjuk, azaz szükséges a Java Runtime Environment (JRE) legalább 1.5.0-s verziója, 64MB memória, valamint 98 MB szabad lemezterület. 2.1.3 A fejlesztéssel kapcsolatos követelmények, elvek, célok Határidők betartása Egy nagyon lényeges szempont, hogy a kitűzött határidőket betartsuk, a minőségi munka elkészítése mellett a megrendelő számára ez az egyik legfontosabb tényező. Struktúra, továbbfejleszthetőség Egy olyan modell, amely jól körülhatárolható, egymástól független részekre van osztva, a későbbiekben könnyen módosítható, így az elkészült szoftver a későbbiekben továbbfejleszthető. A fejlesztők célja egy ilyen modell létrehozása. Jól dokumentáltság A dokumentáció nélkülözhetetlen eszköze a csapatmunkának. Célunk, hogy az általunk létrehozott, a projekthez kapcsolódó anyag (forráskód, diagram, szöveg) egységes, szép kinézetet mutasson. 1 http://www.hszk.bme.hu/tajekoztato.html#pc - BME Hallgatói Számítógép Központ 2
2.2 Projekt terv 2.2.1 A felhasznált fejlesztőeszközök A csapat a NetBeans 2 integrált fejlesztői környezet 6.8-as kiadását választotta, legfőképp az általa nyújtott számos szolgáltatás miatt (kódírás, fordítás, tesztelés, hibakeresés, stb.). Emellett található benne UML szerkesztő, mely tud kódot is generálni. Továbbá felhasználásra kerül a StarUML 3 szerkesztő program, mely szintén képes programkódot generálni, ezzel könnyítve a fejlesztőcsapat munkáját, ám a NetBeans beépített szerkesztőjénél jóval több diagram szerkesztésére alkalmas. A dokumentáció a Microsoft Office Word, és az Adobe Acrobat 9 Pro program segítségével készül. 2.2.2 A fejlesztőcsapat tagjai, azok feladatkörei Név Komlósy Zsolt Deák Endre Tibor Diószegi Tamás Mácsai Gábor Feladatok csapatvezetés, kódírás, dokumentáció kódírás, tesztelés tesztelés, dokumentáció diagramszerkesztés, dokumentáció 2.2.3 Szervezési struktúra A csapat négy tagból áll. A csapatalakítás legfőbb szempontja az volt, hogy minden feladatkör lefedésre kerüljön. A feladat szempontjából a tudásunk eltérő, mindenki másmás területen dolgozik hatékonyan. A feladatok szétosztását e tulajdonságok alapján tesszük meg. A részfeladatokat előre megbeszéljük, ilyenkor ügyelünk arra, hogy az összes részfeladat kiosztása megtörténjen, valamint minden csapattag a feladat megoldásában nagyjából egyenlő mértékben vegye ki a részét, így segítve a határidők betartását. Egymás feladatrészeit ellenőrizzük, ha szükséges, akkor javaslatot teszünk annak módosítására. A fejlesztés hatékonysága és zökkenőmentessége miatt a kommunikáció fontossága alapvető. Ehhez a következő eszközöket alkalmazzuk: MSN: Felvettük egymást a Microsoft Messenger programban, ahol a tagok nagy százalékban elérhetőek. Szükség esetén gyorsan, egymástól is segítséget tudunk kérni kisebb problémák megoldásában. A program segítségével konferenciabeszélgetéseket is tarthatunk az Interneten keresztül. 2 http://netbeans.org/community/releases/68/ 3 http://staruml.sourceforge.net/en/ 3
Wikispaces 4 : A csapat számára létrehoztunk egy oldalt a Wikispaces-en. A feladat során keletkező anyagok itt együtt megtalálhatóak. Mindig elérhető a fejlesztések, dokumentációk, részfeladatok legfrissebb változata. E-mail, telefon: A csapat tagjai szükség esetén e-mail-en és telefonon keresztül is elérhetőek. Bizonyos feladatok közös jelenlétet igényelnek, ezért alkalmanként megbeszéléseket, találkozókat tartunk. 2.2.4 Fejlesztési ütemterv A program fejlesztésének három fő lépcsőfoka van: Szkeleton: A szkeleton szó vázat jelent. A cél, hogy a dinamikus és az objektum modell helyes legyen. Ennek eredményessége meghatározza a projekt további kimenetelét. Ha ezek elkészültek, akkor a fejlesztés szempontjából sikeresen leraktuk az alapokat. Prototípus: A már szinte teljes változat, melyből a grafikus felület elemei még hiányoznak. Tökéletesen megfelel az objektumok, rutinok, függvények szemantikai helyességének vizsgálatára, tesztelésére. Grafikus változat: A program teljes változata. Voltaképpen a prototípus grafikus változata, esetleg ki mértékben továbbfejlesztve. 4 http://kapufa.wikispaces.com - a projekt elérhetősége 4
2.2.5 Határidők február 10. február 16. február 23. március 02. március 09. március 16. március 23. március 30. április 06. április 13. április 20. április 27. május 04. május 11. A csapatok regisztrációja Követelmény, projekt, funkcionalitás beadás Analízis modell kidolgozása 1. beadás Analízis modell kidolgozása 2. beadás Szkeleton tervezése beadás Szkeleton beadás Prototípus koncepciója beadás Részletes tervek beadás Prototípus beadás Grafikus felület specifikációja beadás Grafikus változat beadás Összefoglalás beadás 2.2.6 Átadás A dokumentációt nyomtatott formában hétről-hétre a konzulensnek kell átadni, a határidőket betartva. A projekt állását a konzulens ellenőrizheti. 5
2.3 Feladatleírás Verkehrsmeldungen am Uml békés kisvárosát a város egyetlen bankjának riasztója veri fel egy reggelen: bankrablás történt. A rablók az épületet elhagyva azonnal kocsijukba szállnak, hogy a titkos rejtekhelyüket elérve a zsákmánnyal együtt örökre eltűnhessenek a Karib-tenger egy barátságos szigetén. A játékos a bankrablók menekülő autójának irányítását kapja feladatául, képzett és tapasztalt sofőrként a város mit sem sejtő polgárai között kell önmagát és a kocsiban ülő bűntársait épségben eljuttatnia a banktól a titkos rejtekhelyig. A menekülést a város lelkiismeretes rendőrjárőre nehezíti, aki bár a titkos rejtekhely hollétét nem ismeri, a bankrablás tényéről azonnal értesül, és egy pillanatig sem fog tétovázni, ha a menekülő autót egyszer csak lőtávolságon belül éri. Természetesen már a játék első pillanatától fogva forgalom is van az utakon, újabb lehetséges akadályokat okozva. Verkehrsmeldungen am Uml nagyon rendezett úthálózattal rendelkezik, a négyszög alapú háztömbök között futó utakból mindegyik egyirányú, a nagyobb forgalmú vonalakon bizonyos esetekben két sáv is a közlekedők rendelkezésére áll. A forgalom tempóját és a kereszteződések balesetmentes vezérlését stop táblák és közlekedési jelzőlámpák segítik. A város gyalogosai számára léteznek természetesen járdák, de ezek olyan keskenyek és magas padkájúak, hogy egy autó akkor sem tudna rájuk felhajtani, ha szeretne. Szerencsére a város összes lakója végtelenül rendszerető ember és kiváló sofőr, hosszú évek óta nem fordult elő kihágás, útról letérés, vagy még koccanás sem a városban. Az utakra vonatkozó szabályokat mindenki szigorúan betartja, és egymás épségére is nagyon figyelnek: ha egy-egy lassabban haladó jármű néha meg is akasztja a forgalmat, a mögötte haladók csendben lelassítanak, besorolnak mögéjük dudálás vagy előzési kísérlet nélkül, míg az előttük haladó autó más útra nem kanyarodik, vagy maguk nem fordulnak el mögötte saját útitervüket követve. A város polgárai mit sem sejtenek arról, hogy a városban vérre menő hajsza folyik, békésen folytatják útjukat a játékos számára ismeretlen úticéljuk felé (így a játékosnak semmilyen lehetősége nincs, hogy megjósolja, egy adott autó egy adott kereszteződésben melyik utat fogja választani). A szomszédos városokba is tart, illetve onnan is érkezik forgalom a városba, ezek az autók a játéktér szélein folyamatosan lépnek ki a városból, illetve be a városba. A játékosnak menekülés közben természetesen nem szükséges betartania a közlekedési szabályokat (bankrablás után az esetleges szabálysértésekből eredő halmazati büntetés már gyenge motiváció). A rablók autójával behajthatunk az egyirányú utcákba a forgalommal szemben, előzhetünk, megfordulhatunk, vagy többsávos úton sávot is válthatunk gond nélkül, az egyetlen cél a csak a játékos által ismert rejtekhely elérése. A szabályszegésekkel viszont óvatosnak kell lenni, a bankrabláshoz használt autó speciálisan a meneküléshez lett tuningolva, így az ütközéseket egyáltalán nem viseli, már a legkisebb koccanás (akár közlekedő civillel, járdaszegéllyel vagy háztömbbel) is az autó használhatatlanná válását, ez által pedig a játék azonnali elvesztését eredményezi. Ugyancsak a játék végét jelenti, amennyiben a minket kereső és üldöző rendőr lőtávolságán belülre kerülünk, a rend őre azonnal kilyuggatja mind az autónkat, mind a benne ülő személyeket. A játék során a város területét sem szabad elhagyni, ez szintén a játék elvesztését jelenti, ugyanis a városon kívül a megyei rendőrség gyorsreagálású erői már útzárakat helyeztek el, ahol közúti ellenőrzés után csak a civileket engedik be vagy ki. Amennyiben a játékos eljutott az irányított járművel a rejtekhelyre, sikeresen teljesítette a játékot. 6
2.4 Szótár (több fogalom vesszővel való felsorolása a bal oldalon a fogalmak egyenértékűségét jelzi.) Autó, kocsi Baleset, koccanás Bank Bankrablók, rablók Civil, polgár Forgalom Háztömb Játékos Kereszteződés Kétsávos út Közlekedési lámpa Lőtávolság Rejtekhely Rendőr, rendőrjárőr Stop tábla Szabály Út, sáv A játék összes járműve autó, a rablók és a rendőrjárőr járműve kivételével mindegyiket civilek vezetik. Kettő vagy több autó közvetlen érintkezése. A civilek egymás között elkerülik, a játékos civillel vagy rendőrrel történő balesete a játék végét jelenti, így elkerülendő. A bankrablók pozíciója a játék indulásakor. A játék kiindulópontjaként szolgáló rablás elkövetői, egyiküket személyesíti meg a játékos, a történet szerint a többi tag is a kocsiban ül, de nincs egyéb szerepük a játékban. A városban mindenki, aki nem a bankrabló vagy rendőr. A város útjain vezetik autóikat. A város útjain, vagy egy adott területen haladó autók összessége. Házak, épületek autók számára átjárhatatlan halmaza, négyszög alaprajzú, a város alapvető építőeleme az utak mellett. A programot irányító személy, a bankrablók autóját irányítja. Kettő vagy több út találkozási pontja, gyakran stop táblával vagy jelzőlámpával. Két, ugyanolyan irányú, közvetlenül egymás mellett haladó út. Tetszőleges út végén (de általában nagyobb kereszteződésekben) elhelyezett lámpa, zöld állapotában szabad utat jelez, piros állapotában megállásra szólít fel. Egy előre meghatározott állandó távolság, amin belül kerülve a rendőr lelövi a menekülő bankrablókat. Egy előre kijelölt speciális útszakasz, a játék célja ennek elérése. Egy speciális autó a városban, aminek bizonyos távolságra való elkerülése a játékos állandó feladatai közé tartozik. Tetszőleges út végén rövid megállásra felszólító tábla. Az utakon való közlekedésre vonatkozó utasítások, a civilek szigorúan betartják őket, míg a bankrablók megszeghetik őket. Egyenes, háztömbhöz képest keskeny terület, amin az autók szabály szerint haladhatnak. Egyirányú, tehát egy adott úton csak 7
egy, előre meghatározott irányban mozoghatnak az autók a szabályok szerint. Város, játéktér A játék színteréül szolgáló háztömbökből, utakból és közlekedési táblákból és lámpákból álló terület. 8
2.5 Essential use-case-ek 2.5.1 Use-case diagram Essential Use-Case diagram 2.5.2 Use-case leírások Use-case neve Rövid leírás Aktorok Játék indítása A játékos új játékot kezd. Betöltődik a pálya kezdőállapota. Játékos Use-case neve Rövid leírás Aktorok Rabló irányítása A játékos a billentyűzet segítségével irányítja a rabló járművének a mozgását. Játékos 9
2.6 Napló Kezdet Időtartam Résztvevők Leírás 2010.02.01 2010.02.07 1 hét Deák, Diószegi, Mácsai, Komlósy 2010.02.09. 19:00 1 óra Deák, Diószegi, Mácsai, Komlósy 2010.02.13. 21:00 2 óra Deák, Diószegi, Mácsai, Komlósy Csapattagok keresése, találkozó megbeszélése. Döntések: találkozó 2010.02.09 19:00-kor Csapat első találkozója. Döntések: Csapatnév választása (Kapufa-soft) és beregisztrálása. Online találkozó (MSN). A megoldandó feladat részleteinek pontosítása. A beadandó dokumentáció feladatainak átbeszélése és felosztása. Wikispace tárhely létrehozása. Döntések: Komlósy: Essetntial Use-Case diagram Diószegi: Feladat részletes leírása és szótár Mácsai: Projekt terv Deák: Követelménydefiníció, végleges formázás 2010.02.13. 23:00 1 óra Deák Tevékenység: Követelménydefiníció kidolgozása 2010.02.13. 23:30 1 óra Komlósy Essential Use-Case diagram megszerkesztése 2010.02.14. 13:00 2 óra Mácsai Tevékenység: projekt terv elkészítése 2010. 02 14. 16:00 3 óra Diószegi Tevékenység: Feladat részletes leírása, szótár elkészítése 2010.02.14. 22:00 2 óra Deák Dokumentum egybeszerkesztése, formázása 10