Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. november 28.
RENDSZERTERV
Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok, az, hogy egyszerű, könnyen kezelhető és magától értetődő legyen, továbbá fontos, hogy a hallgatók, oktatók, és egyéb személyek minél kevesebb idő alatt elsajátítsák a rendszer használati módját. Ha a funkcionális követelményeket fontossági sorrendbe helyezzük, az első dolog, amit biztosítania kell a szoftvernek, az annak a kérdésnek a megoldása, hogy a rendszert több felhasználó használja, valamint mindegyik felhasználónak szükséges feltétele a rendszer használatához a bejelentkezés. Azok a személyek, akik valamilyen, kölcsönzéssel kapcsolatos műveletet szeretnének végezni, valamint a könyvtáros, aki adminisztrációs feladatokat lát el, más műveleteket legyen képes végezni.
A program architektúrája: Maga a program egy konzolos felületből áll, ahol a könyvtárral kapcsolatos műveleteket elvégezhetjük. A program indítása után egy bejelentkezési képernyő fog várni minket, ahol minden felhasználók a saját nevével és jelszavával(okiratszám) léphet be a rendszerbe. Aszerint, hogy milyen felhasználóról van szóm, jelennek meg az aktuális műveletek. Két fontos tagtípust különböztetünk meg, a könyvtárost, aki egyben rendszergazda szerepet tölt be és az összes többi tag. A könyvtáros tudja mindazokat a műveleteket, amiket egy egyszerű felhasználó, azzal a különbséggel, hogy megjelennek a különféle adminisztrációs műveletek, mint például egy tag vagy egy könyv módosítása, törlése, új könyv felvétele stb; Az egyéb különböző tagok legfontosabb műveletei a könyvek listázása, keresése, könyv kölcsönzése. Különbségek a tagok között abban rejlik, hogy ki mennyi időre kölcsönözhet könyvet, fizet -e kölcsönzési díjat, esetleg, ha késik a könyv visszahozásával, mennyi késedelmi díjat fizet. A program minden adatot egy adatbázisban tárol. Külön táblában tároljuk a könyveket, és felhasználókat. A program innen olvassa majd ki az adatokat megfelelő lekérdezések révén. Maga a program C++ nyelven fog íródni objektumorientáltan, több modulból fog állni, minden modult külön fájlban hozok létre. A fő programot a main.cpp fogja tartalmazni, ahová beemelem a szükséges fejállományokat. A mysql adatbázis tábláit az adatbazis.txt fájl parancsok futtatásával hozhatjuk majd létre.
Osztályszerkezet A program az alábbi osztályokból épül fel: Könyv – típus osztály(struktúra), amely tartalmazza egy könyv legfontosabb adatait. szerző – A könyv szerzője cím – A könyv címe kiadó – A könyv kiadója évszám – A könyv írásának időpontja kiadás – Kiadási évszám ISBN - azonosítószám, a könyvek és egyéb monografikus jellegű művek nyilvántartására szolgáló nemzetközi szabványos számrendszerhez tartozó kód.
Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. november 28.
könyv_id - egyedi azonosító, amely egy könyvet azonosít kölcsönözhető_e – logikai változó, amely megmondja, hogy egy könyv kölcsönözhető -e Tag – absztakt osztály, rendelkezik mindazon adattagokkal és metódusokkal, amely a könyvtár minden egyes tagjára érvényes. Belőle származtatjuk majd az EgyetemiHallgató, EgyetemiOktató, MásEgyetemPolgára, EgyébTag valamint a Könyvtáros osztályokat. Tag: tag_id – egyedi azonosító, amely egy könyvtári tagot azonosít nev – könyvtári tag vezeték és keresztneve cím – Lakhely és értesítési cím okiratszam – személyigazolvány, diákigazolvány, vagy egyéb azonosító szám elérhetőség – könyvtári tag elérhetősége(email) kölcsönzési_idő – minden taghoz tartozik egy kölcsönzési idő, hogy mennyi időre kölcsönözhet ki egy könyv kölcsönzési_díj – tagonként változó kölcsönzési díj összege kesedelmi díj - abban az esetben, ha túllépte a kölcsönzési időt, kölcsönzési díjat köteles fizetni. Tagonként válozó szám. bejelentkezett – logika változó, amely azt mondja meg, hogy egy felhasználó bejelentkezett -e a könyvtárba Kereskönyv(cim) – Kilistázza azokat a könyveket, amelyeknek a címe a cím változó értéke Kereskönyv(szerző) - Kilistázza azokat a könyveket, amelyeknek a szerzője a szerző változó értéke ListazKönyvek() - Kilistázza a könyveket Bejelentkezés(név,jelszó) – Bejelentkezés a könyvtárba. Két paramétert vár, a felhasználó nevét és jelszavát. A jelszó nem más, mint a tag felhasználó okiratszáma. Kijelentkezés() - Kijelentkezés a könyvtárból Kölcsönzés(tag_id,könyv_id) – két paramétert vár, tag_id és könyv_id. A tag_id felhasználó kikölcsönzi a könyv_id nevű könyvet KölcsönzésListázás(tag_id) – Kilistázza a tag_id felhasználó által kivett könyveket és kiírja az esetleges tartozásokat. Könyvtáros: Tagfelvétel(név,cím,okiratszám,elérhetőség) - Egy új tag felvétele az adatbázisba. Tag_modosit(tag_id) – Módosítja a tag_id azonosítójú felhasználót TagokListazasa() - Kilistázza az összes tagot TagTörlése(tag_id) – Törli a tag_id azonosítójú felhasználót KonyvTorles(konyv_id) – Törli a konyv_id azonosítójú könyvet Konyvmodosit(konyv_id) – Módosítja a konyv_id azonosítójú könyvet VisszahozástRögzít(konyv_id, tag_id) – Rögzíti a konyv_id visszahozását, és jóváírja az esetleges késedelmi díjat a tag_id felhasználónak Ezen felül a könyvtáros rendelkezik azokkal a metódusokkal, amiket a Tag osztálytól örökölt. Adatbázis osztály: A program szükséges feltétele a Mysql adatbázis-kezelő megléte a gépen. Ennek függvényében az adatbázisokon különféle műveleteket hajthatunk végre. Az adatbázis osztály minden metódusa árulkodik a művelet eredményéről.
Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. november 28.
server – az aktuális szerver neve, ahol az adatokat tároljuk nev – a szerverhez való kapcsolódáshoz szükséges név jelszó - a szerverhez való kapcsolódáshoz szükséges jelszó adatbázis – az adatbázis neve Megnyitás(server,nev,jelszo,adatbázis) – Adatbázis megnyitása, 4 paramétert vár, server nevét, felhasználói nevet és jelszót valamint az adatbázis nevét Lekerdezés(adatbázis,lekérdezés)- az adatbázis nevű adatbázison végrehajtja a lekérdezés változóban lévő értéket. Ennek segítségével valósíthatjuk meg az adatbázis legfontosabb műveleteit: Adatok létrehozása, frissítése, törlése, olvasása. Bezárás(adatbázis) – bezárja az adatbázis nevű adatbázist. Az egyetemi könyvtári nyilvántartó rendszer osztálydiagramja (UML)
Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. november 28.
Állapotdiagram Állapotdiagramként a tag felhasználó állapotait mutatom be. A tag először kijelenetkezett állapotban van. Innen úgy tud továbbmenni, hogy bejelentkezik. Bejelentkezett állapotban több műveletet is elvégezhet. Kilistázhatja a könyvtárban található könyveket, vagy kereshet abban, majd kikölcsönözheti a neki tetszőt könyvet. Ezután kijelentkezéssel kilép a könyvtárból és kiejelentkezett állapotba kerül.
Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. november 28.
Szekvenciadiagram Szekvenciadiagramként az egyetemi hallgató, könyvtár valamint a könyvtáros osztályokat veszem alapul. Az egyetemi hallgató valamint a könyvtáros elsőként bejelentkezik a könyvtárba a Bejelentkezés() metódus meghívásával. Ha a könyvtár igaz értékkel tér vissza, további műveleteket végezhetnek. Az egyetemi hallgató kilistázhatja a könyvtár tartalmát, és a könyvtár válaszul megjeleníti a könyveket, vagy esetleg kereshet a könyvtárban könyveket szerző, cím alapján. Ha megtalálta a neki megfelelő könyvet, szólhat a könyvtárosnak és kiveheti a könyvet. Ezután az egyetemi hallgató kijelentkezik a könyvtárból és távozik onnan.