2. Követelmény, projekt, funkcionalitás
Kapufa-Soft
2. Követelmény, projekt, funkcionalitás 39– Kapufa-Soft Konzulens:
Hartung István
Csapattagok Deák Endre Diószegi Tamás Mácsai Gábor Komlósy Zsolt
BNOX1H T08LBX GQ1EGW G3EA36
[email protected] [email protected] [email protected] [email protected]
2010-02-14
1
2. Követelmény, projekt, funkcionalitás
Kapufa-Soft
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 HSZK1 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. Követelmény, projekt, funkcionalitás
Kapufa-Soft
2.2 Projekt terv 2.2.1 A felhasznált fejlesztőeszközök A csapat a NetBeans2 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 StarUML3 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 3
http://netbeans.org/community/releases/68/ http://staruml.sourceforge.net/en/
3
2. Követelmény, projekt, funkcionalitás
Kapufa-Soft
Wikispaces4: 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. Követelmény, projekt, funkcionalitás
Kapufa-Soft
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. Követelmény, projekt, funkcionalitás
Kapufa-Soft
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. Követelmény, projekt, funkcionalitás
Kapufa-Soft
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
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.
Baleset, koccanás
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ő.
Bank
A bankrablók pozíciója a játék indulásakor.
Bankrablók, rablók
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.
Civil, polgár
A városban mindenki, aki nem a bankrabló vagy rendőr. A város útjain vezetik autóikat.
Forgalom
A város útjain, vagy egy adott területen haladó autók összessége.
Háztömb
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.
Játékos
A programot irányító személy, a bankrablók autóját irányítja.
Kereszteződés
Kettő vagy több út találkozási pontja, gyakran stop táblával vagy jelzőlámpával.
Kétsávos út
Két, ugyanolyan irányú, közvetlenül egymás mellett haladó út.
Közlekedési lámpa
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.
Lőtávolság
Egy előre meghatározott állandó távolság, amin belül kerülve a rendőr lelövi a menekülő bankrablókat.
Rejtekhely
Egy előre kijelölt speciális útszakasz, a játék célja ennek elérése.
Rendőr, rendőrjárőr
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.
Stop tábla
Tetszőleges út végén rövid megállásra felszólító tábla.
Szabály
Az utakon való közlekedésre vonatkozó utasítások, a civilek szigorúan betartják őket, míg a bankrablók megszeghetik őket.
Út, sáv
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
2. Követelmény, projekt, funkcionalitás
Kapufa-Soft
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. Követelmény, projekt, funkcionalitás
Kapufa-Soft
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
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
Aktorok
9
2. Követelmény, projekt, funkcionalitás
Kapufa-Soft
2.6 Napló Kezdet 2010.02.01 – 2010.02.07
Időtartam 1 hét
Résztvevők Deák, Diószegi, Mácsai, Komlósy Deák, Diószegi, Mácsai, Komlósy Deák, Diószegi, Mácsai, Komlósy
2010.02.09. 19:00
1 óra
2010.02.13. 21:00
2 óra
2010.02.13. 23:00
1 óra
Deák
2010.02.13. 23:30
1 óra
Komlósy
2010.02.14. 13:00 2010. 02 14. 16:00
2 óra 3 óra
Mácsai Diószegi
2010.02.14. 22:00
2 óra
Deák
Leírás 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 Tevékenység: Követelménydefiníció kidolgozása Essential Use-Case diagram megszerkesztése Tevékenység: projekt terv elkészítése Tevékenység: Feladat részletes leírása, szótár elkészítése Dokumentum egybeszerkesztése, formázása
10