Elektronikus napló
−1−
Magyary Gyula
Tartalomjegyzék TARTALOMJEGYZÉK .......................................................................................................... 1 KÖSZÖNETNYILVÁNÍTÁS .................................................................................................. 2 BEVEZETÉS............................................................................................................................. 3 A RENDSZER CÉLJA............................................................................................................. 3 A RENDSZERREL SZEMBEN TÁMASZTOTT KÖVETELMÉNYEK........................... 3 FUNKCIONÁLIS KÖVETELMÉNYEK .......................................................................................... 3 NEM FUNKCIONÁLIS KÖVETELMÉNYEK .................................................................................. 4 A RENDSZER ARCHITEKTÚRÁJA .................................................................................... 4 A FEJLESZTÉS HARDVER ÉS SZOFTVER KÖRNYEZETE ......................................... 4 HARDVER ............................................................................................................................... 4 SZOFTVER............................................................................................................................... 5 A RENDSZER AKTORAI ÉS JOGOSULTSÁGAIK........................................................... 5 NAPLÓADMINISZTRÁTOR ........................................................................................................ 7 TANÁR .................................................................................................................................... 7 SZÜLŐ .................................................................................................................................... 8 OBJEKTUM OSZTÁLYOK ................................................................................................... 8 BEJEGYZÉS OSZTÁLY .............................................................................................................. 9 MULASZTÁS OSZTÁLY .......................................................................................................... 10 OSZTÁLYZAT OSZTÁLY ......................................................................................................... 10 ÓRA OSZTÁLY....................................................................................................................... 11 TANTÁRGY OSZTÁLY ............................................................................................................ 12 OSZTÁLY OBJEKTUMOSZTÁLY .............................................................................................. 12 SZEMÉLY OSZTÁLY ............................................................................................................... 13 FELHASZNÁLÓ OSZTÁLY ....................................................................................................... 14 DIÁK OSZTÁLY ..................................................................................................................... 14 SZÜLŐ OSZTÁLY ................................................................................................................... 15 TANÁR OSZTÁLY .................................................................................................................. 16 ADMINISZTRÁTOR OSZTÁLY ................................................................................................. 17 ADATBÁZISTERV ................................................................................................................ 18 ADATTÁBLÁK ÉS KAPCSOLATAIK ......................................................................................... 18 FELHASZNÁLÓK ÉS JOGOSULTSÁGOK ................................................................................... 21 ADATLEKÉRÉS ÉS MANIPULÁLÁS .......................................................................................... 22 HIVATKOZÁSI INTEGRITÁS KEZELÉSE ................................................................................... 23
Elektronikus napló
−2−
Magyary Gyula
A RENDSZER FUNKCIÓI, KÉPERNYŐ TERVEK ......................................................... 23 BEJELENTKEZÉS ................................................................................................................... 24 FELADATVÁLASZTÁS ............................................................................................................ 24 FELHASZNÁLÓ ADATAINAK MEGVÁLTOZTATÁSA ................................................................. 25 SZÜLŐK TEVÉKENYSÉGEI ..................................................................................................... 25 TANÁROK TEVÉKENYSÉGEI .................................................................................................. 28 ADMINISZTRÁTOR TEVÉKENYSÉGEI...................................................................................... 32 TELEPÍTÉS ............................................................................................................................ 34 SZERVER OLDALON .............................................................................................................. 34 KLIENS OLDALON ................................................................................................................. 37 TESZTELÉS ........................................................................................................................... 38 A TESZTELÉS MENETE........................................................................................................... 38 AZ ADATBÁZIS TESZTELÉSE .................................................................................................. 38 KEZELŐFELÜLET TESZTELÉSE............................................................................................... 39 TOVÁBBI FEJLESZTÉSI LEHETŐSÉGEK ..................................................................... 54 FELHASZNÁLT IRODALOM ............................................................................................. 54 MELLÉKELT FÁJLOK........................................................................................................ 55
Köszönetnyilvánítás Köszönettel tartozom: Mindenek előtt, Balázs Józsefnek konzulensi munkájáért. Azoknak az intézményeknek (Kassák Lajos Gimnázium, Pentaschool Oktatási Központ), akik anyagilag támogatták a programozói szakképesítés megszerzését. A tanfolyam következő oktatóinak, színvonalas munkájukért: Balázs József, Bányász Gábor, Kolman Nándor, Lakosi András. Az ő oktatói munkájuk nélkül lényegesen nehezebb lett volna a feladatom. Végül, de nem utolsó sorban környezetemnek, akik türelemmel fogadták, hogy hosszú órákat töltök a tanfolyamon, tanulással, illetve a szakdolgozat elkészítésével.
Elektronikus napló
−3−
Magyary Gyula
Bevezetés Egykori munkahelyemen (gimnázium) vetődött fel a feladat, jó volna helyettesíteni a papír alapú naplókat elektronikus változattal. A program megírásának kezdete után az iskolának beszerzett az önkormányzat egy hasonló célú szoftvert. Innentől kezdve a program megírása kizárólag tanulási célokat szolgált. Jelen dolgozat egy elektronikus napló néhány funkcióját szándékozik dokumentálni a tervezéstől a tesztelésig. A szakdolgozat célja, az elektronikus napló tesztváltozatának elkészítése által, a MS Visual Studio C# illetve a MS SQL Server megismerése és használatának
elsajátítása
volt.
A
fejlesztett
szoftver
kliens-szerver
architektúrát alkalmaz. A szerveroldalon egy Windows Server 2003 operációs rendszer felett futó MS SQL Server 2005 található. Ehhez kapcsolódik (kapcsolódhatnak) a Visual Studio 2005 C#-ban fejlesztett desktop alkalmazás. A kezdeti nehézségek után nyilvánvalóvá váltak e technológia előnyei. A kényelmes, sokoldalú fejlesztői környezet gyors fejlesztést tesz lehetővé. A telepítés után rögtön rendelkezésre álló komponensekkel könnyen feldobható egy ablak megjelenésének színvonala. A tervezéskor az objektum orientált szemléletet és az UML előírásait igyekeztem szem előtt tartani.
A rendszer célja A rendszer fejlesztésének célja egy átlagos iskola (16 – 20 aktív osztály) által használható elektronikus haladási, mulasztási és osztályzási napló elkészítése.
A rendszerrel szemben támasztott követelmények Funkcionális követelmények Tegye lehetővé a napló tartalmának megtekintését az iskolán belüli hálózaton keresztül. Biztosítson többféle keresési szempontot.
Elektronikus napló
−4−
Magyary Gyula
Tegye lehetővé a napló tartalmának karbantartását az adminisztrátor, valamint a tanárok számára. Ezen belül: új bejegyzések felvitelét, elavult bejegyzések
törlését,
elrontott
bejegyzések
módosítását
a
megfelelő
felhasználó számára.
Nem funkcionális követelmények Biztosítsa, hogy az adatok ne kerülhessenek illetéktelen felhasználó kezébe. Mindenki csak azokat az adatokat láthassa, vagy módosíthassa, ami a feladatköréhez kötődik. Ne tároljon adatvédelmi szempontból nem megengedett adatot. A kezelőfelület használata ne igényeljen informatikai előismereteket.
A rendszer architektúrája A rendszer három rétegű architektúra szerint épül fel: • Felhasználói interfész: A Visual Studio C#-ben fejlesztett kliensprogram valósítja meg a munkaállomáson. • Üzleti logika: A Visual Studio C#-ben fejlesztett kliensprogram valósítja meg a munkaállomáson. • Adatbázis-kezelő rendszer: A Windows Server 2003-on található MS SQL 2005 Server biztosítja. Az üzleti logika a MS SQL Serverhez adott kliensszoftveren keresztül éri el a szervert. Ez a megoldás gyorsabb működést biztosít, mintha odbc drivert használtam volna. Az MS SQL Server tartalmazza a szabványos (ansi ’92) SQL utasításait, ezen felül sok egyéb, nem szabványos, ámde nagyon hasznos kiegészítést.
A fejlesztés hardver és szoftver környezete Hardver • Processzor:
Pentium IV – 3 GHz
• RAM:
2 GB
• Merevlemez:
10 GB
Elektronikus napló
−5−
Magyary Gyula
Szoftver • Operációs rendszer:
Windows 2003 Enterprise Server
• Fejlesztő eszköz:
Visual Studio 2005 C#
• Adatbázis-kezelő:
MS SQL Server 2005
• Case eszköz:
MS Visio 2003
A rendszer aktorai és jogosultságaik
Elektronikus napló
−6−
Magyary Gyula Tanárlista
Tantárgylista *
* *
*
*
Új tanár felvitele Új tantárgy felvitele
Tantárgykezelés
*
*
*
Tanárkezelés *
* *
*
Tanár adatainak módosítása *
Tantárgy módosítása * * *
Tanár törlése Tantárgy törlése
Osztálylista
Tanulólista
*
* Új tanuló felvétele Új osztály felvétele
*
*
*
Osztálykezelés
* *
*
Tanulókezelés
*
*
*
Tanuló adatainak módosítása
*
*
Osztály adatainak módosítása *
*
*
Tanuló törlése
Osztály törlése
Osztályzatok listája Hiányzáslista * * *
* Új hiányzás felvétele *
Hiányzási napló
Osztályzati napló
*
Új osztályzat felvétele *
* *
* *
*
Osztályzat módosítása *
Hiányzás módosítása * * * Hiányzás törlése
Osztályzat törlése
Elektronikus napló
−7−
Magyary Gyula
Naplóadminisztrátor Az adatbázis teljes tartalmához hozzáférő, kiemelt felhasználó. Feladata elsősorban a tanár szerepkörű felhasználói fiókok kezelése (létrehozása, törlése, módosítása), a tantárgyak és osztályok kezelése.
Tanár A tanárszerepkör rendelkezik a legsokrétűbb feladattal. Feladata lehet a tanulók és szülők adatainak kezelése (létrehozása, törlése, módosítása). Minden tanár feladata az általa megtartott órák, az érdemjegyek és hiányzások bejegyzése. Mivel ez a szerepkör jár a legtöbb feladattal, több felhasználó fogja megvalósítani. A hagyományos osztályfőnöki rendszerben osztható szét legcélszerűbben a munka. Egy tanárhoz az osztályába járó tanulók és azok szülei tartoznak a személyes adatok nyilvántartásával kapcsolatban. Mivel az osztályfőnök hiányozhat, szerepét bármely más tanárnak át kell tudnia venni. A tanár képes megváltoztatni a saját, valamint a szülő szerepkörű felhasználók jelszavát.
Elektronikus napló
−8−
Magyary Gyula
Szülő A szülőszerepkörű felhasználó lehetőséget kap a gyermeke (gyermekei) adatainak megtekintéséhez, valamint képes a jelszavának a megváltoztatására. Felmerül a kérdés, nem szükséges-e a tanulót, mint actort alkalmazni a programban? Mivel a szülő felhasználó semmi olyan adatot nem kap ebben a rendszerben, amit a gyermeke nem tudhat, és fordítva, a gyermek sem kapna olyan adatot, amit a szülő nem tudhat, a két szerepkört nem kellett szétválasztani. (Helyesebb lenne talán családnak nevezni ezt az actort, és akkor nem merülne fel az a nem technikai jellegű probléma, hogy a gyerek a szülő jelszavával jelentkezik be.) Egy értesítéseket vagy ellenjegyzéseket (aláírás) tartalmazó rendszerben a két szerepkört szét kellene választani. Ilyen igények azonban a felméréskor nem fogalmazódtak meg. A tanuló és szülő szerepkor szétválasztása nem szükséges, de megfontolandó. A szerepkörök szétválasztása megnövelné valamennyivel az adatbázist valamint a programkódot. (Tanulónak is saját jelszava lenne, plusz menüt kellene beiktatni, stb.) Ez a kisebbik probléma a jelenlegi háttértárkapacitások mellett. A nagyobbik probléma az lenne, hogy a tanárokra plusz adminisztrációs terheket róna a jelszavak karbantartása. (Nyilván minden gyerek naponta legalább kétszer felejtené el a jelszavát, hogy a tanárt bosszantsa. ☺)
Objektum osztályok Az előzőekben vázolt feladatokat a következő objektumrendszerrel lehetne megvalósítani.
Elektronikus napló
−9−
Magyary Gyula
Adminisztrátor -újOsztályLétrehoz() : bool -osztályMegváltoztat() : bool -osztályTöröl() : bool -osztályokListázás() : object -újTantárgyLétrehoz() : bool -tantárgyMegváltoztat() : bool -tantárgyTöröl() : bool -tantárgyakListázás() : object -újTanárfelhasználóLétrehoz() : bool -tanárfelhasználóMódosít() : bool -tanárfelhasználóTöröl() : bool -tanárfelhasználóListázás() : object 1
1 *
Tanár
1 -kezeli
Osztály -azonosító : int -indulás : string -évfolyamszám : byte -kezdőszám : byte -betűjel : char
*
1
-osztályfőnöke
-újÓraLétrehoz() : bool -óraMódosít() : bool -óraTöröl() : bool -órákListáz() : object -újMulasztásLétrehoz() : bool -mulasztásMódosít() : bool -mulasztásTöröl() : bool -mulasztásokListáz() : object -újOsztályzatLétrehoz() : bool -osztályzatMódosít() : bool -osztályzatTöröl() : bool -osztályzatokListáz() : object
1
*
Személy #azonosító : long #név : string #születési dátum : string #aktív : bool
Felhasználó #felhasználónév : string #jelszó : string -sajátJelszótMegváltoztat() : bool -bejelentkezik() : bool
1
1 -kezeli 1
*
Diák -tanárazonosító : long -szülőazonosító : long
*
-gyermeke 1 1
1 *
-kezeli
1
Szülő -tanarazonositó : long -sajátGyermekJegyLista() : object -sajátGyermekHiányzásLista() : object
-kezeli
Tantárgy -azonosító : int -név : string
*
1 -bejegyzi
1 *
-kapja
Osztályzat -jegy : byte -tanuloAzonosító : long -tantárgyAzonosító : long -leírás : string
* -résztvesz
*
*
*
Óra -óraSorszáma : int -tartalom : string -tantárgyAzonosító : long -helyettesítés : bool -osztályAzonosító : long
* -megtartja
-bejegyzi Bejegyzés #azonosító : long #bejegyzésDátuma : string #bejegyző
*
-kapja
Mulasztás -tanuloazonosító : long -hányadikÓra : byte -késés : bool -igazolt : bool
Bejegyzés osztály Szerepe A Bejegyzés osztály a rendszer összes olyan adatának őse, amiért az elektronikus naplót tulajdonképpen létrehoztuk.
Elektronikus napló
− 10 −
Magyary Gyula
Tagváltozók Minden bejegyzésnek van azonosítója és dátuma, amikor a bejegyzés készült. Ezenfelül minden bejegyzéshez tároljuk a bejegyzést végző tanár azonosítóját.
Mulasztás osztály Származás A Mulasztás osztály a Bejegyzés osztály utódja. (A mulasztás a napló egy bejegyzése.) Tagváltozók Minden mulasztás egy-egy diákhoz köthető, aki késett vagy hiányzott (tanulóazonosító tagváltozó). A késés logikai tagváltozó segítségével különböztetjük meg a hiányzást a késéstől. Az igazolt logikai tagváltozót a hiányzás igazolt vagy igazolatlan jellegének tárolására használjuk. A naplókban a mulasztásoknak nem csak a dátuma, hanem az órája (pl. 4. tanítási óra a napon) is szerepel. Ezt tároljuk a hányadikÓra tagváltozóban.
Osztályzat osztály Származás Az Osztályzat osztály is a Bejegyzés osztályból származik. Tagváltozók Minden egyes osztályzatot (jegy) egy-egy tanuló kap (tanulóAzonosító), egy adott tantárgyból (tantárgyAzonosító). A hagyományos naplókban ugyan nem szokás, de praktikus bejegyezni, mire kapta a tanuló az érdemjegyet (leírás). Esetünkben a napló a szülő tájékoztatását is szolgálja, kiegészítve vagy helyettesítve az ellenőrzőt. Ezért célszerű leírás tagváltozó használata.
Elektronikus napló
− 11 −
Magyary Gyula
Óra osztály Származás A tanítási órák nyilvántartására szolgál az Óra osztály, ami szintén Bejegyzés osztály utóda. Tagváltozók Minden óra valamilyen tantárgy keretében (tantárgyAzonosító), és valamelyik osztályban (osztályAzonosító) zajlik. Az óra témáját a tartalom tagváltozóban tároljuk. Elszámolási megkülönböztetni
és a
egyéb nem
okokból
célszerű
helyettesített
óráktól
a
helyettesítéseket
(helyettesítés
logikai
tagváltozó). A naplókban szokás nyilvántartani, hogy az adott tanév hányadik órája a tantárgynak. (Pl.: matematikából a tizedes törtek értelmezése az anyag a 86. órán.) Gondolhatnánk, hogy ennek meghatározását a tanév kezdés és az aktuális nap dátumának, valamint az előző órák sorszámának alapján majd a program meghatározza. Ez azonban nem ilyen egyszerű. A helyettesítéseket esetenként
beleszámolják,
esetenként
nem
az
órák
sorszámozásába.
Legegyszerűbb esetben: A szakszerű helyettesítésnél tovább számozzák, a nem szakszerűnél nem. Nem egyértelmű azonban, mikor szakszerű a helyettesítés. Mivel az év végén kötelezően meg kell lennie bizonyos óraszámnak, „szeretnek” bizonyos órákat szakszerűnek venni. Más esetekben viszont a szakszerű helyettesítésért többet kell fizetni, ezért a vezető szempontjából célszerű szakszerűtlennek venni. Hosszas töprengés után végül a program által kiszámított óraszám mellett döntöttem. (Leginkább azért, hogy a programban ez megoldandó feladat legyen.) Az óraSorszáma tagváltozóban azt tároljuk, hogy a nap hányadik órájában volt megtartva a foglalkozás.
Elektronikus napló
− 12 −
Magyary Gyula
Tantárgy osztály Szerepe, tagváltozók A Tantárgy osztály a tantárgyak nevét és azonosítóját tartalmazza. Kapcsolatok • Egy-a-többhöz kapcsolatban áll az Óra osztállyal, mert egy tantárgyat több órában tanítanak. • Egy-a-többhöz kapcsolatban áll az Osztályzat osztállyal, mert egy tantárgyból több jegy is fog születni.
Osztály objektumosztály Szerepe Az Osztály objektumosztály tartalmazza a tanulócsoportok jellemző adatait. Tagváltozók Az Indulás tagváltozó a csoport indulásának dátumát, az évfolyamszám a képzés évfolyamainak számát tartalmazza. (Például hatosztályos gimnázium esetén az értéke 6, 2 éves szakképzésnél 2.) A párhuzamosan induló csoportok megkülönböztetésére szolgál a betűjel tagváltozó. Amikor az osztályokat megjelenítjük, nem a kezdődátumot szeretnénk látni, hanem valami ilyesmit: 11.C. A betűjel előtti szám csak akkor határozható meg az aktuális dátumból és a kezdési dátumból, ha van arra vonatkozó adatunk, honnan kell kezdeni a számozást. Ezt az adatot azonban nem „égethetjük be” a programba, mert egy iskolában többféle képzés is lehetséges. Ugyanaz az intézmény indíthat szakképzést 13. évfolyamtól és 9. évfolyamtól gimnáziumi osztályt. További bonyodalmat okoz, hogy néhány intézményben ragaszkodnak ahhoz, hogy a bekerülő osztályok számozása 1gyel
kezdődjön.
tanulócsoportonként
Mindezen egy
problémák
kezdőszám
megoldására
tagváltozót,
amit
felveszünk az
osztály
Elektronikus napló
− 13 −
Magyary Gyula
létrehozásakor az adminisztrátor tölt ki. Ez fogja tartalmazni, hogy az induló tanulócsoportnak milyen szám fog szerepelni a betűjele előtt. Felmerülhet a kérdés, miért van szükség az évfolyamszám tagváltozóra, noha az sehol nem jelenik meg a tanárok és a szülők számára. Az évfolyamszám tagváltozó (és némi számítás) segítségével tudjuk elkülöníteni a még aktív osztályokat a már nem aktívaktól. Erre két okból is szükségünk van: • Egyrészt a nem aktív osztályokkal csak ritkán van feladat, ezért alapértelmezés szerint nem fogjuk megjeleníteni a listákban. Ezzel áttekinthetőbbé tesszük az adatokat. • Másrészt: Hogyan jelöljük a már végzett osztályokat a listákban? Nem hívhatjuk őket 12.B-nek, hiszen összekevernénk az utolsó aktív B osztállyal, valamint az összes megelőzően végzett B osztállyal. Ha minden évben tovább folytatnánk a nem aktív osztályok számozását, elég vicces eredményt kapnánk (pl.: 34.B osztály). Célszerű az aktív osztályokat a hagyományos módon jelölni, a nem aktívakat pedig az induló évszám alapján. (Lehetne végző évszám is, ez már csak „összeadás” kérdése.) Tehát az osztályok megjelenítésekor esetszétválasztást kell majd alkalmaznunk, hogy az osztály aktív vagy sem. Kapcsolatok Egy-a-többhöz kapcsolatban áll az Óra osztállyal, mert egy osztály több órán is részt vesz.
Személy osztály Szerepe A Személy osztály a rendszer összes személy jellegű osztályának őse. Tagváltozók Neve, születési dátuma, és a rendszer által használt azonosítója minden személynek lesz.
Elektronikus napló
− 14 −
Magyary Gyula
Az aktív logikai tagváltozó segítségével fogja tudni megkülönböztetni a program a rendszert használó és már nem használó személyeket. Erre azért van szükség, mert ha a végzett tanulókhoz, valaha ott dolgozott tanárokhoz tartozó adatokat is megjelenítenénk mindig, a listák áttekinthetetlenné válnának. Ráadásul a végzett tanulók adataira csak ritkán van szükség, így megjelenítésükkel feleslegesen nehezítenénk a tanárok dolgát.
Felhasználó osztály Származás, szerep A Személy osztály egyik utódja a Felhasználó osztály. Idetartozik mindenki, aki a rendszert használja. Tagváltozók Minden felhasználónak neve és jelszava van (tagváltozók). Tagfüggvények Minden felhasználónak tudnia kell érvényes felhasználónév birtokában bejelentkezni
(bejelentkezik
tagfüggvény)
és
a
jelszavát
módosítani
(sajatJelszoMegvaltoztat tagfüggvény).
Diák osztály Származás A Személy osztály másik utódja a Diák osztály. Kapcsolatok • Egy-a-többhöz kapcsolatban áll a Jegy osztállyal, mert egy diák több jegyet kap. • Egy-a-többhöz kapcsolatban áll a Mulasztás osztállyal, mert egy diáknak több mulasztása is lehet.
Elektronikus napló
− 15 −
Magyary Gyula
Tagváltozók A diákot kezelő tanár, valamint a diák szülőjének azonosítóját tartalmazza tagváltozóként ez az osztály. Tagfüggvények Mivel a diák nem aktora a rendszernek, nem szükséges tagfüggvény hozzá.
Szülő osztály Származás A Szülő osztály a Felhasználó osztályból származik. Kapcsolatok Egy-a-többhöz kapcsolatban áll a Diák osztállyal, mert egy szülőnek több gyermeke is járhat az intézménybe. Tagváltozók Egy szülő felhasználói fióknak a kezelője (létrehozója, karbantartója) egy tanár. A kezelő tanár azonosítóját felvesszük a szülő adatai közé. Ez azzal az előnnyel fog járni, hogy a képernyőn a tanár számára megjelenő listákban csak a hozzá tartozó szülők adatai fognak megjelenni alapbeállításban. Ezzel áttekinthetőbbé válnak az adatok. (Mivel más tanár munkáját is át kell tudni venni, ezért a többi szülő is megjeleníthető, ha szükséges.) Tagfüggvények A szülőnek meg kell tudni jeleníteni a saját gyermekeinek jegyeit (sajatGyermekJegyLista
tagfüggvény)
és
mulasztásait
(sajatGyermekHianyzasLista tagfüggvény). A Szülő és a Diák osztály között egy-a-többhöz kapcsolat áll fenn, mivel egy szülőnek több gyermeke is járhat az iskolába.
Elektronikus napló
− 16 −
Magyary Gyula
Tanár osztály Származás A Tanár osztály is a Felhasználó osztályból származik. Kapcsolatok • Egy-a-többhöz kapcsolatban áll a Szülő osztállyal, mert egy tanár több szülő felhasználói fiókját is kezeli. • Egy-a-többhöz kapcsolatban áll a Diák osztállyal, mert egy tanár több diák alapadatait kezeli. • Egy-a-többhöz kapcsolatban áll a Jegy osztállyal, mert egy tanár több jegyet is adhat. • Egy-a-többhöz kapcsolatban áll a Mulasztás osztállyal, mert egy tanár több hiányzást illetve késést is bejegyezhet. • Egy-a-többhöz kapcsolatban áll az Órák osztállyal, mert egy tanár több órát is bejegyezhet. Tagfüggvények A tanár feladata a különböző bejegyzések kezelése (újÓraLétrehoz, óraMódosít, óraTöröl, órákListáz, újMulasztásLétrehoz, mulasztásMódosít, mulasztásTöröl, mulasztásokListáz, újOsztályzatLétrehoz, osztályzatMódosít, osztályzatTöröl, osztályzatokListáz). A már bejegyzett adatok lekérdezésére szolgálnak a Listáz végű tagfüggvények. Új adatok bejegyzésére szolgálnak a Létrehoz tagfüggvények. A Módosít végű tagfüggvényekkel lehet a már felvitt adatokat módosítani. (Például hiányzást igazolni.) A rekordokban változást okozó tagfüggvények visszatérési értéke igaz vagy hamis, függően attól, sikerült-e a műveletet végrehajtani. Szokatlan lehet a Töröl tagfüggvények használata. Nem szokás az adatbázis elavult adatait sem törölni, mert ki tudja, mikor lehet rájuk szükség mégis. A felhasználó által végrehajtott véletlen törlés pedig kárt tehet az adatbázisban. A tároláshoz szükséges hardver ára sem annyira magas, ami a törlést indokolná. Ennek ellenére megvalósítottam ezt a lehetőséget is, mert:
Elektronikus napló
− 17 −
Magyary Gyula
• A tévesen bejegyzett adatokat törölni kell tudni. Ezt a terhet nem akartam az adminisztrátorra és főleg nem a rendszergazdára hárítani. • Sok adat esetén esetleg mégis lelassulhat a rendszer, megtelhetnek a merevlemezek, és egy iskolának nincs mindig azonnal pénze bővítésre. • Ki akartam próbálni a törlést is, ha már egyszer teszt célú programról van szó.
Adminisztrátor osztály Származás Az Adminisztrátor egy speciális jogokkal rendelkező Felhasználó, tehát annak leszármazottja. Kapcsolatok • Egy-a-többhöz kapcsolatban áll az Osztály objektumosztállyal, mert az adminisztrátor több osztályt is kezel. • Egy-a-többhöz kapcsolatban áll a Tantárgy objektumosztállyal, mert az adminisztrátor több tantárgyat is kezel. • Egy-a-többhöz kapcsolatban áll a Tanár objektumosztállyal, mert az adminisztrátor több tanárt is kezel. Tagfüggvények Ő kezeli a tanárokat, osztályokat és tantárgyakat a megfelelő tagfüggvények
segítségével
(újOsztályLétrehoz,
osztályMegváltoztat,
osztályTöröl, osztályokListázás, újTantárgyLétrehoz, tantárgyMegváltoztat, tantárgyTöröl,
tantárgyakListázás,
újTanárfelhasználóLétrehoz,
tanárfelhasználóMódosít, tanárfelhasználóTöröl, tanárfelhasználóListázás).
Elektronikus napló
− 18 −
Magyary Gyula
Adatbázisterv Adattáblák és kapcsolataik Az előző fejezetben áttekintett objektum osztályok meghatározzák az adatbázis szerkezetét. Nagyjából: Egy objektum osztály kölcsönösen megfeleltethető egy adattáblának. Mindezek ellenére előfordulnak nagyobb eltérések az objektum osztályok és az adattáblák között. Ennek oka elsősorban abban keresendő, hogy a jelenleg használatos, SQL alapú adatbázisrendszerek nem objektum orientáltak. Egy tábla nem örökölhet mezőket egy másik táblától. Így a fejlesztő kénytelen az ősosztályokban található tagváltozókat a leszármazott osztályokba áthelyezni az adatbázisban. (Például: Neve nem a Személynek lesz, hanem a Diáknak, Tanárnak.) szulok
tanarok PK,I1
PK,I1 tanarid
mulasztasok PK
nev szuletesidatum felhasznalonev jelszo FK1,I3,I2 tanarid aktiv
nev szuletesidatum felhasznalonev jelszo aktiv
azon
FK2,I4,I3 tanuloid FK1,I2,I1 tanarid datum ora keses igazolt
tantargyak PK,I1 targyid
jegyek PK
Azon
jegy FK1,I2,I1 tanarid FK3,I5,I4 tanuloid bejegyzes FK2,I3,I6 targyid leiras
tantargynev
tanulok orak PK
azon
datum ora FK3,I5 targyid tartalom FK2,I4,I3 tanarid helyettesites FK1,I2,I1 osztalyid
szuloid
PK,I7
tanuloid
nev szuletesidatum FK2,I3,I4 szuloid FK1,I2,I1 osztalyid FK3,I6,I5 tanarid aktiv
osztalyok PK,I1 osztalyid osztalyindulas betujel kezdoszam evfolyamszam
Elektronikus napló
− 19 −
Magyary Gyula
A kapcsolatok elemzését az objektum osztályok ismertetésénél olvashatjuk. Az adattáblák nem objektum orientált megvalósításán kívül még egy eltérést
láthatunk:
Az
adatbázis
nem
tartalmaz
az
Adminisztrátor
objektumosztálynak megfelelő táblát. Ennek oka, hogy normális működés esetén, egy nagyobb iskolában is, egyetlen felhasználó bőven el tudja látni az adminisztrátor
feladatkörét.
Mivel
az
adminisztrátor
egy
kitűntetett
felhasználó nem is szerencsés, ha több van belőle, mert megoszlik a felelősség. Az adminisztrátor felhasználóneve és jelszava az SQL szerver beépített felhasználótáblájába (Security/Logins) lesz bejegyezve, és nem az adatbázisba. Az adattáblák leírása Tantargyak Mezőnév targyid tantargynev
Típus integer nvarchar
Hossz
megjegyzés Kulcs
50 Osztalyok
Mezőnév osztalyid osztalyindulas betujel kezdoszam evfolyamszam
Típus integer datetime nvarchar tinyint tinyint
Hossz
megjegyzés Kulcs
2
Szulok Mezőnév szuloid nev szuletesidatum felhasznalonev jelszo tanarid aktiv
Típus integer nvarchar datetime nvarchar nvarchar integer bit
Hossz 100 40 40
megjegyzés Kulcs
Elektronikus napló
− 20 −
Magyary Gyula
Tanarok Mezőnév tanarid nev szuletesidatum felhasznalonev jelszo aktiv
Típus integer nvarchar datetime nvarchar nvarchar bit
Mezőnév tanuloid nev szuletesidatum felhasznalonev jelszo szuloid tanarid aktiv
Típus integer nvarchar datetime nvarchar nvarchar integer integer bit
Hossz
megjegyzés Kulcs
100 40 40
Tanulok Hossz
megjegyzés Kulcs
100 40 40
Orak Mezőnév azon datum ora tartalom tanarid helyettesites osztalyid
Típus integer datetime tinyint nvarchar integer bit integer
Hossz
megjegyzés Kulcs
200
Mulasztasok Mezőnév azon tanuloid tanarid datum ora keses igazolt
Típus integer integer integer datetime tinyint bit bit
Hossz
megjegyzés Kulcs
Elektronikus napló
− 21 −
Magyary Gyula
Jegyek Mezőnév azon jegy tanuloid tanarid targyid bejegyzes leiras
Típus integer tinyint integer integer integer bit nvarchar
Hossz
megjegyzés Kulcs
100
Felhasználók és jogosultságok A felhasználók tárolásánál és jogosultságaik kiosztásánál a jelenleg szokásos megoldást választottam: Az adatbázis-kezelő hitelesítő rendszerébe csak a szerepköröknek megfelelő felhasználókat hoztam létre (1 db szülő, 1 db tanár, 1 db adminisztrátor). A szerepkörökhöz rendeltem hozzá (közvetve a tárolt eljárásokon át) a táblaelérési jogokat. A szerepkörökön belüli hozzáféréseket a program tartalmazza az adattáblák közötti kapcsolatok segítségével. Például: Egy bejelentkező szülőnek csak azoknak a diákoknak az adatait kérem le a lekérdezés során, akikkel kapcsolatban van (akik az ő gyermekei). Ennek a megoldásnak a hátránya, hogy a felhasználói felületet megkerülve,
az
adatbázis
szerkezetének
(tárolt
eljárásainak)
alapos
ismeretében bármely szülői felhasználói fiókkal bármely tanuló adata lekérdezhető (de nem módosítható). A lehetséges alternatíva az lenne, hogy minden felhasználót bejegyzünk az adatbázis-kezelő hitelesítő rendszerébe. Ennek a módszernek több hátránya is van: • Az SQL szerveren a felhasználói fiókok az egész szerverre vonatkoznak (és nem egy adatbázisra). Egy felhasználói fiókot létrehozásához legalább securityadmin szerepkör birtokában lehet csak létrehozni. Ebből az következik, hogy minden tanárnak securityadmin-nak kellene lennie az
Elektronikus napló
− 22 −
Magyary Gyula
egész szerveren ahhoz, hogy létre tudja hozni a szülők felhasználói fiókjait. Ez sem probléma addig, amíg a tanár az elektronikus napló keretei között marad. Ha azonban kiismeri a szerver felépítését, egy „ravasz” program segítségével nagyobb károkat is okozhat akár a szerveren található más adatbázisokban is. • Az adatbázis szerver az adatlekéréshez
létrehozott kapcsolatokat
(connections) nem építi le azonnal, miután a felhasználó lezárja a kapcsolatot. Így ha ugyanazt a kapcsolatot rövid időn belül ismét kérik, a felhasználónak nem kell várakoznia a kapcsolat felépítésére. Ez az eset csak akkor állhat fent, ha ugyanarról a kapcsolatról van szó, tehát (többek között) a felhasználónév megegyezik. Ha minden tanár (vagy szülő) eltérő felhasználó névvel jelentkezik be, az egyben más kapcsolatot is eredményez, így a gyorsítás e lehetőségétől elesünk.
Adatlekérés és manipulálás Az adatlekérést és manipulálást kétféleképpen lehetne megvalósítani: • A C# kódba ágyazott select, insert, delete, update parancsokkal. • Tárolt eljárások segítségével. Utóbbi megoldást választottam a következő okok miatt: • Biztonságosabb: Nem kell a felhasználónak közvetlenül elérhetővé tenni az adattáblát. Hiába ismeri a szabvány SQL parancsokat és az adattáblák nevét, nem éri el a tartalmukat. • Egyszerűbb a jogok kiosztása. Kizárólag a tárolt eljárásra kell végrehajtási jogot adni a megfelelő szerepkörű felhasználónak. A jog nem a táblához, hanem feladathoz köthető. Természetesen így is fennáll annak a lehetősége, hogy egy megszerzett jelszó birtokában, az elektronikus naplót megkerülve, egy betörő (például szülő szerepkörrel) megnézze a tárolt eljárás paraméterlistáját és lekérdezze a nem neki szánt adatokat is (például más szülő gyermekeinek jegyeit). • Csökken a hálózati adatforgalom, mert nem kell elküldeni a teljes SQL parancsok kódját a kliensekről.
Elektronikus napló
− 23 −
Magyary Gyula
• Gyorsabb a végrehajtása. A tárolt eljárás futtatásához a szerver nem készít minden egyes alkalommal lekérdezési tervet. • Több feladatot lehet áthárítani a kliensről a szerverre. Ezzel egyrészt a kliens tehermentesíthető, másrészt a program modulárisabb lesz, ami a fejlesztésnél előny. (Áttekinthetőbb a kód, és a tárolt eljárás belseje módosítható a program módosítása nélkül.)
Hivatkozási integritás kezelése Az egymáshoz kapcsolódó adattáblák gyakran csak együtt módosíthatók. Ha
erre
nem
ügyelünk,
az
adatbázis
össze
nem
függővé,
tehát
használhatatlanná válik. A hivatkozási integritás megsértésének figyelésére van az Ms Sql Server –nek beépített lehetősége, idegenkulcs megszorítás formájában. A hivatkozási integritás megőrzésére kétféle módszer közül is választhatunk: • Az adatbázis-kezelő lehetőségeket biztosít a táblákból történő együttes törlésre, módosításra, kaszkádolt törlés illetve kaszkádolt módosítás formájában. • A program kódjában (esetünkben a tárolt eljárásokban) gondoskodunk a hivatkozási integritás megőrzéséről. Az idegenkulcs megszorítások figyelése illetve a kaszkádolt törlés és módosítás az adatbázis-kezelő szervertől plusz erőforrásokat igényel. Ha a velük kapcsolatos kivételek, hibaüzenetek kezelése a kliens oldalon történne, az adatforgalom is megnőne. Mindezek figyelembevételével úgy döntöttem, hogy a tárolt eljárásokban valósítom meg a hivatkozási integritás megőrzését.
A rendszer funkciói, képernyő tervek A program desktop alkalmazás, tehát egy ablakban találhatók az elérhető funkciók.
Elektronikus napló
− 24 −
Magyary Gyula
Mivel a szerepkörök jelszavait nem akarjuk minden adott szerepkörű felhasználónak megadni, a program tartalmazza őket. Éles rendszerben, különösen Internetről történő csatlakozás esetén több kliensprogramot kellene írni. A szülő kliensprogramja nem tartalmazná a tanároknak szóló funkciókat, így nem lenne benne a tanár szerepkör jelszava sem, amihez hozzájuthatna a program esetleges visszafejtésével. A programmal szemben azonban csak helyi felhasználás volt a követelmény, így az egyetlen kliensprogramos megoldás megfelelő.
Bejelentkezés A program indítása után a Be- és kijelentkezés menüből választhatjuk ki, milyen szerepkörű felhasználóként jelentkezünk be. Megjelenik egy ablak, ahol megadhatjuk a felhasználó nevét és jelszavát.
A szűrés és státusz keretben található piros felirat jelzi, milyen nevű felhasználóként vagyunk bejelentkezve.
Feladatválasztás Innentől az elérhető funkciók a szerepkörtől függenek. A funkciókat a Feladatok menüből választhatjuk ki. Csak az aktív szerepkörhöz tartozó funkciók érhetők el.
Elektronikus napló
− 25 −
Magyary Gyula
Az ablak tartalma minden esetben a szerepkörnek és az igénybevett funkciónak megfelelően módosul.
Felhasználó adatainak megváltoztatása Ebben a rendszerben minden felhasználónak jogában áll megváltoztatnia a nevét, a születési dátumát (hátha rosszul írták be), valamint a jelszavát. Egyedül a felhasználónév nem módosítható. Az adatok közül bármelyek módosíthatóak akár egyszerre is. Minden módosításhoz kötelező a jelszót két példányban megadni.
A módosítás sikerességéről üzenetet kapunk.
Szülők tevékenységei Jegyek megtekintése A Feladatok/Jegyek kezelése menüt választva juthat a szülő az itt látható ablakba.
Elektronikus napló
− 26 −
Magyary Gyula
A jegyek az ablak középső részén lesznek felsorolva a legfontosabb adataikkal (jegy, téma, tárgy, tanuló neve). Ha a középső keretben kiválaszt egy jegyet, annak részletei az alsó keretben megjelennek. Így kiderül, mikor kapta a tanuló a jegyet és melyik tanártól. (Ezek az információk már nem fértek volna el a középső keretben.) Ha sok a jegy, a Szűrés és státusz keretben állíthat be rá szűrési feltételeket: • Tanuló neve: Csak a kiválasztott nevű tanuló jegyei jelennek meg. A lista tartalmaz egy mind lehetőséget is. Ennek segítségével jelenítheti meg összes gyermekének adatait egyszerre. • Tantárgy neve: Csak a kiválasztott tantárgy jegyei jelennek meg. Itt is működik a mind lehetőség, értelemszerűen. • Ettől – Eddig dátummezők segítségével kényelmesen beállíthatja, milyen időszakból vár adatot. Alapértelmezés az aktuális tanév kezdete és vége. A Bezárás gomb segítségével léphetünk ki a funkcióból. Ettől még a bejelentkezés megmarad, választhatunk más feladatot.
Elektronikus napló
− 27 −
Magyary Gyula
Mulasztások megtekintése A Feladatok/Jegyek kezelése menüt választva juthat a szülő az itt látható ablakba.
Az ablak használata teljesen megegyezik a Jegyeknél leírtakkal. A
szülők
lehetséges
tevékenységdiagram.
funkcióit
foglalja
össze
az
alábbi
Elektronikus napló
− 28 −
Szülő
Magyary Gyula Alkalmazás
/ Sikertelen azonosítás Azonosító megadása
Hibaüzenet kiírása / Sikeres azonosítás Ablak bezárása
Funkció választása
Funkciók elérhetővé tétele / Kilépés
Jelszó megadása
Jelszóváltoztató ablak megjelenítése
/ Jelszómódosítás
Jelszó ellenőrzése
/ Nem elfogadható / Elfogadható / Nincs szűrés
/ hiányzás Hiányzás áttekintése
Alapértelmezett hiányzáslista
/ Nincs szűrés
/ jegyek
Szűrés beállítása
/ Szűrés Szűrt hiányzás megjelenítése
Jegyek áttekintése
Alapértelmezett jegylista
Szűrés beállítása / Szűrés Szűrt jegyek megjelenítése
Tanárok tevékenységei Jegyek kezelése Az ablak elérése és használatának nagy része megegyezik a szülőknél látottakkal.
Elektronikus napló
− 29 −
Magyary Gyula
Kényelmi okokból, az ablakba történő belépéskor a tanár által utoljára bevitt érdemjegy adataira állítja be a program a szűrés Tanuló, Tantárgy és Osztály legördülő listáit. A Csak aktívak jelölőnégyzet bekapcsolásával az Osztály listában csak az aktív tanulók fognak megjelenni. Az Aktuális adat keretben a középső listából kiválasztott jegy adatait változtathatjuk meg. Ehhez az Aktuális adat keretben át kell írni, illetve a listákból, dátummezőből ki kell választani a módosítandó adatokat. Az adatbázis tényleges megváltoztatása csak a Módosítás gombra történő kattintás (és a megerősítés elfogadása) után történik meg. A Törlés gombot választva, megerősítés után, a kiválasztott jegy törlődik. Az Új jegy gombra kattintva jegyezhetünk be új érdemjegyet egy segédablakban. Kényelmi okokból a listák adatait a program előkészíti. Kitölti a tanár nevét a bejelentkezett tanár nevével, a dátumot az aktuális dátummal, a tanuló
Elektronikus napló
− 30 −
Magyary Gyula
nevét és a tantárgyat az utoljára bevitt érdemjegyhez tartozó tanuló nevével és tantárgyával.
A Rögzítés gombra kattintva vihetjük be az adatbázisba az érdemjegyet, ha a Leírás mező kitöltött és a Jegy mező egész számot tartalmaz. Mivel általában a tanárok egyszerre több jegyet visznek be, a Rögzítés gombbal nem lépünk vissza a főablakba, hogy ne kelljen minden egyes jegy beviteléhez ismét az Új jegy gombra kattintani. A főablakba visszatérni a Kilépés gombbal lehet. Mulasztások kezelése Az ablak elérése és használatának nagy része megegyezik a szülőknél látottakkal.
Az
eltérések
az
adatbevitellel,
törléssel,
módosítással
kapcsolatosak. Ezek a részek teljesen hasonlóan működnek a jegyek kezelésénél látottakhoz. Diákok kezelése A Feladatok/Diákok kezelése menüpontot választva juthat a tanár abba az ablakba, ahol a diákok adatait kezelheti.
Elektronikus napló
− 31 −
Magyary Gyula
Az ablak szerkezete, beleértve a Új tanuló gomb „mögötti” segédablakot, az előzőekhez hasonló. A Felügyelet listában a tanuló felügyeletét ellátó tanár, tipikus esetben az osztályfőnök neve látható alapértelmezettként. Az aktív jelölőnégyzettel a tanuló státuszát állíthatjuk be. Aktívra állítjuk, ha a tanuló az iskola beiratkozott tagja. A Szülő listában csak azok közül választhatunk, akiket előzőleg rögzített már valaki a szülő táblában. Szülők kezelése A Feladatok/Szülők kezelése menüpontot választva juthat a tanár abba az ablakba, ahol a szülők adatait kezelheti. Az ablak lehetőségei szinte teljesen megegyeznek a diákok ablakéval.
Elektronikus napló
− 32 −
Magyary Gyula
Adminisztrátor tevékenységei Osztályok kezelése A Feladatok/Osztályok kezelése menüpontot választva juthat az adminisztrátor abba az ablakba, ahol az osztályok adatait kezelheti. Az ablak használta megegyezik az előzőekben ismertetettekkel. A nem aktív osztályokat a középső listában a betűjele előtt olvasható – jelek jelzik.
Elektronikus napló
− 33 −
Magyary Gyula
Tantárgyak kezelése A Feladatok/Tantárgyak kezelése menüpont választva juthat az adminisztrátor a tantárgykezelő ablakba.
Elektronikus napló
− 34 −
Magyary Gyula
Tanárok kezelése A
Feladatok/Tanárok
kezelése
menüpont
választva
juthat
az
adminisztrátor a tantárgykezelő ablakba.
Telepítés Szerver oldalon Előfeltételek A szerver számítógépre szükséges, hogy telepítve legyen az Ms Sql Server 2005 program. Ezt a programot Windows 2003 Serverre lehet telepíteni. A fent említett Microsoft termékek telepítéséről sok szakirodalom áll rendelkezésre, így a telepítés részletes leírásától eltekintek. A további lépések elvégzéséhez rendelkezni kell az Ms Sql Serveren rendszergazdai jogokkal.
Elektronikus napló
− 35 −
Magyary Gyula
A telepítő script tartalma Az elektronikus napló adatbázisának telepítését script segítségével végezzük, melynek neve: telepito.sql. A script a következő feladatokat látja el: • Létrehozza az adatbázist. • Létrehozza az adattáblákat. • Létrehozza a szerepköröket a hozzájuk tartozó jelszavakkal. • Létrehozza a tárolt eljárásokat. • Beállítja a szerepkörök jogait a megfelelő tárolt eljárásokra. A telepítés menete • Indítsuk el az SQL Server Manager programot – Start/Minden program/Microsoft SQL Server 2005/SQL Server Managment Studio. • A középen megjelelő Connect to Server ablakban adjuk meg a rendszergazda jogú felhasználó nevét (Login) és jelszavát (Password), majd kattintsunk a Connect gombra. • Válasszuk a File/Open/File… menüt. • Tallózzuk ki a telepito.sql fájlt, és válasszuk az Open gombot. • Ismét megjelenik a Connect to Server ablak. Járjunk el a már megismert módon. • Futtassuk a scriptet az F5 billentyű megnyomásával. • A telepítés sikeres, ha középen alul a Messages ablakban csak a Command(s) completed successfully üzenetet látjuk.
Elektronikus napló
− 36 −
Magyary Gyula
Telepítés visszavonása A telepítés visszavonásához törölni kell az adatbázist és a szerepköröket. Ehhez használhatjuk például az Object Explorert az SQL Server Management Studio-ban. • Az adatbázis törléséhez: Válasszuk a fából a Databases/naplo elemet, majd nyomjuk meg a Del billentyűt. A megerősítő ablakban válasszuk az OK gombot. • A szerepkörök törléséhez: Válasszuk a fából a Security/Logins/naploadmin elemet, majd nyomjuk meg a Del billentyűt. A megerősítő ablakban válasszuk az OK gombot. • Ismételjük meg az előző lépét a szulo és a tanar elemeken is. Bejelentkezés engedélyezése tartományon kívülről Az MS SQL 2005 Server kétféle módon hitelesítheti a felhasználókat: • Az SQL szerver hitelesít. • A Windows 2003 tartományvezérlő hitelesít. Ehhez a felhasználói fióknak a tartományban léteznie kell.
Elektronikus napló
− 37 −
Magyary Gyula
Az MS SQL 2005 Server-en telepítése után az első lehetőség tiltva van. Mind a fejlesztés, mind az élesben történő üzembe helyezés egyszerűbb azonban, ha az SQL szerver hitelesít. (Nem kell egyeztetni a Windows 2003 Server rendszergazdájával.) Ezért az SQL szerveres hitelesítést választottam, amihez a tiltást fel kell oldani. Ehhez a következő lépéseket tegyük meg az SQL Server Managment Studio –ban: • Válasszuk az Object Explorer ablakban az SQL szerver nevéről (legfelső sor) nyíló helyi menü Properties menüpontját. • Válasszuk a bal oldali felső listából a Security lehetőséget. • Felül, jobb oldalon SQL Server and Windows Authentication mode opciót. • OK.
Kliens oldalon Telepítés A Visual Studio lehetőséget biztosít a programok telepítő változatának elkészítésére. Éltem ezzel a lehetőséggel, így a telepítéshez mindössze a setup.exe fájl elindítására van szükség. Szerver címének beállítása A kliensprogram tartalmazza a csatlakozáshoz szükséges ún. connection string-et, ami a csatlakozás paramétereit tartalmazza. A csatlakozás egyik paramétere a szerver címe, amihez a programnak csatlakoznia kell. Alapértelmezésben ez localhost-ra van állítva, mert a fejlesztéskor és előreláthatóan a szakdolgozat bemutatásakor is a szervergépet használjuk kliensnek is. Ha ezen változtatni akarunk, a kódban át kell írni a localhost szót (egyetlen helyen, a főablak kódjának 26. sorában) a szerver gép nevére vagy IP címére. Természetesen ekkor újra el kell készíteni a telepítő csomagot. Ez a megoldás elég körülményesnek látszik. Elképzelhető lenne egy olyan megoldás, hogy egy egyszerű szövegfájlba beírnám ezt az adatot, és onnan a
Elektronikus napló
− 38 −
Magyary Gyula
program, indulásakor beolvasná. Ezzel azonban a fejlesztő kiengedné a kezéből annak a lehetőségét, hogy kontrollálja, ki és mire használja a programját.
Tesztelés A tesztelés menete Mivel a program elég nagy, a tesztelését célszerű blokkokra bontva végezni. Két nagy blokkra lehet bontani a tesztelést a fejlesztői környezetek mentén: • Az adatbázis-kezelőben fejlesztett kódok tesztelése. • A Visual Studio-ban fejlesztett kódok tesztelése.
Az adatbázis tesztelése Az adatbázis tesztelését az SQL Server Managment Studio program segítségével végeztem. Ez a program az MS SQL Server 2005 telepítése után automatikusan rendelkezésre áll. A tesztelés célja azt ellenőrizni, hogy a telepit.sql fájlban található kód megfelelő-e. Szintaktikai ellenőrzés Az SQL Server Managment Studio képes volt lefuttatni a scriptet, tehát az szintaktikailag helyes. Adattáblák Az adattáblák ellenőrzéséhez összehasonlítottam az adatbázistervnél szereplő
táblákat
az
SQL
adattáblákkal. • Tábla és mezőnevek rendben. • Adattípusok rendben. • Kulcsok rendben.
menedzserben
grafikusan
megjeleníthető
Elektronikus napló
− 39 −
Magyary Gyula
Hibát nem találtam, az adattábla készítő scriptrészletet jónak fogadom el. Tárolt eljárások, jogosultságok A tárolt eljárások ellenőrzéséhez először felvittem INSERT SQL parancs segítségével pár adatot (tesztadatok.sql). Az adatokat igyekeztem úgy megválasztani, hogy lefedjék a lehetséges eseteket. A tárolt eljárások parancsait az SQL Server Manager parancssorában adtam ki. A lekérdezést végző eljárásokat a Messages ablakban visszaadott értékei alapján ellenőriztem. A változtató, törlő, és új adat megadását végző eljárások
ellenőrzése
az
adattáblák
grafikus
megjelenítése
utáni
szemrevételezéssel történt. A tárolt eljárásokkal együtt a hozzájuk tartozó jogok is könnyen ellenőrizhetők (más jogokra pedig nincs szükség!), ha az eljárást annak a szerepkörnek a nevében futtatjuk, aki a programban is használni fogja. Az eljárásokat szerepkörönként ellenőriztem. Ha az eljárás elágazást tartalmazott, törekedtem az elágazás minden ágát lefedni. Minden tárolt eljárást egyszeri lefedéssel hibátlannak találtam.
Kezelőfelület tesztelése A fejlesztés közben használt adatbázist teljes egészében letöröltem, majd a tesztadatok nélkül visszatöltöttem. Innen kezdve csak a program felületéről módosítottam adatokat. Abban a sorrendben haladtam, ahogy a programot is valószínűsíthetően használni fogják.
Elektronikus napló
− 40 −
Magyary Gyula
Adminisztrátor feladatai induláskor
Bejelentkezés Be- és kijelentkezés/Adminisztrátorként menüt választottam. Megjelent a bejelentkező
ablak.
Felhasználónév:
naploadmin,
jelszó:
naplókirály.
Bejelentkezve: adminisztrátor szöveg megjelent.
Tanárkezelő ablak tesztje A Feladatok/Tanárok kezelése lehetőséget választottam. Teljesen üres ablakot kaptam, alul az Új tanár és Bezárás gombok aktívak, Csak aktívak jelölőnégyzet bekapcsolva. Új tanár gombot választottam. Új tanár bevitele ablak megjelent. Név: Sehonnai Bitang Ember, Születési dátum: 1975. december 9., Felhasználónév: sehonnai, Jelszó: bitangka, Aktív: bekapcsolva. Rögzítés. Név:
Lompos
Ármin,
Születési
dátum:
1968.
november
10.,
Felhasználónév: lompos, Jelszó: arminka, Aktív: bekapcsolva. Rögzítés. Kilépés. Visszajutottam a tanárokat mutató ablakba. A felvitt 2 tanár ABC sorrendben megjelent. Új tanár gombot választottam. Az előző úton még négy tanárt vittem fel: Név
Születési dátum
Felhasználó név
jelszó
Aktív
Törlendő Róza
2006. dec. 25.
torlen
aznincs
Nem
Mák Virág
1966. dec. 25.
makv
gubocska
Igen
Szomorú Szonja
1959. dec. 25.
szomszon
csufi
Igen
Báj Vigyor
1982. április 21.
bajv
mosoly
Nem
Kilépés. Visszajutottam a tanárokat mutató ablakba. A 4 aktív tanár ABC sorrendben megjelent. A
Szűrés
és
státusz
keretben
kikapcsoltam
a
Csak
aktívak
jelölőnégyzetet. Megjelent mind a 6 tanár. Kijelöltem a középső listában Törlendő Rózát. Minden adatát módosítottam az Aktuális adat keretben. Név: Sikér Hedvig, Születési dátum: 1999. dec. 25., Felhasználónév: sikerh, jelszó: sikeresvok, Aktív: igen.
Elektronikus napló
− 41 −
Magyary Gyula
Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listán a megváltozott adatú rekord megjelent. Kijelöltem a középső listában Sikér Hedviget. Törlés. Figyelmeztető ablak megjelent. Igen. Az ablakból eltűnt Sikér Hedvig rekordja. Csak aktívak jelölőnégyzetet bekapcsoltam. Csak az aktív tanárok láthatók. Bezárás. Tanárkezelő felület eltűnt.
Osztálykezelő ablak tesztje A Feladatok/Osztályok kezelése lehetőséget választottam. Teljesen üres ablakot kaptam, alul az Új osztály és Bezárás gombok aktívak, Csak aktívak jelölőnégyzet bekapcsolva. Új osztály gombot választottam. Új osztály bevitele ablak megjelent. Osztály indulása: 2006. augusztus 31., betűjel: A, Képzési évek: 8, Első évfolyam: 5. Rögzítés. Osztály indulása: 2006. augusztus 31., betűjel: B, Képzési évek: 8, Első évfolyam: 5. Rögzítés. Kilépés. Visszajutottam az osztályokat mutató ablakba. A felvitt 2 osztály, mint 5.A és 5.B megjelent. Új osztály gombot választottam. Az előző úton még négy osztályt vittem fel: Indulás
Betűjel
Képzési évek
Első évfolyam
2005. aug. 31.
A
8
5
2005. aug. 31.
B
8
5
1993. aug. 31.
A
8
5
1993. aug. 31.
B
8
5
Kilépés. Visszajutottam a tantárgyakat mutató ablakba. Csak a 4 aktív osztály látszik. A
Szűrés
és
státusz
keretben
jelölőnégyzetet. Megjelent mind a 6 osztály.
kikapcsoltam
a
Csak
aktívak
Elektronikus napló
− 42 −
Magyary Gyula
Kijelöltem a középső listában az 1993-as indulású B osztályt. Az Aktuális adat keretben átírtam az adatait: Betűjel: C, évfolyam: 1994. aug. 31., Képzési évek: 4, Első évf.: 9. Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listán a megváltozott adatú rekord megjelent. Kijelöltem a középső listában az 1994-es indulású osztályt. Törlés. Figyelmeztető ablak megjelent. Igen. A középső keretből eltűnt az 1994-es osztály. Bezárás. Osztály felület eltűnt.
Tantárgykezelő ablak tesztje A Feladatok/Tantárgyak kezelése lehetőséget választottam. Teljesen üres ablakot kaptam, alul az Új tantárgy és Bezárás gombok aktívak. Új tantárgy gombot választottam. Új tantárgy bevitele ablak megjelent. Tantárgy neve: matematika. Rögzítés. Tantárgy neve: fizika. Rögzítés. Kilépés. Visszajutottam a tantárgyakat mutató ablakba. A felvitt 2 tantárgy ABC sorrendben megjelent. Új tantárgy gombot választottam. Az előző úton még négy tantárgyat vittem fel: élővilág, földrajz, nyelvtan, történelem. Kilépés. Visszajutottam a tantárgyakat mutató ablakba. A 6 tantárgy neve ABC sorrendben megjelent. Kijelöltem a középső listában az élővilágot. Az Aktuális adat keretben átírtam a nevét: biológia –ra. Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listán a megváltozott adatú rekord megjelent. Kijelöltem a középső listában a nyelvtant. Törlés. Figyelmeztető ablak megjelent. Igen. A középső keretből eltűnt a nyelvtan. Bezárás. Tantárgy felület eltűnt.
Elektronikus napló
− 43 −
Magyary Gyula
Tanár feladatai „tanévkezdéskor”
Bejelentkezés Be- és kijelentkezés/Tanárként menüt választottam. Megjelent a bejelentkező ablak. Felhasználónév: sehonnai, jelszó: bitangka. Bejelentkezve: sehonnai szöveg megjelent.
Tanári adatainak megváltoztatása A Feladatok/Felhasználói adatai menüt választottam. Megjelent a Tanár adatainak módosítása ablak. Átírtam az adatokat: Név – S.B.E., Születési dátum – 1975. december 20., Jelszó: ember, Jelszó ismét: bitang. Módosítás. Eltérő jelszóra utaló ablak megjelent. OK. Jelszó ismét: ember. Módosítás. Adatmódosítást nyugtázó ablak megjelent. OK. Megváltoztató ablak eltűnt. Ismét a Be- és kijelentkezés/Tanárként menüt választottam. Megjelent a bejelentkező ablak. Felhasználónév: sehonnai, jelszó: ember. Bejelentkezve: sehonnai szöveg megjelent.
Szülőkezelő ablak tesztje A Feladatok/Szülők kezelése menüt választottam. Üres ablakot kaptam, alul az Új szülő és Bezárás gombok aktívak, a Szűrő keret Tanár listájában a bejelentkezett tanár (S.B.E.) a kiválasztott elem. Új szülő gombot választottam. Új szülő bevitele ablak megjelent. Név:
Vanek
Ödön,
Születési
dátum:
1965.
december
26.,
Felhasználónév: vaneko, Jelszó: vaneko, Aktív: bekapcsolva. Rögzítés. Név: Kő Pál, Születési dátum: 1976. december 10., Felhasználónév: kop, Jelszó: kop, Aktív: bekapcsolva. Rögzítés. Kilépés. Visszajutottam a szülőket mutató ablakba. A felvitt 2 szülő ABC sorrendben megjelent. Új szülő gombot választottam. Az előző úton még négy szülőt vittem fel:
Elektronikus napló
− 44 −
Magyary Gyula
Név
Születési dátum
Felhasználó név
jelszó
Aktív
Törölt Elek
2006. dec. 26.
torolte
torolte
Nem
Nagy Éva
1966. dec. 12.
nagye
nagye
Igen
Kis Béla
1959. dec. 26.
kisb
kisb
Igen
Fa Géza
1982. április 22.
fag
fag
Nem
Kilépés. Visszajutottam a szülőket mutató ablakba. A 4 aktív szülő ABC sorrendben megjelent. A
Szűrés
és
státusz
keretben
kikapcsoltam
a
Csak
aktívak
jelölőnégyzetet. Megjelent mind a 6 szülő. Kijelöltem a középső listában Törölt Eleket. Módosítottam az adatait az Aktuális adat keretben. Név: Törölt Brúnó, Születési dátum: 1999. december. 26., Felhasználónév: toroltb, jelszó: toroltb, Felügyelet: Báj Vigyor, Aktív: igen. Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listáról a megváltozott adatú rekord eltűnt. (Mert nem sehonnai felügyeli.) A Szűrés és státusz keretben a Tanár listából a mind lehetőséget választottam. Törölt Brúnó megjelent a középső listában Kijelöltem a középső listában Törölt Brúnót. Törlés. Figyelmeztető ablak megjelent. Igen. Az ablakból eltűnt Törölt Brúnó rekordja. Csak aktívak jelölőnégyzetet bekapcsoltam. Csak az aktív szülők (4 db) láthatók. Bezárás. Tanárkezelő felület eltűnt. Beléptem tanárként lompos felhasználónévvel és arminka jelszóval. Majd az előzőekhez hasonló módon felvittem 3 szülőt a következő adatokkal: Név
Születési dátum
Felhasználó név
jelszó
Aktív
Sóhaj Manó
1976. dec. 26.
sohajm
sohajm
Igen
Kék Irén
1966. dec. 12.
keki
keki
Igen
Vas István
1959. dec. 26.
vasi
vasi
Igen
Beléptem tanárként makv felhasználónévvel és gubocska jelszóval. Majd az előzőekhez hasonló módon felvittem 3 szülőt a következő adatokkal:
Elektronikus napló
− 45 −
Magyary Gyula
Név
Születési dátum
Felhasználó név
jelszó
Aktív
Víz Elek
1972. dec. 21.
vize
vize
Igen
Vég Béla
1968. okt. 26.
vegb
vegb
Igen
Lost Ede
1970. nov. 26.
loste
loste
Igen
Tanulókezelő ablak tesztje Beléptem tanárként sehonnai felhasználónévvel és ember jelszóval. A Feladatok/Diákok kezelése menüt választottam. Üres ablakot kaptam, alul az Új szülő és Bezárás gombok aktívak, a Szűrő keret Osztály listájában a mind a kiválasztott elem, Csak aktívak jelölőnégyzet bekapcsolva. Új tanuló gombot választottam. Új tanuló bevitele ablak megjelent. Név: Kő Péter, Születési dátum: 1993. december 26., Szülő: Kő Pál, Osztály: 5.A, Aktív: bekapcsolva. Rögzítés. Név: Kő Éva, Születési dátum: 1993. december 26., Szülő: Kő Pál, Osztály: 5.A, Aktív: bekapcsolva. Rögzítés. Kilépés. Visszajutottam a tanulókat mutató ablakba. A felvitt 2 tanuló ABC sorrendben megjelent. Új tanuló gombot választottam. Az előző úton még négy tanulót vittem fel: Név
Születési dátum
Szülő
Osztály
Aktív
Törölt Mufurcz
1993. okt. 26.
Vanek Ödön
5.A
Nem
Patta Nóra
1992. dec. 31.
Nagy Éva
5.A
Igen
Kis Bubó
1993. dec. 15.
Kis Béla
5.A
Igen
Fa Béla
1993. április 12.
Fa Géza
5.A
Nem
Kilépés. Visszajutottam a szülőket mutató ablakba. A 4 aktív tanuló ABC sorrendben megjelent. A
Szűrés
és
státusz
keretben
kikapcsoltam
a
Csak
aktívak
jelölőnégyzetet. Megjelent mind a 6 tanuló. Kijelöltem a középső listában Törölt Mufurczot. Módosítottam az adatait az Aktuális adat keretben. Név: Törölt Hedvig, Születési dátum: 1999.
Elektronikus napló
− 46 −
Magyary Gyula
december. 26., Szülő: Fa Géza, Osztály: 6.B, Felügyelet: Báj Vigyor, Aktív: igen. Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listáról a megváltozott adatú rekord eltűnt. (Mert nem az 5.A –ba jár.) A Szűrés és státusz keretben az Osztály listából a mind lehetőséget választottam. Törölt Hedvig megjelent a középső listában Kijelöltem a középső listában Törölt Hedviget. Törlés. Figyelmeztető ablak megjelent. Igen. Az ablakból eltűnt Törölt Hedvig rekordja. Csak aktívak jelölőnégyzetet bekapcsoltam. Csak az aktív tanulók (4 db) láthatók. Bezárás. Tanulókezelő felület eltűnt. Beléptem tanárként lompos felhasználónévvel és arminka jelszóval. Majd az előzőekhez hasonló módon felvittem 4 tanulót a következő adatokkal: Név
Születési dátum
Szülő
Osztály
Aktív
Zöld Jolán
1993. okt. 26.
Kék Irén
5.B
Igen
Sóhaj Petra
1992. dec. 31.
Sóhaj Manó
5.B
Igen
Vas Ábel
1993. dec. 15.
Vas István
5.B
Igen
Vég Dóra
1993. április 12.
Vég Béla
5.B
Nem
Beléptem tanárként makv felhasználónévvel és gubocska jelszóval. Majd az előzőekhez hasonló módon felvittem 4 tanulót a következő adatokkal: Név
Születési dátum
Szülő
Osztály
Aktív
Lost Hilda
1992. okt. 25.
Lost Ede
6.A
Igen
Víz Igor
1991. dec. 13.
Víz Elek
6.A
Igen
Vas Irén
1992. dec. 30.
Vas István
6.A
Igen
Vanek Géza
1992. április 11.
Vanek Ödön
6.A
Igen
Beléptem tanárként szomszon felhasználónévvel és csufi jelszóval. Majd az előzőekhez hasonló módon felvittem 4 tanulót a következő adatokkal: Név
Születési dátum
Szülő
Osztály
Aktív
Zöld Ferenc
1992. okt. 25.
Kék Irén
6.B
Igen
Sóhaj Béla
1991. dec. 30.
Sóhaj Manó
6.B
Igen
Elektronikus napló
− 47 −
Magyary Gyula
Vég Irén
1992. dec. 13.
Vég Béla
6.B
Nem
Kő Gizella
1992. április 11.
Kő Pál
6.B
Igen
Tanár feladatai tanév közben
Haladás kezelő ablak tesztje Beléptem tanárként sehonnai felhasználónévvel és ember jelszóval. A Feladatok/Órák kezelése menüt választottam. Üres ablakot kaptam, alul az Új óra és Bezárás gombok aktívak, a Szűrő keret Tanár listájában a bejelentkezett tanár neve (S.B.E) a kiválasztott elem, Osztály: 6.A, Tantárgy: mind, Ettől: 2006. aug. 25, Eddig 2007. július 10. Új óra gombot választottam. Új óra bevitele ablak megjelent. Dátum: 2006. szeptember 1., Óra a napon: 1, Tantárgy: Biológia, Osztály: 5.A, Tartalom: Poloskák. Rögzítés. Dátum: 2006. szeptember 3., Óra a napon: 4, Tantárgy: Biológia, Osztály: 5.A, Tartalom: Galócák. Rögzítés. Kilépés. Visszajutottam az órákat mutató ablakba. Az Osztály listából az 5.A –t választottam. A felvitt 2 óra óraszám szerinti csökkenő sorrendben megjelent. Új óra gombot választottam. Az előző úton még öt órát vittem fel: Óra a Dátum
Tantárgy
Osztály
Tartalom
Helyettesítés
napon 3
2006.09.01.
történelem
5.A
Kőbaltácska
Nem
2
2006.09.04.
történelem
5.A
Ősember
Nem
4
2006.09.03.
földrajz
5.A
A térkép
Igen
1
2006.09.02.
biológia
6.B
Fenyők
Nem
5
2006.09.04.
biológia
6.B
Tuják
Nem
Kilépés. Visszajutottam az órákat mutató ablakba. Az Osztály listából rendre az 5.A-t, a 6.B-t, majd a mind-et választottam. Mindhárom esetben a Tantárgyak listából a történelmet, a biológiát, a földrajzot, a matematikát és a mind-et választottam. Minden esetben csak a feltételeknek megfelelő órákat láttam a középső keretben.
Elektronikus napló
− 48 −
Magyary Gyula
Az Ettől: mezőbe kiválasztottam a 2006.09.02, az Eddig mezőben a 2006.09.03 dátumot. Az Osztály és Tantárgy listák mind értéken álltak. Csak a feltételnek megfelelő 3 db óra maradt a középső listán. Kijelöltem a középső listában A térkép témájú órát. Módosítottam az adatait az Aktuális adat keretben. Téma: A ló, dátum: 2006. szeptember 4., Óra a napon: 3, Osztály: 6.A, Tanár: Báj Vigyor, Tantárgy: Biológia, Helyettesítés: nem. Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listáról a megváltozott adatú rekord eltűnt. (Mert nem sehonnai jegyezte be.) A Szűrés és státusz keretben a Tanár listából a mind lehetőséget választottam, az Ettől mező értékét 2006. szept. 1.-re, az eddig mező értékét 2006.szept. 4.-re állítottam. A ló témájú óra megjelent a középső listában. Kijelöltem a középső listában A ló témájú órát. Törlés. Figyelmeztető ablak megjelent. Igen. Az ablakból eltűnt A ló rekordja. Bezárás. Tanárkezelő felület eltűnt. Beléptem tanárként lompos felhasználónévvel és arminka jelszóval. Majd az előzőekhez hasonló módon felvittem a következő órákat: Óra a Dátum
Tantárgy
Osztály
Tartalom
Helyettesítés
napon 2
2006.09.01.
matematika 5.A
Összeadás
Nem
1
2006.09.02.
matematika 5.A
Kivonás
Nem
2
2006.09.03.
matematika 5.A
Gyakorlás
Nem
5
2006.09.02.
matematika 6.B
Szorzás
Nem
4
2006.09.04.
matematika 6.B
Osztás
Nem
Mulasztás kezelő ablak tesztje Beléptem tanárként sehonnai felhasználónévvel és ember jelszóval. A Feladatok/Mulasztások kezelése menüt választottam. Üres ablakot kaptam, alul az Új mulasztás és Bezárás gombok aktívak, a Szűrő keret Tanuló listájában, és az Osztály listában mind olvasható, csak aktívak bekapcsolva, Ettől: 2006. aug. 25, Eddig:. 2007. július 10.
Elektronikus napló
− 49 −
Magyary Gyula
Az Osztály listából az 5.A –t választottam Új mulasztás gombot választottam. Új óra bevitele ablak megjelent. Dátum aktuális, Tanuló listában csak az 5.A tanulói, Tanár lista aktív eleme az aktuális tanár (S.B.E). Tanuló: Kis Bubó, Dátum: 2006. szeptember 2., Óra a napon: 1, Igazolt: igen. Rögzítés. Tanuló: Kő Éva, Dátum: 2006. szeptember 1., Óra a napon: 1, Késés: igen. Rögzítés. Kilépés. Visszajutottam a mulasztásokat mutató ablakba. Csak Kis Bubó mulasztása látszik. A Tanuló listából a mind –et választottam. A felvitt 2 mulasztás dátum szerinti csökkenő sorrendben megjelent. Új mulasztás gombot választottam. Az előző úton még öt órát vittem fel: Tanuló
Dátum
Óra a napon
Igazolt
Késés
Kő Péter
2006.09.01.
1
nem
igen
Kő Péter
2006.09.02.
1
nem
igen
Kis Bubó
2006.09.02.
2
igen
nem
Kis Bubó
2006.09.02.
3
igen
nem
Kis Bubó
2006.09.02.
4
igen
nem
Kilépés. Visszajutottam a mulasztásokat mutató ablakba. A Tanuló listából rendre Kis Bubót, Kő Pétert, Kő Évát, Patta Nórát, mind –et választottam. Minden esetben csak a feltételnek megfelelő mulasztásokat láttam a középső keretben. Az Ettől: mezőbe kiválasztottam a 2006.09.01, az Eddig mezőben a 2006.09.02. dátumot. A Tanuló lista mind értéken állt. Csak a feltételnek megfelelő mulasztások maradtak a középső listán. Kijelöltem a középső listában Kő Péter 2006.09.01 1.órai késését. Módosítottam az adatait az Aktuális adat keretben. Óra a napon: 5, dátum: 2006. szeptember 2., Tanuló: Kő Éva, Tanár: Báj Vigyor, Igazolt: Igen, Késés: nem.
Elektronikus napló
− 50 −
Magyary Gyula
Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listán a módosított rekord látszik. Kijelöltem a középső listában Kő Éva 2006.09.02. 5. órai hiányzását. Törlés. Figyelmeztető ablak megjelent. Igen. Az ablakból eltűnt a törölt rekord. Bezárás. Mulasztáskezelő felület eltűnt. Beléptem tanárként lompos felhasználónévvel és arminka jelszóval. Kiválasztottam az Osztály listából a 6.B –t. Majd az előzőekhez hasonló módon felvittem a következő mulasztásokat: Tanuló
Dátum
Óra a napon
Igazolt
Késés
Kő Gizella
2006.09.01.
1
nem
igen
Sóhaj Béla
2006.09.02.
1
igen
nem
Sóhaj Béla
2006.09.02.
2
igen
nem
Sóhaj Béla
2006.09.02.
3
igen
nem
Sóhaj Béla
2006.09.02.
4
igen
nem
Jegy kezelő ablak tesztje Beléptem tanárként sehonnai felhasználónévvel és ember jelszóval. A Feladatok/Jegyek kezelése menüt választottam. Üres ablakot kaptam, alul az Új jegy és Bezárás gombok aktívak, a Szűrő keret Tanuló, Tantárgy és Osztály listában mind olvasható, csak aktívak bekapcsolva, Ettől: 2006. aug. 25, Eddig 2007. július 10. A Osztály listából az 5.A –t választottam. Új jegy gombot választottam. Új jegy rögzítése ablak megjelent. Dátum aktuális, Tanuló listában csak az 5.A tanulói, Tanár lista aktív eleme az aktuális tanár (S.B.E), Tantárgy lista aktív eleme a történelem (S.B.E azt tanítja). Jegy: 5, Leírás: Gyík, Tanuló: Kis Bubó, Tantárgy: biológia, Dátum: 2006. szeptember 30. Rögzítés. Jegy: 3, Leírás: Keszeg, Tanuló: Kis Bubó, Tantárgy: biológia, Dátum: 2006. október 15. Rögzítés.
Elektronikus napló
− 51 −
Magyary Gyula
Kilépés. Visszajutottam a mulasztásokat mutató ablakba. A felvitt jegyek látszanak. A Tanuló lista Kis Bubóra, a tantárgy lista biológiára állt. Új jegy gombot választottam. Az előző úton még az alábbi jegyeket vittem fel: Jegy Leírás
Tanuló
Tantárgy
Dátum
3
Gyík
Kő Péter
biológia
2006. szeptember 30.
2
Keszeg
Kő Péter
biológia
2006. október 15.
4
Ősember
Kő Péter
történelem
2006. szeptember 25.
3
Fáraók
Kő Péter
történelem
2006. október 29.
3
Keszeg
Kő Éva
biológia
2006. október 15.
1
Fáraók
Kő Éva
történelem
2006. október 21.
Kilépés. Visszajutottam a mulasztásokat mutató ablakba. A Tanuló listából rendre Kis Bubót, Kő Pétert, Kő Évát, Patta Nórát, mind –et választottam. Minden esetben ezen belül a Tantárgy listában a történelem, biológia, matematika, mind lehetőségeket választottam. Mindenhol csak a feltételnek megfelelő jegyeket láttam a középső keretben. Az Ettől: mezőbe kiválasztottam a 2006.09.01, az Eddig mezőben a 2006.09.30. dátumot. A Tanuló és Tantárgy lista mind értéken állt. Osztálylista 5.A-n állt. Csak a feltételnek megfelelő jegyek maradtak a középső listán. Kijelöltem a középső listában Kő Péter 3-as Gyíkokra kapott jegyét. Módosítottam az adatait az Aktuális adat keretben. Jegy: 5, Leírás: Törtek, Tanuló: Kis Bubó, Tantárgy: matematika, Dátum: 2006. szeptember 25., Tanár: Báj Vigyor Módosítás. Figyelmeztető ablak megjelent. Igen. A középső listán a módosított rekord látszik. Kijelöltem a középső listában Kis Bubó matematika jegyét. Törlés. Figyelmeztető ablak megjelent. Igen. Az ablakból eltűnt a törölt rekord. Bezárás. Jegykezelő felület eltűnt.
Elektronikus napló
− 52 −
Magyary Gyula
Beléptem tanárként lompos felhasználónévvel és arminka jelszóval. Kiválasztottam az Osztály listából a 5.A –t. Majd az előzőekhez hasonló módon felvittem a következő jegyeket: Jegy Leírás
Tanuló
Tantárgy
Dátum
4
Összeadás
Kő Péter
matematika 2006. szeptember 28.
1
Kivonás
Kő Péter
matematika 2006. október 31.
3
Összeadás
Kis Bubó
matematika 2006. szeptember 28..
4
Kivonás
Kis Bubó
matematika 2006. október 31.
5
Összeadás
Kő Éva
matematika 2006. szeptember 28.
5
Kivonás
Kő Éva
matematika 2006. október 31.
Szülő feladatai
Bejelentkezés Be- és kijelentkezés/Szülőként menüt választottam. Megjelent a bejelentkező ablak. Felhasználónév: kop, jelszó: kop. Bejelentkezve: kop szöveg megjelent.
Szülő adatainak megváltoztatása A Feladatok/Felhasználói adatai menüt választottam. Megjelent a Szülő adatainak módosítása ablak. Átírtam az adatokat: Név – K.P., Születési dátum – 1975. december 20., Jelszó: palika, Jelszó ismét: pal. Módosítás. Eltérő jelszóra utaló ablak megjelent. OK. Jelszó ismét: palika. Módosítás. Adatmódosítást nyugtázó ablak megjelent. OK. Megváltoztató ablak eltűnt. Ismét a Be- és kijelentkezés/Szülőként menüt választottam. Megjelent a bejelentkező ablak. Felhasználónév: kop, jelszó: palika. Bejelentkezve: kop szöveg megjelent.
Elektronikus napló
− 53 −
Magyary Gyula
Jegy kezelő ablak tesztje A Feladatok/Jegyek kezelése menüt választottam. Kő Péter matematika jegyei vannak a középső listában. Az Aktuális adat keret inaktív (a szülő nem módosíthatja a jegyet), a középen kijelölt jegy részletes jellemzői megjelentek. A Szűrő keret Tanuló listájában Kő Péter, Tantárgy listájában matematika olvasható. A dátum mezők értéke: Ettől: 2006. aug. 25, Eddig 2007. július 10. A Tantárgy listából rendre a biológia, történelem, földrajz, matematika, mind lehetőségeket választottam. Mindig a feltételeknek megfelelő jegyeket láttam a középső listában. Az Ettől: mezőbe kiválasztottam a 2006.09.01, az Eddig mezőben a 2006.09.30. dátumot. A Tanuló és Tantárgy lista mind értéken állt. Csak a feltételnek megfelelő jegyek maradtak a középső listán. Bezárás. Jegykezelő felület eltűnt.
Mulasztás kezelő ablak tesztje A Feladatok/Mulasztások kezelése menüt választottam. Kő Péter mulasztásai vannak a középső listában. Az Aktuális adat keret inaktív (a szülő nem módosíthatja a mulasztásokat), a középen kijelölt mulasztás részletes jellemzői megjelentek. A Szűrő keret Tanuló listájában Kő Péter olvasható. A dátum mezők értéke: Ettől: 2006. aug. 25, Eddig 2007. július 10. A Tanuló listából rendre a Kő Péter, Kő Éva, Kő Gizella, mind lehetőségeket választottam. Mindig a feltételeknek megfelelő mulasztásokat láttam a középső listában. (mind esetében csak a Kő Pál gyerekeinek mulasztásait) Az Ettől: mezőbe kiválasztottam a 2006.09.01, az Eddig mezőben a 2006.09.30. dátumot. A Tanuló lista mind értéken állt. Csak a feltételnek megfelelő jegyek maradtak a középső listán. Bezárás. Mulasztáskezelő felület eltűnt.
Elektronikus napló
− 54 −
Magyary Gyula
További fejlesztési lehetőségek Tisztában
vagyok
vele,
hogy
a
program
több
szinten
is
továbbfejleszthető. A szakdolgozat beadásának idejére eddig a szintig sikerült kidolgozni. A főbb lehetőségek a következők lennének: • Lehetne beépíteni több adatellenőrzést. Minden adatot valamilyen szinten most is ellenőriz a program, de szabályos kifejezések (regular expressions) és saját kivételek írásával ezt tovább lehetne fejleszteni. • Az elektronikus napló kiegészíthető lenne az osztályok órarendjével, részletesebb nyilvántartással a tanárok, tanulók, szülők adataival, támogatások,
tankönyvrendelések,
különböző
vizsgák
(ECDL,
nyelvvizsga, előre hozott érettségik) tárolásával. • Kiegészíthető lenne tanári vagy adminisztrátori üzenetekkel (értesítések, szöveges fegyelmik). • Különböző statisztikák készítésének támogatása. Például: félév, év végi tanulmányi átlagok, hány tanár, tanuló jár az intézménybe, hány bukás volt, melyik tanár hány tanulót tanít, stb. (Az önkormányzatok kifogyhatatlanok az ötletekből!) • A
program
az
Interneten
át
jobban
használható
lenne,
ha
xmlwebszolgáltatások segítségével érné el a kliensprogram a szervert. Az xmlwebszolgáltatás a szabványos 80-as portot használja, így kevesebb probléma adódna a tűzfalak konfigurálásával. • Bővíteni lehetne a programot úgy, hogy webböngészővel is használható legyen. • Bővíteni lehetne a programot, hogy a szülő is tudjon visszajelezni az iskolának. (Például: digitális aláírásával hitelesíti, hogy a mulasztásokat és jegyeket tudomásul vette.)
Felhasznált irodalom Brandley L. Jones: C# mesteri szinten 21 nap alatt. Kiskapu KFT, 2004. Stephen Wynkoop: Microsoft SQL Server 7.0 kézikönyv. Kiskapu KFT. 2000.
Elektronikus napló
− 55 −
Magyary Gyula
Mellékelt fájlok telepito.sql – az Sql Serveren az adatbázist létrehozó fájl. tesztadatok.sql – a tárolt eljárások teszteléséhez használt adatokat tartalmazza feluletteszt.mdb – a felhasználói felület tesztelésekor létrejött adatok naplo.zip – a kódot tartalmazó könyvtár letömörítve. telepito.zip – a kliens oldali telepítőprogram letömörítve.