Szoftvertechnológia 8. gyakorlat. Tervezés. Tervezés A szoftver életciklus

Hasonló dokumentumok
3. Beadandó feladat dokumentáció

Szoftvertechnológia 2. gyakorlat. Projektdefiníció és elemzés Giachetta Roberto

Models are not right or wrong; they are more or less useful.

Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése Giachetta Roberto

Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Models are not right or wrong; they are more or less useful.

Programozási technológia II 3. előadás. Objektumorientált tervezés Giachetta Roberto

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Szoftvertechnológia 8. gyakorlat. Tervezés Giachetta Roberto

Nyilvántartási Rendszer

Programozási technológia

C++ programozási nyelv

DebitTray program Leírás

Adatbázis-kezelés Access XP-vel. Tanmenet

Programozási technológia 1.

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Az ErdaGIS térinformatikai keretrendszer

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

ServiceTray program Leírás

TERC V.I.P. hardverkulcs regisztráció

Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

FRISSÍTÉSI LEÍRÁS A WINIKSZ PROGRAMCSOMAGHOZ

e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez

ContractTray program Leírás

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

ABAP dictionary objektumok SAP adatmodell Táblák kezelése. Az SAP programozása 1. Tarcsi Ádám

Választó lekérdezés létrehozása

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Elektronikus ügyintézés /ügyintéző súgó. Az ügyintéző által végzendő munkafolyamat lépései:

Objektumelvű programozás

Felhasználói segédlet a Scopus adatbázis használatához

HVK Adminisztrátori használati útmutató

WordPress segédlet. Bevezető. Letöltés. Telepítés

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Név: Neptun kód: Pontszám:

PwC EKAER Tool felhasználói leírás május

Online adatszolgáltatás beállítása a Számlázás - vevő-szállító nyilvántartás programban (UJVSZ)

ESZR - Feltáró hálózat

Programozási technológia II 2. előadás. Specifikáció és követelménymenedzsment

Haladó irodai számítógépes képzés tematika

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

Online adatszolgáltatás beállítása a kettős, egyszeres könyvelés programban és a számlázóprogramban (UJEGYKE, UJEGYSZ, UJVSZ)

Online adatszolgáltatás beállítása a Kettős könyvelés programban (WUJEGYKE) 79/

Jelentkezési lap képző szervek részére

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Könyvtári nyilvántartás

Mobil Partner telepítési és használati útmutató

Felhasználói kézikönyv - Android kliens

Felhasználói kézikönyv. ÜFT szolgáltatás. Magyar Nemzeti Bank

Számítógépes Hálózatok. 5. gyakorlat

Táblázatkezelés Excel XP-vel. Tanmenet

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

Forrás és idéző közlemények felvitele importtal

NAV online számla regisztráció SAP rendszerhez

Adatbázis, adatbázis-kezelő

2 Access 2016 zsebkönyv

PHP-MySQL. Adatbázisok gyakorlat

Hiteles elektronikus postafiók Perkapu

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

Felhasználói segédlet a Web of Knowledge / Web of Science adatbázis használatához

Zimbra levelező rendszer

Az autorizáció részletes leírása

Foglalkozási napló a 20 /20. tanévre

KAMIONIRÁNYÍTÓ RENDSZER

Alapok (a K2D rendszer alapjai)

I-SZÁMLA KFT. VEVŐI FELHASZNÁLÓI FIÓK HASZNÁLATI ÚTMUTATÓ

NAV nyomtatványok kitöltésének támogatása

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Gyakorlati vizsgatevékenység A

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Közlemények kézi felvitele

Sú gó az ASIR/PA IR Públikús felú lethez

Labor leletező program

NAV online számla revol Express. Regisztráció a NAV online számlabejelentés oldalán

Technikai információk fejlesztőknek

OKTATÁSKUTATÓ ÉS FEJLESZTŐ INTÉZET TÁMOP-3.1.5/ Pedagógusképzés támogatása

Példa webáruház kialakítás rendszerdokumentáció

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Operációs rendszerek. Tanmenet

Gyakorlati vizsgatevékenység B

Új Nemzedék Központ. EFOP pályázatok online beszámoló felülete. Felhasználói útmutató

Oszkar.com Android alkalmazás v1.2

GLS címke kezelő bővítmény GLS online-hoz

Rendszerterv. Makoviczki András. Neptun: JJ26AR

Nokia N97_mini (Mail for Exchange) beállítása Virtualoso levelezésre

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Egyetemi könyvtári nyilvántartó rendszer

Felhasználói segédlet a Scopus adatbázis használatához

ECDL Információ és kommunikáció

Aranykor Önkéntes Nyugdíjpénztár Partner Portál

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Szoftvertechnológia 8. gyakorlat 2013.11.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A szoftver életciklus Minden szoftver rendelkezik életciklussal, amely meghatározza létét a feladat kitűzésétől a program használatának befejeztéig Az életciklus a következő fázisokra tagolható: 1. projektdefiníció (project definition) 2. elemzés (analysis) 3. tervezés (software architecture) 4. implementáció (implementation) 5. tesztelés (testing) 6. kihelyezés (deployment, release) 7. tréning és támogatás (training and support) 8. karbantartás (maintenance) ELTE IK, Szoftvertechnológia 8:2 A tervezési folyamat A tervezés a készülő szoftver absztrakt megvalósítása, azaz: a rendszer szerkezetének meghatározása, a programegységek, részegységek feltérképezése a programrészek pontos ábrázolása, funkcióinak meghatározása, ezek közötti reláció, kommunikáció megvalósítása (adatmodellek, áramlások feltérképezése) a feladatmegoldás folyamatának meghatározása, a benne részt vevő programegységekkel, azok állapotváltozásaival, illetve a kiváltó események meghatározása A tervezés során főként az UML csomag, osztály, állapot és szekvencia diagramokat használjuk fel ELTE IK, Szoftvertechnológia 8:3 A tervezési folyamat A program szerkezetének meghatározása: 1. a feladat elemezése, igények és követelmények feltérképezése, felhasználói esetek megállapítása 2. tárgykörök azonosítása, objektumok, majd osztályok hozzárendelése 3. interfészek, kapcsolódási pontok, adatkezelés megtervezése 4. a belső reprezentáció, működési elvek (algoritmusok) feltérképezése 5. végrehajtási folyamat, állapotváltozások meghatározása 6. implementáció specifikus jellemzők meghatározása ELTE IK, Szoftvertechnológia 8:4 Rendszerterv A tervezés eredménye a szoftver rendszerterve (software design description, SDD), amely tartalmazza: a program statikus szerkezetét, azaz a programegységek feladatát, részletes leírását és a köztük lévő relációkat a program dinamikus szerkezetét, azaz a program eseményeinek kiváltódását és hatásait, a programegységek állapotainak változását, az üzenetküldések megvalósítását a tárolt, kezelt, és eredményül adott adatok formáját, leírását a programok belső és külső interfészeinek leírását ajánlásokat az implementáció számára (stratégia, függőségek, programozási nyelv, tesztelési módszerek) Rendszerterv A rendszerterv meghatározó jellemzői: kohézió: egy programegységen belül a komponensek összetartozása, akkor jó, ha erős az összetartó erő összekapcsolás: a programegységek egymáshoz való kapcsolódása és függése, akkor jó, ha gyenge a függés módosíthatóság: mennyiben módosítható a teljes program az egységek, vagy részegységek cseréjével fejleszthetőség: új komponensekkel való bővíthetőség lehetősége, mennyire szabványosak a csatolási felületek bonyolultság: a terv áttekinthetősége és megérthetőségének a mértéke ELTE IK, Szoftvertechnológia 8:5 ELTE IK, Szoftvertechnológia 8:6 1

1. esettanulmány: a feladat 1. esettanulmány: Készítsünk programot, amely Marika néni kávézójának eladási nyilvántartását végigköveti. a kávézóban 3 féle étel (hamburger, ufo, palacsinta 10%-os áfával), illetve 3 féle ital (tea, narancslé, kóla 25%-os áfával) közül lehet választani az ételek ezen belül különfélék lehetnek, amelyre egyenként lehet árat szabni, és elnevezni, az italok árai rögzítettek minden rendelés több ételből és több italból áll, és sorszámmal rendelkezik, esetlegesen törzsvásárlói számmal, amelyet hagyhatunk üresen is lehessen lekérdezni egy adott rendelésre, egy adott törzsvásárlóra, illetve összesítve a bruttó, nettó összeget ELTE IK, Szoftvertechnológia 8:7 1. esettanulmány: felhasználói esetek Felhasználói esetek: Új rendelés felvétele: megadható a törzsvásárlói szám ital felvétele: elég kiválasztani a megadott italt étel felvétele: az étel típusát ki kell választani, majd meg kell adni pontos nevét, illetve bruttó árát Rendelések lekérdezése: adott törzsvásárlóhoz: a törzsvásárlói szám megadásával csak a lényegi adatok lekérdezése összes: valamennyi rendelésről a statisztikák lekérdezése egy rendelés: a rendelés azonosító (sorszám) megadásával valamennyi adat egy rendelésről ELTE IK, Szoftvertechnológia 8:8 1. esettanulmány: felhasználói esetek A program felépítése (1. fázis): a feladatban fellelhető tárgykörök a menü, a rendelések listája, a rendelés, valamint a rendelés elemei (italok, ételek) rendelés elemei (Item): hasonlóan viselkednek, ám némileg eltérően ezért megvalósításban öröklődést használunk, specializáljuk a 3 ételt, illetve italt rendelés (Order): tartalmazza az elemeket (mivel a rendelések száma változhat, ezért láncolt listát használ) menü (Menu): tartalmazza a rendeléseket (láncolt listában) ELTE IK, Szoftvertechnológia 8:9 ELTE IK, Szoftvertechnológia 8:10 A program felépítése (2. fázis): láncolt lista (List): külön megvalósítást igényel, sablonos típusként kétszeresen láncolt, fejelemes, aciklikus reprezentáció lehetőséget ad a beszúrásra (elején, végén, közben), törlésre, kiürítésre, és méret lekérdezésre a listaelem (ListItem) tárolja az adatot és a két mutatót a hibát kivétellel jelezzük, egy felsorolási típussal (Exceptions) a lista bejárható, a bejáró (Iterator) a szabványos műveleteket tárolja ELTE IK, Szoftvertechnológia 8:11 ELTE IK, Szoftvertechnológia 8:12 2

A program felépítése (2. fázis): rendelési elemek (Item): közös tulajdonságaik a típusnév, a bruttó és nettó ár az ételek esetén további adatok a konkrét név, illetve ár rendelések (Order): tulajdonságai az azonosító (ez automatikus), a törzsvásárlói szám lehetőséget ad új elem felvételére, nettó/bruttó érték lekérdezésére menü (Menu): biztosítja a mentést/betöltést, valamint a menüfunkciókat ELTE IK, Szoftvertechnológia 8:13 A program felépítése (3. fázis): a cím szerinti hivatkozásokat mutatókon keresztül kezeljük a listaelemet és a lista kivételeit beágyazott osztályként hozzuk létre, a listaelem egyszerűsége miatt lehet rekord (struct) a lista megfelelő használatához szükséges destruktor, másoló konstruktor, értékadás művelet, kiíró operátor, indexelő operátor a rendelési elem ősosztályban megvalósítunk egy virtuális destruktort ELTE IK, Szoftvertechnológia 8:14 ELTE IK, Szoftvertechnológia 8:15 ELTE IK, Szoftvertechnológia 8:16 1. esettanulmány: adatkezelés A program adatkezelésének megvalósításához egyetlen szöveges fájlra lesz szükségünk legyen ez kavezo.dat, és a programmal azonos könyvtárban helyezkedik el a fájl szerkezete a következőképpen épül fel: <rendelés azonosító>;<italok/ételek száma>; <törzsv. szám> <típus: h/u/p/t/n/k>;<étel neve>;<étel ára> <típus: h/u/p/t/n/k>;<étel neve>;<étel ára> <rendelés azonosító>;<italok/ételek száma>;<törzsv. szám> ELTE IK, Szoftvertechnológia 8:17 ELTE IK, Szoftvertechnológia 8:18 3

1. esettanulmány: dinamikus tervezés A program működése: a lista végrehajt tevékenységet, ugyanakkor állapotai lényegteleneket a program futása szempontjából a menü hajtja végre a tényleges tevékenységeket a különböző metódusok (menüpontok) futtatásával, mivel a metódusok futtatása jellemzi a program különböző állapotait, így az állapotokat a tevékenységekhez kötjük a menüfuttatás mellett az adatok betöltése, valamint kimentése is szerepet játszik a működésben, ezért külön részletezzük a teljes program állapotait, valamint a menüfuttatás állapotait 1. esettanulmány: dinamikus tervezés ELTE IK, Szoftvertechnológia 8:19 ELTE IK, Szoftvertechnológia 8:20 1. esettanulmány: dinamikus tervezés 1. esettanulmány: dinamikus tervezés ELTE IK, Szoftvertechnológia 8:21 ELTE IK, Szoftvertechnológia 8:22 1. esettanulmány: dinamikus tervezés ELTE IK, Szoftvertechnológia 8:23 2. esettanulmány: a feladat 2. esettanulmány: A feladat egy adatbázis alapú, grafikus felületű alkalmazás megvalósítása egy apartmanokkal foglalkozó utazási ügynökség számára, amelyben a felhasználóknak lehetősége van apartmanok foglalására. az adatbázisban városokra csoportosítva találunk épületeket, és épületen belül apartmanokat a programba a felhasználóknak be kell előbb jelentkeznie, így kapnak lehetőséget az adatok megtekintésére és szerkesztésére a felhasználó lehetőséget kap az egyes adatok megtekintésére és szerkesztésére, valamint apartmanok foglalására ELTE IK, Szoftvertechnológia 8:24 4

2. esettanulmány: felhasználói esetek ELTE IK, Szoftvertechnológia 8:25 A program felépítése (1. fázis): a program szerkezetét a Qt modell/nézet architektúrának megfelelően építjük fel az adatbázis kezelésére táblamodell osztályokat alkalmazunk, amelyek tartalmát megfelelő táblamegjelenítőkkel és egyéb vezérlőkkel jelenítjük meg a beépített architektúrát több ponton kiegészítjük, ahol egyedi viselkedésre/megjelenésre van szükségünk, továbbá megvalósítjuk a megjelenítő ablakokat bejelentkezést diaglógusablakban végezzük (LoginDialog) ELTE IK, Szoftvertechnológia 8:26 ELTE IK, Szoftvertechnológia 8:27 A program felépítése (2. fázis): főablak (MainWindow): egy MDI megjelenítőt (QMdiArea) tartalmaz, valamint egy menüsort legyártott akciókkal példányosítja a megfelelő táblamodelleket (setupmodels), illetve az épületek esetén egy egyedi megjelenítőt (BuildingTableDelegate) az akciók végrehajtása a megfelelő beágyazott ablak megnyitását kezdeményezi minden ablak ekkor kapja a táblamodell mutatókat, amelyeket a szerkesztésre felhasznál, így a táblákat nem töltjük be többszörösen a memóriába ELTE IK, Szoftvertechnológia 8:28 A program felépítése (2. fázis): táblamodellek: az AppartmentTableModel specialitása, hogy az apartman állapotát kijelölő mezőn keresztül tudja kezelni. a BuildingTableModel új oszlopokat definiál az állapot, apartman szám, valamint minimum/maximum árak kezelésére, továbbá adatellenőrzéseket végez. a RentTableModel letiltja a nézetek számára a szerkesztést, valamint a fizetési állapotot kijelölést formájában adja vissza ELTE IK, Szoftvertechnológia 8:29 ELTE IK, Szoftvertechnológia 8:30 5

2. esettanulmány: adatkezelés Adatkezelést adatbázis biztosítja a következő táblákkal: városok (city): azonosító, városnév; épületek (building): azonosító, név, város azonosító, utca, tengerpart távolság, tengerpart-típus (számként), jellemzők (binárisan összeillesztve), megjegyzés; apartmanok (appartment): azonosító, épület azonosító, szám, ágyak száma, pótágyak száma, felújítás alatt van-e; ügyfelek (customer): azonosító, név; foglalások (rent): azonosító, ügyfél azonosító, apartman azonosító, kezdődátum, befejező dátum, fizetett-e az ügyfél, összeg; ELTE IK, Szoftvertechnológia 8:31 ELTE IK, Szoftvertechnológia 8:32 2. esettanulmány: adatkezelés 2. esettanulmány: dinamikus tervezés A program működése: a program indításkor ellenőrzi az adatbázis-kapcsolatot, amennyiben az nem megfelelő, azonnal terminál a program elsőként a bejelentkező ablakot nyitja meg, amelyben a felhasználó megadhatja az azonosítót, illetve jelszót (ezek ellenőrzésre kerülnek az adatbázis alapján) amennyiben az azonosítás sikeres, megnyílik a főablak, amelyben elérhetővé válnak a menüpontok minden ablak megnyitásakor az alkalmazás betölti az adatokat az adatbázisból, ablak bezárásakor (vagy mentés gombra) pedig elmenti azokat (amennyiben sikerült) ELTE IK, Szoftvertechnológia 8:33 ELTE IK, Szoftvertechnológia 8:34 2. esettanulmány: dinamikus tervezés 2. esettanulmány: dinamikus tervezés ELTE IK, Szoftvertechnológia 8:35 ELTE IK, Szoftvertechnológia 8:36 6

2. esettanulmány: dinamikus tervezés 2. esettanulmány: dinamikus tervezés ELTE IK, Szoftvertechnológia 8:37 ELTE IK, Szoftvertechnológia 8:38 3. esettanulmány: a feladat 3. esettanulmány: A feladat egy olyan programrendszer (ETRImporter) megvalósítása, amellyel lehetőség nyílik különböző adatok betöltésére az ETR központi adatbázisába. a program felhasználói megadott formátumokban importálhatnak, illetve szerkeszthetnek adatokat a programban, melyet végül elküldhetnek egy központi szervernek, amely betölti az adatokat az adatbázisba az adatok táblázatos formában kerülnek betöltésre, azok utólagos szerkesztését is biztosítanunk kell a programban a táblák formátumát központilag szabályozzák, de a későbbiekben tetszőleges módosítás alá kerülhetnek, illetve új adatformátumok kerülhetnek a rendszerbe ELTE IK, Szoftvertechnológia 8:39 3. esettanulmány: felhasználói esetek ELTE IK, Szoftvertechnológia 8:40 A rendszert az alábbiaknak megfelelően építjük fel: a kliens (ImporterClient) egy grafikus felületű alkalmazás, amely biztosítja az adatok betöltését, kezelését, valamint hálózaton történő továbbítását a szerver oldali szolgáltatás (ImporterService) állandó jelleggel fut a háttérben a szerveren, a szolgáltatás feladata lesz a kliensek kéréseinek kiszolgálása, a kommunikáció, az adatok kezelése és bevitele az adatbázisban, illetve az eseménynaplózás a közvetítő program (ImporterAdmin) feladata korlátozódik az eseménynapló, valamint a csatlakoztatott kliensek megtekintésére, esetleges üzenetküldésre Célszerű a tábla típusainak kezelését külön könyvtárba kiemelni (TypeManagement), hiszen azt már három további komponens is használja Így a rendszer már összesen 4 komponensből áll ELTE IK, Szoftvertechnológia 8:41 ELTE IK, Szoftvertechnológia 8:42 7

A szerver gépen így megjelenik a közvetítő mellett a szolgáltatás, illetve ott és a kliens gépen is megjelenik a típuskezelés A kliens program funkcióit három csomag valósítja meg: felhasználói felület (GUISystem) adatimportáló (ImportSystem) adatkezelő (DataSystem) ELTE IK, Szoftvertechnológia 8:43 ELTE IK, Szoftvertechnológia 8:44 Az adatimportáló csomag a különböző formátumú fájlok betöltésére szolgál, a későbbiekben tetszőlegesen bővíthetőm megfelelően feldogozza a fájlt, és eltárolja a nyers adatokat ennek megfelelően szükség van egy általános osztályra, amely beolvassa (Open) és eltárolja (Data) az adatokat ebből származtatunk speciális feldolgozó osztályokat, amelyek a beolvasást felüldefiniálják ELTE IK, Szoftvertechnológia 8:45 ELTE IK, Szoftvertechnológia 8:46 Az adatkezelő csomag az adatok táblázatos kezeléséért, valamint a kommunikáció lebonyolításáért felel a kommunikációs osztály (Connection) feladata a kapcsolat létrehozása (Connect) TCP kapcsolattal SSL titkosítást alkalmazva, tetszőleges adat feltöltése (SendData), letöltése (ReadData) az összes adat felügyeletét egy adatkezelő osztályra bízzuk (DataHandler), amely kezeli a táblákat (TableObject) a tábla, és annak sorainak, oszlopainak típusleírását külön osztályokra bízzuk (TableType, RowType, Column) a helyes formátum kialakítását külön osztályra bízzuk (DataFormat), amely ezt statikus műveletekkel végzi ELTE IK, Szoftvertechnológia 8:47 ELTE IK, Szoftvertechnológia 8:48 8

A felhasználói felület csomagja a felhasználói interakció kezelésére szolgál a felhasználói felület több ablakból, amelyeknek megfeleltetünk egy-egy osztályt, és minden benne szereplő vezérlőnek egy-egy eseménykezelő alprogramot tartalmazza az adatimportáló, illetve adatkezelő alrendszer hivatkozásait attribútumként a következő feladatra kellenek ablakok: indítóablak (StartForm), főablak (MainForm), beállítások (SettingsForm), új tábla létrehozása (NewTableForm), táblatípusok megjelenítése (TypesForm) ELTE IK, Szoftvertechnológia 8:49 ELTE IK, Szoftvertechnológia 8:50 3. esettanulmány: adatkezelés A rendszer működése során 4 ki-, és bemeneti csatornát használ: adatok lokális mentése a kliens programban: használjunk szérializációt, azaz az adattáblák adatait közvetlenül az objektumorientált felépítésnek megfelelően írjuk ki kommunikáció a kliens és a közvetítő között: használjunk szabványos TCP kapcsolatot, amelyen ASCII formátumú adatsorozatok tartalmazzák az adatokat az adatformátumokat leíró fájl, amely XML formátumban tárolja a különböző tábladefiníciókat, és sorszerkezeteiket adatok mentése az adatbázisba: definiáljuk a megfelelő átmeneti táblákat, valamint a feldolgozó tárolt eljárásokat 3. esettanulmány: adatkezelés Hálózati kommunikáció: a kapcsolat során a kliens, illetve a közvetítő üzeneteket küldenek egymásnak a hálózaton keresztül, TCP kapcsolat segítségével, a kliens elküldi üzeneteit, majd adott ideig vár a válaszra a titkosítás érdekében az azonosító adatokra alkalmazzunk MD5 kódolást, illetve a csatorna kommunikációjára használjunk SSL protokollt a közvetítő állandóan hallgatózik a hálózaton, és várja az új üzenet megérkeztét, a beérkező üzenetek egymás után kerülnek feldolgozásra ELTE IK, Szoftvertechnológia 8:51 ELTE IK, Szoftvertechnológia 8:52 3. esettanulmány: adatkezelés adattovábbítás: a kliens üzenetek formájában küldi el a teljes táblát, benne az azonosító számával és a lekérdezés típusával amennyiben a kliens nem kap választ adott időn belül egy módosítás eltárolására, akkor a küldés sikertelen üzenetszintaxis: egy üzenetkóddal indul, amely megadja az üzenet típusát, a tartalmi elemeket ;-vel választjuk el egymástól ELTE IK, Szoftvertechnológia 8:53 3. esettanulmány: adatkezelés Adatbázis kommunikáció: a közvetítő csak a fenntartott táblákat használja az ETR adatbázisában, azok feldolgozását tárolt eljárások végzik a tárolt eljárások hiba, összeütközés, ellentmondás, vagy hiányzó adat esetén szemantikus hibát jeleznek (soronként), amelyet a közvetítő visszaküld a kliensnek minden adatformátum egy, vagy több saját táblával rendelkezik az adatkezeléshez ETR_IMPORTER_TEMP_<táblatípus név>_p<sorszám> elnevezés konvecióval ezen felül vannak állandó táblák, amelyek a rendszer működéséhez szükségesek ELTE IK, Szoftvertechnológia 8:54 9

3. esettanulmány: adatkezelés ELTE IK, Szoftvertechnológia 8:55 3. esettanulmány: dinamikus tervezés A kliens program indulási folyamata: kapcsolat létrehozása a közvetítővel, felhasználó bejelentkeztetése táblatípusok frissítése, amennyiben szükséges adatkezelő objektum inicializálása a kapcsolattal korábbról megmaradt táblák ellenőrzése és betöltése továbblépés engedélyezése, amennyiben a folyamat sikerrel járt, hibák esetén csak kiléptetés engedélyezése Sikertelen kapcsolódás, vagy adatforgalom esetén a kapcsolatépítés, és a táblatípus frissítés minden feltöltés kezdeményezésre megismétlődik ELTE IK, Szoftvertechnológia 8:56 3. esettanulmány: dinamikus tervezés ELTE IK, Szoftvertechnológia 8:57 10