52
Szakdolgozat Nyilvántartó szoftver pálinka és bor főzéséhez Készítette: Tőkés Máté Témavezető: dr. Kovács László Miskolci Egyetem, 2017

Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Szakdolgozat

Nyilvántartó szoftver pálinka és bor főzéséhez

Készítette:

Tőkés Máté

Témavezető:

dr. Kovács László

Miskolci Egyetem, 2017

Page 2: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

2

Tartalomjegyzék 1. Bevezetés .............................................................................................................. 4

Témaválasztás indoklása .............................................................................................. 4

2. Feladat lépései ....................................................................................................... 5

Követelmény elemzés ................................................................................................... 5

Architektúra ................................................................................................................... 5

Tervezési lépések ......................................................................................................... 5

3. Előzmények ........................................................................................................... 6

3.1 Hasonló rendszerek ................................................................................................ 6

3.1.2 Softlego ............................................................................................................ 6

3.2 Technológiai alapok ...............................................................................................10

3.2.1 Webes alkalmazások .......................................................................................10

3.2.2 Desktop alkalmazások .....................................................................................14

3.3 Felhasznált Technológiák .......................................................................................18

3.3.1 Eclipse .............................................................................................................18

3.3.2 Java .................................................................................................................21

3.3.3 MVC .................................................................................................................25

3.3.4 Adatbázis – SQL ..............................................................................................27

3.4 Döntés ....................................................................................................................31

4. Rendszerterv .........................................................................................................32

4.1 Funkcionális követelmény specifikáció ...................................................................32

4.1.1. Általános követelmények ................................................................................32

4.1.2. Működés leírása ..............................................................................................32

4.2 Diagramok ..............................................................................................................38

4.2.1 UML diagram ...................................................................................................38

5. Tesztelés ...............................................................................................................41

5.1 Manuális tesztelés ..................................................................................................41

Felhasználói teszt ........................................................................................................41

6. További lehetőségek ....................................................................................................43

6.1 Platform bővítés .....................................................................................................43

6.2 Felületsémák kialakítása – testraszabható kinézet .................................................43

6.3 Többnyelvűsítés .....................................................................................................43

6.4 Reszponzivitás .......................................................................................................43

7 Összegzés ....................................................................................................................44

7.1 Személyes vélemény -végszó ................................................................................44

Page 3: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

3

8. Summary .....................................................................................................................45

8.1 Personal opinion – conclusion ................................................................................45

Köszönet nyilvánítás ........................................................................................................46

Irodalomjegyzék, hivatkozások ........................................................................................47

Mellékletek .......................................................................................................................48

Page 4: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

4

1. Bevezetés

Témaválasztás indoklása

A szoftver alapja egy technikai kísérlet, ami arra szolgál, hogy asztali applikáció

készítéséhez kipróbáljam a szerintem legmegfelelőbbet, annak grafikai

lehetőségeivel.

A feladat egy olyan asztali applikáció készítése és bemutatása egyszerű példákon

keresztül, ami egy pálinka, illetve bor főzésénél adminisztratív feladatokat,

valamint az egyes személyek és munkák nyilvántartását hivatott ellátni. A szoftver

nyomon követi a főzések eredményességeit statisztikailag különböző időszakos

bontásokban, valamint tartalmaz egy adminisztrációs felületet is, ahonnan a

szoftverhez tartozó részek kezelhetőek. Természetesen demo adatokat

felhasználva.

Az ötletet onnan merítettem, hogy egy pálinkafőzés alkalmával találkoztam egy

applikációval, melyet a főzőmester a tevékenysége adminisztrációjához használt.

Ahogy beszélgettünk vele az eresztésre várva említette, hogy nincs megelégedve

a programmal. Így arra gondolta, hogy ez egy remek kihívás számomra.

Kitűzött célok:

● A szoftver könnyen átlátható és kezelhető legyen, az adott témában laikus

személy számára is

● Elég komplex legyen ahhoz, hogy az igényeket maximálisan kiszolgálja

● Felhasználóbarát felülettel rendelkezzen, illetve az adott funkciók és

lehetőségek egyszerűen elérhetőek legyenek

● Tartozzon hozzá egy adminisztrátor felület, ahol az egyes - felhasználó által

felmerülő igényeket - a program karbantartója gyorsan és hatékonyan ki

tudja szolgálni

Page 5: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

5

2. Feladat lépései

Követelmény elemzés

Alapvetően a program követelménye egy képzeletbeli minta rendszer, amit

részben valós adatok alapján, részben pedig külső céggel való konzultáció alapján

készítettem el.

Architektúra

Már a program ötlete kapcsán teljesen körvonalazódott, hogy Java Swing-ben

fogom megírni, mivel a Java nyelven ez az egyik UI, ami alkalmas asztali

alkalmazások készítésére.

A struktúráltságnál fontosnak gondoltam az átláthatóságot, így egy MVC alapú

felépítést használtam. (bővebb információ az 5.2 pontban)

Tervezési lépések

Mivel a program megtervezése Use-Case diagramokkal a legegyszerűbb így én

sem választottam más egyéb módot, mint ezek megrajzolását. (bővebben a

4.2.1.2 pontban)

Page 6: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

6

3. Előzmények

3.1 Hasonló rendszerek

3.1.2 Softlego[1][M3]

3.1 Softlego

Cefre átvétel

A bérfőzető által behozott cefre átvételére szolgáló programrész segítségével az

átvett cefre mennyiségét rögzíti, és követni lehet a tárolását a kifőzés

megkezdéséig. Erről egy átvételi bizonylat készül, melynek egy példányát a

bérfőzető kapja meg. A bérfőzéskor A bérfőzött pálinka előállítása lapon ennek a

gyümölcscefre átvételinek az azonosító száma kerül rögzítésre.

Elérési útvonal:

Forgalom Beszerzés Enter

1. Belépés a bejövő bizonylat ablakba. A „Forgalom” menüben a „Bizonylat”

almenüre állva az <Enter> billentyűt megnyomni.

Page 7: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

7

2. A megjelenő ablaknak a jobb felső sarkában a legördülő menüt a „Vételi jegy”-

re kell állítani

3. A bérfőzető nevét ki kell választani. (Ha nincs benne az ügyfelek között, akkor

előtte fel kell venni az ügyféltörzsbe.)

4. A „Tétel felvitel” nyomógombra állva majd az <Enter> billentyűt lenyomva belép

a felvitel ablakba. (ld. 3.2 ábra)

5. A felvitel ablakban a „Felvitel” nyomógombbal lép a tételsorba.

6. A tételsorban kell felvinni az átvett cefrét. (ld. 3.3 ábra)

7. A raktári kódnál megadható a tároló tartály is.

8. Amikor a tételeket rögzítették, akkor „ESC” billentyűvel visszaléphet a bejövő

bizonylat ablakba, ahol a „nyomtat” nyomógombbal indíthatja a mentést és a

nyomtatást

9. Jóváhagyás: „Az adatokat menthetem?” Igen

10. Jóváhagyás: „Az árut most tegyem a raktárba?” Igen

11. Nyomtat ablak jelenik meg és ott a „Nyomtat” nyomógombra elindítja

3.2 Bejövő bizonylat

Page 8: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

8

3.3 Felviteli ablak

Bérfőzés, származási igazolvány

A bérfőzésről a jogszabályoknak megfelelő nyilvántartást kell vezetni. A

származási igazolvány kitöltését a bérfőzés megkezdésekor el kell kezdeni.

nyilvántartást a pálinkafőzésről. Először ki kell választani azt a cefre átvételit,

amelyikből a főzés történik.

Elérési útvonal:

Forgalom -> Származási -> Enter

1. Belépés a bérfőzési modulba. A „Forgalom” menüben a „Származási”

almenüre állva az <Enter> billentyűt megnyomni. (ld. 3.4 ábra)

2. A megjelenő ablakban meg kell nyomni az <Enter> billentyűt majd a

megjelenő listából kiválasztani a cefre átvételi számát.

3. 3. A további adatokat értelemszerűen megadni.

4. 4. A lista részben a főzéshez kapcsolódó adatokat kell megadni. Három

sort lehet maximum felvinni.

5. 5. Amikor a tételeket rögzítették, akkor „ESC” billentyűvel visszaléphet a

„nyomtat” nyomógombra. Azt meg kell nyomni az <Enter> billentyűvel a

mentéshez és nyomtatáshoz.

Page 9: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

9

6. 6. Jóváhagyás: „Az adatokat menthetem?” Igen

7. 7. Nyomtat ablak jelenik meg és ott a „Nyomtat” nyomógombra elindítja

3.4 Számlázás

Page 10: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

10

3.2 Technológiai alapok

Révén, hogy az egyetemen Java tanulmányokat folytattam, valamint ezen a

területen is dolgozom, így kézenfekvőnek láttam kifejezetten a Java-t felhasználni

és ennek kapcsán utánajárni a Java alapú technológiáknak.

3.2.1 Webes alkalmazások

3.2.1.1 Spring[2]

A Spring egy nyílt forráskódú, komponens

összeillesztést megvalósító Java alkalmazás

keretrendszer.

„Az első változatát Rod Johnson készítette el

és Apache 2.0 licenc alapon 2003. júniusában

jelent meg. Ezt követően az első stabil, 1.0-s

verziót 2004. márciusban adták ki. A Spring 1.2.6

keretrendszer Jolt produktivitási – és JAX

innovációs díjat nyert.”

A keretrendszer magját alkotó szolgáltatásokat főként Java applikációk

fejlesztésére alkalmazzák a programozók. Ugyanakkor a Java EE platformra is

hozzáférhetőek a bővítményei, amelyek web-alkalmazás fejlesztésében

segédkeznek. Nincs külön specifikált fejlesztési modellje, hanem az Enterprise

JavaBean (EJB) modell kiegészítése-, helyettesítője-, vagy alternatívájaként lett

elterjedt a Java fejlesztők között.

3.5 Spring logo

Page 11: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

11

3.6 Spring fejlesztői környezet

Modulok:

A Spring keretrendszer több önálló modulból tevődik össze, amelyek az alábbi

szolgáltatásokat biztosítják a fejlesztők számára:

Inversion of control konténer: a Java objektumok életciklusának menedzselése

és az alkalmazás-komponensek testreszabása.

A szemlélet orientált programozási minta követésének lehetősége.

Adatelérés: lehetőség van relációs adatbázis-kezelő rendszerek JDBC

segítségével történő elérésre, és objektum-kapcsolat leképzések, NoSQL

beépítésére.

Tranzakciókezelés: többféle tranzakció kezelő API-t tartalmaz.

Modell-nézet-vezérlő szabvány: egy HTTP- és servlet alapú keretrendszer

segítségével valósítható meg, amelyet arra hoztak létre, hogy kiegészíthetők

és személyre szabhatóak legyenek a webszolgáltatások

Távoli eljáráshívás kezelő keretrendszer: biztosítja a távoli eljárás(RPC) alapú,

hálózaton keresztül törtvégbemenő Java objektum importokat és exportokat.

Kötegelési eljárás támogatása.

Page 12: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

12

Azonosítás és azonosságkezelés: biztonsági folyamatok konfigurálása, amit a

Spring projektekhez tartozó, Spring Security alprojekt biztosít a különféle

protokollok és módszerek felhasználásával.

Üzenetkezelés: a JMS API-n keresztül végrehajtott általános üzenetkezelés

továbbfejlesztése érhető el.

Tesztelés: segítséget nyújt a unit- és az integrációs teszt létrehozására.

3.7 Spring annotációk

Page 13: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

13

3.2.1.2 ExtJS ( Extended JavaScript ) [3]

Az ExtJS egy, a Sencha által

kifejlesztett, MVVM/MVC architektúrát

magában foglaló JavaScript

keretrendszer, üzleti

webalkalmazások fejlesztésére. Teljes

böngésző és platformfüggetlenséget garantál (Firefox, IE 8+, Chrome, Safari 6+,

Safari/iOS 6+, Chrome/Android 4.1+, IE 10+/Win 8).

A komplexitása és OOP megközelítése végett inkább üzleti célú weboldalak

készítéséhez hozták létre, ennek ellenére lehetőséget biztosít dom manipulálásra,

animációkra, valamint minden egyéb, a többi JavaScript library segítségével

megvalósítható műveletre.

Segítségével egyszerűen és gyorsan lehet single-page adminisztrációs felületeket

létrehozni. A szerveres kommunikációt támogatja XML, HTML és JSON formában

is, erre külön proxy osztályokat hoztak létre.

Az ExtJS hatalmas online könyvtárral rendelkezik az egyes komponensekről és

azok paramétereiről/metódusairól.

3.9 ExtJs weboldal

3.8 ExtJs logo

Page 14: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

14

3.2.2 Desktop alkalmazások

3.2.2.1 Swing[4]

Az Abstract Windowing Toolkit (magyarul absztrakt ablak-eszközkészlet) vagy

röviden AWT egy, a Java programozási nyelvben található ablakkezelésre és

grafikus felhasználói felületek kreációjára szolgáló komponensgyűjtemény. Az

AWT a JFC része, a Java osztályhierarchiában a java.awt helyen található.

Az AWT az OS magas szintű, grafikai komponenseket megjelenítő szubrutinjait

használja fel a saját komponensei megjelenítéséhez, ezért egyéb Java

osztályoktól eltérően biztosít platform független absztrakciós réteget. Az AWT-ben

létrehozott applikációk megjelenése különböző operációs rendszereken, akár

teljesen eltérő is lehet. Emiatt kezdetben, amíg nem volt alternatívája, az AWT-t a

Java egyik leggyengébb részének tartották.

A JDK 2-es verziójának kiadása után a Spring nagyrész kiszorította az AWT-t.

Ez részben az AWT-re épülő, jóval fejlettebb komponensgyűjtemény, ami

alacsony szintű szubrutinokon keresztül maga rajzolja meg a grafikus

komponenseit, így a vizualizációja független az OS-től.

3.10 Swing UI

Page 15: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

15

3.2.2.2 FX[5]

A Java FX egy szoftver platform asztali alkalmazások készítéséhez, mint a rich

internet applications ( RIAs ), ami az eszközök széles variációin futtatható. Azért

hozták létre, hogy kiváltsa a Swing-et, mint az általános GUI könyvtár a JAVA SE-

ben, de mind kettő implementálásra került. Támogatja az asztali számítógépeket,

valamint a web böngészőket Microsoft Windows, Linux és macOS operációs

rendszerekhez.

Korábban a JavaFX 2.0-ás verziója előtt, a fejlesztők statikus, deklaratív nyelvet

használtak, amit JavaFX Script-nek hívtak, a JavaFX applikációk elkészítéséhez.

A 2.0-ás verzió után a JavaFX-et „natív” Java könyvtárként implementálták, ami

ahhoz vezetett, hogy a későbbiekben „natív” Java kóddal írták a JavaFX

applikációkat.

Asztali környezetben a JavaFX támogatja a Windows Vista, Windows 7/8/10,

macOS és Linux operációs rendszereket. Telefonos környezetben pedig a JavaFX

Mobile több különböző operációs rendszeren fut, beleértve a Symbian OS,

Windows Mobile és a szabadalmazott real-time operációs rendszereket.

3.11 FX UI

Page 16: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

16

Technikai áttekintés

Közös profil: Támogat minden eszközt. Ez lehetővé teszi a fejlesztőknek, hogy

közös programozási modelleket használjanak az alkalmazások fejlesztése

közben, mind asztali és mobil eszközökhöz, valamint megkönnyíti a kód, grafikai

eszközök és tartalom egymás közti megosztását.

Drag-to-install: A végfelhasználók szemszögéből ez annyit tesz, hogy a JavaFX

lehetőséget biztosít arra, hogy egy widgetet vagy alkalmazást megfogva

áthúzhassuk azt az asztalra, így még azután is megtartva azt a teljes

működésével együtt, miután a böngésző ablakot bezártuk.

Integrált grafika létrehozás third-party eszközökkel: A JavaFX tartalmaz rengeteg

plugint, mint pl. Adobe Photoshop és Illustrator, amik lehetővé teszik haladó szintű

grafikák közvetlen integrálását az alkalmazásokba. Ezeket a fejlesztők könnyen

animálhatják, valamint különböző effektekkel láthatják el.

Design áttekintés

A Sun Microsystem engedélyezett egy egyedi betűtípust, amit Amble-nek hívnak

azoknak az eszközöknek, amik JavaFX-et futtatnak. A font családot egy mobil

felhasználói felületen készítette el egy ezzel foglalkozó specialista cég a Punchut,

amit az 1.3 verzióval integráltak is.

Platform Komponensek

JavaFX SDK: Grafikák, média web szolgáltatások, és rich text könyvtárak.

Tartalmaz ezen felül még fordítót, ami mára elavult mivel a kódot Java-ban írják.

NetBeans IDE: NetBeans drag-and-drop paletták objektum hozzáadáshoz

különböző transzformációkkal, effektekkel és animációkkal, valamint rengeteg

példával és praktikával.

Scene builder: Egy felhasználói felület (UI) amit szintén drag-and-drop palettákhoz

készítettek. Ezt az információt egy FXML file tartalmazza, ami egy speciális XML

formátum.

Eszközök és plugin-ek a kreatív eszközökhöz: Ahogy már korábban említettem, az

FX grafikus plugin-ek tárházát implementálta, mint az Adobe Photoshop és

Illustrator, ami lehetővé teszi, az egyszerű grafikai komponensek

importálását/exportálását JavaFx Script és SVG között.

Page 17: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

17

JavaFX mobil

Ez egy implementációja a JavaFX platformnak rich internet alkalmazások

készítéséhez, amivel a mobil eszközöket célozták meg. Ugyanazon nyelven íródik,

mint a böngésző vagy az asztali alkalmazás, valamint ugyanazokat az eszközökat

használja: SDK és Production Suite. Ez a koncepció lehetővé teszi a kód alapú,

valamint grafikai komponensek közös használatát asztali és mobil

alkalmazásoknál egyaránt.

Példa kód

A következő példa egy relatíve szimpla JavaFX alapú program. Egy ablakot mutat

be ami egy gombot tartalmaz.

Page 18: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

18

3.3 Felhasznált Technológiák[6]

3.3.1 Eclipse

3.3.1.1 Általános Tudnivalók

Az Eclipse egy nyílt forráskódú, platformfüggetlen szoftver-keretrendszer, amivel

úgynevezett vastag kliens alkalmazásokat lehet készíteni. Ezt a keretrendszert

idáig jellemzően integrált fejlesztőkörnyezetek (Integrated Development

Environment, IDE) létrehozására használták fel, mint pl. a Java IDE, a Java

Development Toolkit (JDT) valamint fordító (ECJ) amelyet az Eclipse részeként

terjesztenek.

Ám az Eclipse egyrészt egy felhasználói csoportot is magába foglal, amely

folyamatosan bővíti az Eclipse felhasználási területeit. Ennek egyik ékes példája

az Eclipse modellező projekt, mely a modell vezérelt tervezés majd összes

területét lefedi.

Az Eclipse-et eredendően az IBM hozta létre a VisualAge eszközcsalád

utódjaként. Az Eclipse projektet most az „Eclipse Foundation” (magyarul Eclipse

Alapítvány) névre hallgató szoftveripari nonprofit konzorcium kezeli. Több

szoftvereszköz készítő is az Eclipse-re kívánja építeni a jövőben IDE termékeit.

A szervezet egyik alapító tagja a QNXSoftware Systems, amely 52%-os

tulajdonrésszel rendelkezik.

3.3.1.2 Architektúra

Az Eclipse alapjául a Rich Client Platform (RCP). A Rich Client Platform pedig a

következő komponensekből áll:

● Core platform – Eclipse indítása, valamint pluginek futtatása

● OSGi – szabványos kötegelő (bundling) keretrendszer

● Standard Widget Toolkit – hordozható widget eszköztár

● JFace – fájl bufferek, szövegszerkesztők, szövegkezelés

● The Eclipse Workbench – szerkesztők, nézetek, perspektívák,

varázslók, eszköztárak tárháza

Az Eclipse grafikus felhasználói interface-e a Standard Widget Toolkit-en (SWT)

alapszik, ami rendhagyó, hiszen a legtöbb Java applikáció az Abstract Window

Page 19: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

19

Toolkitet vagy a Swinget alkalmazza. Az Eclipse felülete felhasználja továbbá a

JFace-t, mint köztes GUI réteget is, mely egyszerűsíti az SWT app-ok készítését.

Az Eclipse funkcióit az RCP telepíthető pluginekbe szervezik. Ez az elképzelés

szemben áll a legtöbb IDE tervezési elvével, vagyis minden funkcionalitás

központosított helyen, a forráskódba van építve. Az Eclipse plugin rendszere a

komponenseken alapuló szoftverfejlesztési elvet követi. A megfelelő pluginek

telepítésével az Eclipse kibővíthető úgy, hogy a Javán kívül egyéb

programnyelveket, például C, Ruby, Perl, Python, Cobol és PHP nyelveket is

támogasson. Ám de az Eclipse pluginek világában nem csak a programnyelvek

léteznek, ugyanis van LaTeX plugin is. Fellelhetőek telnet és adatbáziskezelő

pluginek is az Eclipse keretrendszerhez. Az Eclipse plugin architektúra nyitott,

tehát a specifikáció szerint tetszőleges új kiterjesztések is írhatóak.

3.3.1.3 Kiadások

Kódnév Dátum Platform verzió Projektek

Oxygen 2017. június

(tervezett)

? Oxygen projektek

Neon 2016. június 4.6 Neon projektek

Mars 2015. június 24. 4.5 Mars projektek

Luna 2014. június 25. 4.4 Luna projektek

Kepler 2013. június 26. 4.3 Kepler projektek

Juno 2012. június 27. 4.2 Juni projektek

Indigo 2011. június 22. 3.7 Indigo projektek

Helios 2010. június 23. 3.6 Helios projektek

Galileo 2009. június 24. 3.5 Galileo projektek

Page 20: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

20

Ganymede 2008. június 25. 3.4 Ganymede

projektek

Europa 2007. június 29 3.3 Europa projektek

Callisto 2006. június 30 3.2 Callisto projektek

Bravo 2005. június 28. 3.1

Austin 2004. június 21. 3.0

3.3.1.4 Szerver platform

Az Eclipse támogat különféle szerver alatti fejlesztést, mint például a Tomcat

illetve GlassFish. Általában képes a kívánt szervert telepíteni is (fejlesztéshez)

direkt módon az IDE-ből. Támogatja a távoli hibakeresést (remote debugging),

megengedve a felhasználóknak, hogy változókat figyeljen meg, valamint végig

tudjon lépkedni az applikáció kódján futási időben az adott szerveren, melyhez

csatlakozott az IDE.

3.3.1.5 Plugin szerverek

A plugin modell az Eclipse kulcsfontosságú eleme, emiatt az Eclipse

elterjedésével egyre növekvő számú webszerver ad otthont az Eclipse

plugineknek.

3.3.1.6 Üzleti logika az Eclipse mögött

Az Eclipse egy teljesen szabadon felhasználható, ingyenes környezet és platform,

de ennek ellenére egy üzleti vállalkozás is az IBM részéről. Az Eclipse-t használni

ingyenesen lehet, viszont aki fizetős szolgáltatásokat szeretne üzemeltetni a

platformon – tehát kereskedelmi forgalomba hozott pluginokat – annak jogdíjat kell

fizetnie az IBM felé. Létezik több fizetős Eclipse változat (nevezhetjük

terjesztésnek is), amik közül a legfontosabb a MyEclipse, amelyet még maga az

IBM is megvásárol.

Page 21: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

21

3.3.2 Java[7]

A Java egy általános célú, objektumorientált szemléletet felhasználó programozási

nyelv, melyet a Sun Microsystems fejlesztett ki a ’90-es évek elején. Az Oracle

2009-ben felvásárolta a céget és a Java 1.7-es verzióját már az ő neve alatt adták

ki 2011-ben.

A Java applikációkat jellemzően byte-kódú formátumra alakítják, de közvetlenül

natív (gépi) kód is létrehozható Java forráskódból. Az ilyen kód futtatása a Java

virtuális géppel történik, ami vagy interpretálja a byte-kódot, vagy natív gépi kódot

kreál belőle, és azt futtatja az aktuális operációs rendszeren. Létezik közvetlenül

Java byte-kódot futtató hardver is, az ún. Java processzor.

A Java nyelv szintaxisát főleg a C valamint C++ nyelvekből örökölte, viszont jóval

egyszerűbb objektum modellel rendelkezik, mint a C++. A JavaScript neve és

szintaxisa hasonló ugyan a Java-hoz, de a két nyelv nem áll olyan szoros

rokonságban, amire ezekből a hasonlóságokból asszociálnánk.

Bár a nyelv eredeti neve Oak (tölgyfa) volt, (James Gosling, a nyelv atyja nevezte

így az irodája előtt növő tölgyfáról), később kiderült, hogy ilyen elnevezésű kód

nyelv már létezik, így végül Java néven terjedt el. A Java szó az Oracle védjegye.

Emiatt engedélye nélkül nem felhasználható mások által fejlesztett termékek

megjelölésére; még akár Java-szerű stb. összetételben sem, mert ez a

védjegyjogosult jogaival ellentmond.

3.3.2.1 Általános tudnivalók

A nyelvet magát kávézás közben találták ki, ezért a kávéscsésze ikon. Négy

alapvető szempontot tartottak szem előtt, mikor a Javát kifejlesztették:

objektumorientáltság

platformfüggetlenség, illetve OS függetlenség (többé-kevésbé)

olyan kódokat és könyvtárakat tartalmazzon, amelyek elősegítik a hálózati

programozást

távoli gépeken is képes legyen biztonságosan futni.

Page 22: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

22

Objektumorientáltság

A nyelv elemi tulajdonsága, az objektumorientáltság („OO”), a programozás

stílusára és a nyelv struktúrájára utal. Az OO legfontosabb szempontja, hogy a

szoftvert objektumok alapján csoportosítja, és nem az elvégzett feladat a legfőbb

szempont. Ennek alapja, hogy az előbbi jóval kevesebbet változik, mint az utóbbi,

tehát az objektumok (az adatokat tartalmazó entitások) jobb alapot biztosítanak

egy szoftverrendszer tervezésénél. A cél az volt, hogy a monumentális fejlesztési

projekteket egyszerűbben lehessen kezelni, így csökkentve az elhibázott projektek

száma.

A Java szerepe

A Java szoftver három nagyon fontos szerepet tölt be:

1. mint programozási nyelv;

2. mint köztes réteg (middleware);

3. mint platform.

A Java legfontosabb eleme a Java virtuális gép (Java Virtual Machine – JVM). A

JVM mindenütt jelen van (szinte mindenféle berendezés, chip és szoftvercsomag

tartalmazza), tehát a nyelv középszintként valamint platformként is egyaránt

működik. Ámde a nyelv „platformfüggetlen” is, mivel a Java virtuális gépek

értelmezik a szabványos Java byte-kódot. Ez azt jelenti, hogy egy asztali

számítógépen megírt Java program minimális modifikáció után ugyanúgy fog futni

egy Java-s telefonon is. Innen jön az „írd meg egyszer, futtasd bárhol” kifejezés.

Ezzel jelentős költségcsökkenés érhető el, mivel a kódot csak egyszer kell

megírni.

Platformfüggetlenség (hordozhatóság)

Ez a tulajdonság annyit tesz, hogy a Java-ban írt programok a legtöbb hardveren

ugyanúgy futnak. Ez úgy érhető el, hogy a Java fordítóprogram az egyes

forráskódokat csak egy ún. Java byte-kódra fordítja le. Ez a későbbiekben a

virtuális gépen fut, ami az illető aktuális hardver gépi kódjára fordítja. Léteznek

továbbá szabványos könyvtárcsomagok, melyek, - közvetítve a kód és gép között,

- egységes funkcionalitásként teszik lehetővé a hozzáférést az elérhető hardver

sajátságosságaihoz (grafika, szálak és hálózat).

Page 23: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

23

Eközben léteznek olyan Java fordítóprogramok, melyek a forráskódot natív gépi

kódra fordítják le, - mint például a GCJ, - ezzel valamennyire felgyorsítva annak

futtatását. Cserébe a lefordított program elveszíti platformfüggetlenségét.

A Sun Microsystems licence ragaszkodik a különféle Java kivitelezések

egymással történő összeférhetőségéhez. Egyes cégek, mint például a Microsoft,

mégis platformfüggő sajátságokat adtak a nyelvhez, amire a Sun keményen

reagált: beperelte a Microsoftot (az amerikai bíróság 20 millió dollár kártérítésre és

a sajátos tulajdonságok visszavonására kötelezte a céget).

Válaszként a Microsoft elhagyta a Java rendszert a jövőbeli termékeiből és

Windows-változataiból.

Ez azt jelenti, hogy az Internet Explorer webböngésző alapváltozataiban már nincs

benne a Java. Így abban azok a weboldalak, melyek Java-t használnak, nem

jelennek majd meg helyesen. A Windows-felhasználók ezen problémáját

megoldva a Sun és más egyéb cégek ingyenesen hozzáférhetővé tették a JVM

rendszert azon Windows-változatok számára, melyekből a virtuális gép hiányzik.

A hordozhatóság megvalósítása technikailag roppant bonyolult. E közben a Java

esetében is rengeteg vita volt. Az „írd meg egyszer, futtasd bárhol” szlogenből „írd

meg egyszer, keress hibát mindenhol” lett. 2016-ra a hordozhatóság nem okoz

tovább gondot, mivel még maga a Java is nyílt szabványokra épül, pl. openGL v.

Open POSIX vagy az RFC-k, a Java minden jelentősebb platformon elérhető

(Linux, Unix, Windows, más rendszerek pl. AS/400).

Java 2016-ba is sikeres a szerver oldalon a servlet, a JSP és Enterprise

JavaBeans, JDBC technológiákkal, integrációs lehetőségeivel, nyelvi eszközeivel,

jvm nyelveivel és a nyílt forráskódú közösség tudására is építve.

Biztonságos távoli futtatás

A Java rendszer volt az első, mely lehetővé tette a távoli számítógépeken való

futtatást sandboxban. Egy kis alkalmazás futtatható a felhasználó gépén (letöltve

a Java kódot egy http kiszolgálóról). A kód egy biztonságos környezetben fut, mely

nem engedi meg "ártó szándékú" kód futtatását. A gyártók kiadhatnak olyan

tanúsítványokat( pl. SSL), amelyeket digitálisan aláírnak és ezzel a nevüket adva

ahhoz, hogy a kis alkalmazás teljesen biztonságos. Így azok a felhasználó

felügyelete alatt léphetnek ki a biztonságos környezetből.

Page 24: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

24

3.3.2.2 Példa

A klasszikus „Helló Világ!” Javában

3.3.3 MVC[8]

A modell-nézet-vezérlő(MNV) (angolul model-view-controller [MVC]) a

szoftvertervezésben használatos architektúrális minta. Komplex, rengeteg adatot a

felhasználó elé táró számítógépes applikációkban gyakori fejlesztői kívánalom az

adathoz (modell) valamint a felhasználói felülethez (nézet) tartozó elemek

szétválasztása, hogy a felhasználói felület ne tudja befolyásolni az adatkezelést,

továbbá az adatok átszervezhetőek legyenek a felhasználói felület

megváltoztatása nélkül. Az MVC ezt úgy éri el, hogy külön helyezi el az adatok

elérését és az üzleti logikát az adatok megjelenítésétől és a felhasználói

interakcióktól egy közbülső komponens, a vezérlő bevezetésével.

Gyakori egy alkalmazás több rétegre való felbontása: megjelenítés (felhasználói

felület), tartománylogika és adatelérés. Az MVC-ben a megjelenítés tovább bomlik

nézetre és vezérlőre. Az MVC sokkal inkább meghatározza egy alkalmazás

szerkezetét, mint az egy programtervezési mintára jellemző.

Modell

Az alkalmazás által felhasznált információk tartomány-specifikus

ábrázolása. A tartománylogika ad jelentést a puszta adatnak (pl.

kiszámolja, hogy a mai nap a felhasználó születésnapja-e, vagy az

összeget, adókat és szállítási költségeket egy vásárlói kosár elemeihez).

Sok alkalmazás használ olyan tároló eljárásokat, amelyek állandóak (mint

mondjuk egy adatbázis), adatok tárolásához. Az MNV nem említi meg külön

az adatelérési réteget, mert ezt a modellbe érti bele.

Page 25: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

25

Nézet

Megjeleníti a modellt egy megadott és megfelelő alakban, amely alkalmas a

felhasználói interakcióra, általában egy felhasználói felületi elem képében.

Különféle célokra különböző nézetek létezhetnek ugyanahhoz a modellhez.

Vezérlő

Az eseményeket, illetve a felhasználói műveleteket feldolgozza, valamint

válaszol rájuk, továbbá a modellben történő változásokat is kiválthat.

Az MVC gyakran látható webalkalmazásokban, ahol is a nézet az éppen aktuális

HTML oldal, a vezérlő pedig az a kód, amely összegyűjti a dinamikus adatokat

valamint létrehozza a HTML-ben a tartalmat.

Végül a modellt magát a tartalom képviseli, mely általában egy adatbázisban vagy

XML állományokban van eltárolva.

Habár az MVC-nek rengeteg értelmezése létezik, a vezérlés menete általában a

következőképp működik:

1. A felhasználó valamilyen interakciót gyakorol a felületre (pl. megnyom egy

gombot).

2. A vezérlő megkapja a bejövő eseményt a felülettől, általában egy bejegyzett

eseménykezelő vagy visszahívás útján.

3. A vezérlő kapcsolatot létesít a modellel, esetleg frissíti azt a felhasználó által

generált tevékenységének megfelelő módon (pl. a vezérlő frissíti a felhasználó

kosarát). A komplexebb vezérlőket gyakran alakítják ki úgy , hogy az

megfeleljen az utasításmintának, a műveletek egységbezárásáért és a bővítés

egyszerűsítéséért.

4. A nézet a modell válasza után a megfelelő felületet hozza létre (pl. a nézet

hozza létre a kosár tartalmát felsoroló képernyőt). A nézet a modellből nyeri ki

az adatait. A modell nem tud közvetlenül a nézetről.

5. A felület újabb eseményre vár, mely az elejéről kezdi a kört.

A modell és a nézet elszeparálásával az MVC csökkenti a szerkezeti bonyolultságot,

és megnöveli a flexibilitást és a felhasználhatóságot.

Page 26: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

26

3.3.4 Adatbázis – SQL[9]

Az SQL, másnéven Structured Query Language (strukturált lekérdezőnyelv)

relációsadatbázis-kezelők lekérdezési nyelve. A relációsadatbázis-kezelők

általánosságban az SQL nyelven programozhatók. Az SQL elemi utasításait közel

egyformán valósítják meg, azonban a később beépült nyelvi elemek körében

kifejezetten nagy az eltérés, emiatt számos SQL nyelvjárásról beszélhetünk.

Jellegét tekintve ez a szakterület-specifikus nyelv részben procedurális, részben

deklaratív.

3.3.4.1 SQL története

Az SQL alapjait az IBM fektette le, még az 1970-es években. Az elvi alapot a

relációs adatmodell szolgáltatotta, amit Edgar F. Codd híres 12 szabályával írt le

1970-ben.

Az IBM, az Oracle valamint más egyéb gyártók is érdekeltek voltak egy

szabványosított lekérdező nyelv kifejlesztésében, amivel a relációs adatbázisok

fejleszthetőek. Az iparági összefogással létrehozták ANSI NCITS (National

Committee on Information Technology Standards) és a H2 csoport lerakta az SQL

alapjait.

A szabványt az ANSI (American National Standards Institute – magyarul :

Amerikai Nemzeti Szabványügyi Intézet) 1986-ban, az ISO (International

Organization for Standardization - magyarul: Nemzetközi Szabványügyi

Szervezet) 1987-ben jegyezte be. Az SQL leírását az ISO 9075 szabvány rögzíti.

3.3.4.2 Az SQL nyelv

Az SQL nyelvi elemeket 4 alapvető részre,

adatdefiníciós (Data Definition Language, DDL),

adatkezelési (Data Manipulation Language, DML),

lekérdező (QUERY( Language - QL))

adatvezérlő (Data Control Language, DCL)

részekre lehet bontani.

A nyelvben az utasításokat pontosvesszővel választja el egymástól.

Page 27: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

27

Adatdefiníciós utasítások

Azt a nyelvet melynek segítségével az adatbázis adminisztrátorok az új

adatbázisok sémáját definiálják adatdefiníciós nyelveknek (DDL = Data Definition

Language) nevezzük.

CREATE

Adatbázis objektum létrehozása.

ALTER

Adatbázis-objektum módosítása. Példa:

ALTER TABLE Szamla

ALTER COLUMN Szamlaszam VARCHAR(26);

Példa adatbázis tábla definíciójára:

CREATE TABLE Szamla (

Szamlaszam NUMERIC(24),

Tulajdonos VARCHAR(60),

Nyitas DATE,

Allapot VARCHAR(1),

PRIMARY KEY (Szamlaszam)

);

DROP

Egy adatbázisbeli objektum megszüntetése. Példa:

DROP INDEX Szamla_1;

A fenti példa megszüntet egy indexet.

DROP TABLE egy_tabla;

Ez pedig egy adattáblát szüntet meg.

Page 28: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

28

Adatlekérdező utasítások (QUERY)

A lekérdező nyelv egyetlen egy utasításból áll, amely számos alparancsot

tartalmaz illetve tartalmazhat, és a lekérdező utasítások többszörös mélységig

egymásba ágyazhatók. Célja, hogy egy vagy több adathalmazból egy relációt

állítson elő. A bemeneti adatokon, végrehajthatóak a relációs algebra műveletei,

aminek következményeként egy eredmény táblát kap a felhasználó. A

végrehajtási sorrend a következő: FROM, WHERE, GROUP BY, HAVING,

SELECT, ORDER BY.

SELECT

Az SQL talán egyik leggyakrabban használt utasítása a lekérdezés. Ez a nyelvi

elem sokkal inkább deklaratívnak tekinthető, mint procedurálisnak, mert a

felhasználó (programozó) csak az eredményhalmaz mezőit (oszlopait) valamint a

halmaz felépítésének feltételeit határozza meg, a leválogatási algoritmus

létrehozása az adatbázis-kezelő feladata.

A SELECT utasítás az adatok egy halmazát szelektálja egy táblázatba a relációs

adatbázisból, és teszi hozzáférhetővé valamilyen technikával a felhasználó

számára. Mivel robosztus adatmennyiségekről lehet szó (szélsőséges esetben az

egész adatbázisról), ezért a halmaz általában szekvenciálisan olvasható. Egy

mutató (kurzor) mozgatható a visszakapott halmazon előre vagy hátra, és

kiolvasható, hogy milyen adatokat tartalmaz a mutató alatt. Ha a mutató az

eredményhalmaz végére illetve elejére ért, azt különleges jelzéssel tudatja az

adatbázis-kezelő (EOF – End of File – állomány vége, illetve BOF – Beginning of

File, állomány eleje)

Page 29: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

29

Példa:

SELECT COUNT(*), Tulajdonos FROM Szamla

WHERE Allapot = 'N'

GROUP BY Tulajdonos

HAVING COUNT(*) > 1

ORDER BY Tulajdonos;

A fenti példa kilistázza azokat a személyeket, akiknek egynél több aktív

bankszámlája van. Az első oszlopban az aktív bankszámlák száma, a másodikban

a tulajdonosok neve olvasható. A táblázat a tulajdonosok neve szerinti emelkedő

sorrendben jelenik meg.

A SELECT utasítás több szakaszból állhat, amelyek közül majdnem mindegyik

elhagyható, ha szükséges.

Nagyon hasznos, hogy további SELECT-ek is lehetnek benne!

Példa:

SELECT Vevo.Nev, (SELECT SUM(Osszeg) FROM Rendeles WHERE VevoID =

Vevo.ID) RendelesOsszeg

A fenti példa a vevő neve mellett megjeleníti az eddigi rendeléseinek összegét is.

Összetettebb példa:

SELECT munka_szám FROM munka

WHERE óraszám*óradíj = (

SELECT max(óraszám*óradíj) FROM munka

);

A lekérdezés megkeresi a legnagyobb árbevételű munkáinkat – akkor használható

jól, ha több is van belőle.

Page 30: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

30

3.4 Döntés

A döntésem végül a Java Swing-re esett, aminek több oka is van.

Az első, hogy kifejezetten asztali alkalmazást szerettem volna létrehozni, amire a

Java nyelvben 2 lehetőségem volt, a Swing és az FX.

Először a kettő kombinációjára gondoltam, de aztán rájöttem, hogy ahhoz amit én

szeretnék készíteni elegendő csak az előbbi.

Mivel a program csak egyszerűen kezelhető, primitív ablakokból tevődik össze,

erre ez a legalkalmasabb.

Az egyetemi tanulmányaim alatt volt szerencsém ezzel a technológiával

megismerkedni, és mivel Java nyelven tanultam programozni, ez evidens volt.

A Java mindezek mellett könnyen kapcsolható és kezelhető lehetőséget biztosít

SQL alapú adatbázis felhasználására a JDBC kapcsán.

Mivel az adatokat SQL táblákban tárolom, így ez elengedhetetlen volt a program

elkészítéséhez.

Page 31: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

31

4. Rendszerterv

4.1 Funkcionális követelmény specifikáció

4.1.1. Általános követelmények

Az alkalmazás tervezésénél nagyon fontos töltött be az, hogy melyek a közeli,

valamint a távoli tervek. A fejlesztési technológia kiválasztásánál, valamint a

fejlesztésnél magánál is súlyozott szerepet kapott, hogy funkcionálisan milyen

szerkezeti (architektúrális) részekre bontjuk, és ezek a részek újra és újra

felhasználhatóak legyenek.

Az alkalmazott technológiáknál, azon belül is a Java-nál említeném meg, hogy

miért is esett erre a választás. Az indoka roppant egyszerű, az elgondolás egy

asztali alkalmazás volt, ami ezeken az alapokon elkészült Swing és FX

bővítményekkel készíthető el a leghatásosabban. A másodlagos szempont az

adatbázis kapcsolat, amit egy egyetemi pályafutásom során tanult JDBC (Java

DataBase Connectivity) felhasználásával könnyedén kezelhető.

4.1.2. Működés leírása

Az exportált JAR(Java Archive) futtatható file indítása után, azonnal egy

bejelentkező felületet láthatunk.

Ezen a felületen a megfelelő felhasználói név és jelszó megadása esetén, a

Bejelentkezés gombra kattintva, vagy az Enter billentyű leütése után az

alkalmazás ellenőrzi az adatbázisban, hogy a megadott adatok léteznek-e,

valamint, hogy a megadott felhasználó milyen típusú.

Itt két lehetőség van:

1. Főzőmester

Page 32: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

32

2. Adminisztrátor

4.1.2.1 Főzőmester

Nézzük először a Főzőmester típusú - későbbiekben főzőmester - felhasználót.

A bejelentkezés után megjelenik előttünk a Főzőmester Főoldal képernyő, ami egy

menü sort, táblázatot és gombokat tartalmaz.

A menü sor elemei között megtalálható lehetőségek 4 részre bomlanak.

A File menü pont alatt található a Kilépés lehetőség, amely megnyomása után a

program bezárja önmagát.

A Statisztika menü pont alatt található 3 új menü elem, amik a Heti, Havi és Évi

szövegekkel vannak ellátva.

A funkciójuk pedig, hogy a korábban sikeresen befejezett főzéseket tartalmazzák

a nevüknek megfelelő, dátum szerinti bontásban. Bármelyikre kattintva

ugyanolyan ablak jelenik meg, természetesen más adatokkal.

Az ablakban megtalálható egy táblázat, amiben a korábban említett, dátum szerint

szelektált adatok vannak. A táblázat 3 mezőt tartalmaz Név, Elvárt, Tényleges és

Dátum.

Az első 2 mező adatai, a főzés regisztrálása alkalmával megadott értékek, a 3.

pedig a főzés végeztével megkapott tényleges adatot, az utolsó pedig a dátumot

tartalmazza.

A felületen megtalálható meg egy vissza gomb, aminek a hatására ez az ablak

bezáródik és újra a főzőmester fő képernyőjén találjuk magunkat.

A következő menü pont az Üzenetek. Ezen belül 2 menü elem található:

1. Üzenet írás

2. Bejövő

Tekintsük először az előbbi menü pontot. Az üzenet írására kattintva egy újabb

ablak ugrik elő, ahol lehetőségünk van az adminisztrátor típusú - későbbiekben

admin - felhasználók felé üzenetet írni, esetleges kérdésekkel/kérésekkel/hibákkal

kapcsolatban.

A felületen helyet kapott egy Tárgy és egy Üzenet szövegdoboz, amit bármilyen

karakterrel kitölthetünk, valamint egy Küld feliratú gomb.

Page 33: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

33

A gomb megnyomására az ablak bezáródik és közben a háttér rendszer a

szövegdobozokból kinyert adatokat egy adatbázis táblába menti, ahonnan az

admin a saját felületén el tudja majd olvasni.

A második elem-re kattinva egy felugró ablakon táblázat-ba rendezett formában

tekinthetjük meg az adminoktól kapott üzeneteinket. Természetesen az ablak csak

akkor jön létre, ha egyáltalán van üzenetünk, ami elolvasható, máskülönben egy

figyelmeztetés ugrik fel, ami csak annyit tartalmaz, hogy nincs üzenetünk.

Az üzenetek szelektálását a háttér rendszer végzi a felhasználó név alapján.

A következő menü pont a Help, amiben egyetlen egy menü elem található,

mégpedig a Kapcsolat, ami szerintem kiemelt fontosságú, mivel előfordulhat olyan

eset, hogy a program valamilyen okból kifolyólag meghibásodik. Ilyenkor azonnali

hatállyal szükség van az admin-ok elérésére, így ez az ablak, róluk tartalmaz

személyes információkat. Így például a cég és tulajdonos nevét, telefonszámát és

e-mail címét.

A főzőmester főoldalán található további elemek egy radio gomb csoport, aminek

a két eleme a Pálinka és a Bor.

Az ablak betöltésekor alapértelmezetten a pálinka aktív. Az alatta lévő táblázatban

pedig megtalálhatóak a kiválasztott elemhez kapcsolódó főzések. A legelső elem

mindig az aktuálisan főzés alatt lévő megbízás.

A főzés végeztével az aktuális elemre jobb egér gombbal kattintva lehetőségünk

van azt archiválni, amely funkciót a későbbiekben fogok bemutatni az Admin

felületen. Ha nincs aktív főzés, bármelyik elemre jobb egér gombbal kattintva azt

aktívvá tehetjük, így az a lista élére fog kerülni. Attól függően, hogy hány főző

alkalmatosságunk van, lehetőség van több elem aktiválására is.

A táblázattól jobbra található két gomb : Hozzáadás és Törlés.

Egy elemet bal egér gombbal kijelölve, majd a Törlés gombra kattintva tudunk

törölni. Ezzel vigyázzunk, mert az ilyen módon kitörölt elem, már nem lesz

megtalálható az achívum táblában, véglegesen törlődik.

Page 34: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

34

A Hozzáadás gombra kattintva viszont megjelenik egy új ablak, ahol egy újabb

főzés regisztrálására van lehetőségünk. A táblázatban aktuálisan tartalmazott

főzés fajta hozzádásához jelenik meg az ablak, amit a háttérrendszer leellenőriz

megnyitás előtt.

A felületen található alapértelmezetten 10 szöveg doboz, amiben személyes

adatokat kell megadnunk a főzés regisztrálásához, valamint elvárt mennyiséget,

árat, és dátumot. Az üveg radio gombok jelentése csupán annyi, hogy hozott-e

magával a megbízó olyan üveget, amiben a főzés végeztével el tudja szállítani a

kész terméket. A gyümölcs legördülő menüben lehetőség nyílik kiválasztani, hogy

milyen gyümölcsből főzzük a pálinkát, bor esetén pedig, hogy milyen fajtájú bort

kívánunk készíteni.

A felületen helyet foglal még egy Hozzáad gomb aminek a megnyomása esetén,

ez az ablak bezáródik és újra elérhető a főzőmester főoldala, valamint a

megnyomás alkalmával a háttér rendszer felviszi az adatbázisba az újonnan

regisztrált főzést, ami utána a főoldal táblázatában elérhető lesz.

4.1 Főzőmester főoldal

Page 35: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

35

4.1.2.2. Admin

A szoftver másik fő része az Adminisztrátor Főoldal, ami 5 különböző részből

tevődik össze:

1. Új felhasználó

2. Felhasználók

3. Üzenet

4. Archívum

5. Főző alkalmatosságok

Tekintsük először az Új felhasználó menü pontot. A 4 váltó gomb közül,

automatikusan ez van kiválasztva az ablak létrejöttekor. Ezzel a funkcióval

lehetőségünk van új felhasználó létrehozására a rendszerben. A felület 3

szöveges mezőt tartalmaz, amivel a felhasználó nevet, jelszavat, valamint e-mail

címet lehet megadni. Utóbbihoz készítettem egy saját e-mail validáló osztályt, ami

nem fogad el címet csak a következő formában : bármi@kétkarakter.kétkarakter.

A szöveges mezők alatt került elhelyezésre egy radio gomb csoport, ahol a

korábban már említett 2 típus közül lehet az egyiket megadni az újonnan létrejövő

felhasználónak. Ezek közül alapértelmezettként a Főzőmester van kiválasztva,

mivel az esetek nagy többségében ilyen felhasználó létrehozására lehet szükség.

A felületen elhelyezkedik még egy Hozzáadás feliratú gomb, ami mindaddig

inaktív, amíg a mezők nincsenek megfelelő adattal kitöltve.

A gomb aktiválódása után hozzáadható az új felhasználó a rendszerhez, amit a

háttér rendszer végez el, mégpedig úgy, hogy felviszi az adatbázis megfelelő

táblájába a felületen megadott adatokat.

A második menü pont a Felhasználók. Ebben a funkcióban lehetőségünk van az

adatbázisban lévő felhasználók megtekintésére. Többféle szűrési lehetőséget

biztosan a felület, így például a név alapján történő keresés, vagy a típus alapján

történő leszűrés.

Módosításra akkor van lehetőség, ha kijelölünk egy sort a táblázatban, és a

Módosítás gombra kattintunk. Ekkor felugrik egy, az előző funkcióhoz hasonló

felépítésű kis ablak, ahol lehetőség van módosítani a kiválasztott felhasználót.

Page 36: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

36

A harmadik menü pont az Üzenetek, amely működésben teljes mértékben

megegyezik a Főzőmester felületen lévő Üzenetek funkcióval.

A negyedik menü pont az Archívum. Mivel egy ilyen szoftvernél fontos a

nyomonkövethetőség, valamint az elszámolhatóság, így a korábban sikeresen

teljesített főzések, amint eltávolításra kerülnek a Főzőmester oldalán található

táblázatból, ide kerülnek meg. A felületnek egyetlen funkciója van, hogy lehetőség

legyen a lezárt főzéseket és teljesített főzéseket megfelelő ideig tárolni és ha

szükséges újra megtekinteni.

4.2 Admin főoldal

Page 37: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

37

4.2 Diagramok

4.2.1 UML diagram[10]

Ez egy szabványos, általános célú modellező nyelv, üzleti elemzők,

rendszertervezők, szoftvermérnökök számára. Grady Booch, Ivar Jacobson és

James Rumbaugh egyesített munkájának terméke. Könnyen alkalmazható a való

világ bonyolultságának a kifejezésére, az objektum orientált modellezés

módszerét alkalmazva. Az UML nagy méretű programrendszerek modelljeinek a

vizuális dokumentálására létrehozott eszköz. Az UML módszer és leíró nyelv

felhasználásával különböző nézőpontú grafikus és szöveges modellek hozhatóak

létre, többek közt:

Szervezetekről, rendszerekről: viselkedésükről, külső és belső

kölcsönhatásaikról stb.

Szereplőkről: viselkedésük és kapcsolatuk egy rendszerben, illetve más

rendszerekkel stb.

Logikai összetevőkről: azok viselkedéséről, feladataikról, kommunikációjáról

egy rendszeren belül, vagy rendszerek között stb.

Szoftverekről, programokról: az UML az objektum orientált

programozás szabványos nyelve.

Adatbázisokról: logikai, fizikai és elméleti modellekről egyaránt.

Grafikus jelöléseket használ a különböző rendszerek jól áttekinthető absztrakt

modelljének leírására. Az UML modellek szabványos UML jelölést használó

diagramokból tevődnek össze. Hatékony kommunikációs eszköz egyaránt a

szoftver rendszereket fejlesztő informatikusok közötti, egyaránt a megrendelők és

a fejlesztők kommunikációjában és együttműködésében.

Kritikák

Az UML széles körben használt és elfogadott szabvány, kicsi rendszereket

fejlesztők gyakran kritizálják a következők miatt:

Túl nagy és bonyolult: Az UML szabvány túl sok diagramot tartalmaz, amik egy

jó részét szinte nem is használják, jó része pedig redundáns.

Page 38: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

38

Pontatlan szemantika: Az UML szemantikát egyrészt OCL-lel, másrészt angol

nyelven, valamint az UML-lel magával definiálják, és nincs meg benne a

formális nyelveknél megszokott szigorú definíció.

A jelenlegi UML szabvány jelölések verziónként eltérnek (UML 2 és 1 között van

eltérés), folyamatosan fejlődnek, nem kiforrottak.

Egyszerű, kis méretű szoftveres applikációval támogatott megoldás esetén,

amennyi idő ráfordításával az UML segítségével egy szoftver hatékonyan és

precízen megtervezhető, azalatt az idő alatt, csak a kivitelezést szem előtt tartó

szoftverfejlesztés kockázatmentesen és jóval gyorsabban megvalósítható. De ha a

cél: hatékonyan és precízen megtervezni egy összetett, komplex alkalmazást,

amely megfelelően van dokumentálva, és platformfüggetlen, akkor az UML

használata szinte megkerülhetetlen.

4.2.1.1 Osztálydiagram

Az osztálydiagram egy statikus modell. A rendszerben használt osztályokat

mutatja be, azok attribútumaival együtt. Az osztálydiagram tartalmazza továbbá az

osztály szintű kapcsolatokat.

4.3 Osztálydiagram

Page 39: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

39

4.2.1.2 Use Case diagram

A use case diagram a maga egyszerűségével egy felhasználó interakcióját

mutatja be a rendszer felé, különböző relációk kapcsán a felhasználó és a

használati esetek között.

4.4 Use Case diagram a bejelentkezésről

4.5 Use Case Üzenetek megnyitása

Page 40: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

40

5. Tesztelés

5.1 Manuális tesztelés

Felhasználói teszt

A legfontosabbnak ezeket a teszteket tartottam, mivel célkitűzésemnél az egyik

legfontosabb szempont a könnyen kezelhető program volt, még azok számára is,

akik kvázi laikusak az ilyen programok használása kapcsán.

Másrész, mivel a szakdolgozat arról szól, hogy a kiválasztott technológia grafikai

eszköztárával hogyan tudom megoldani a feladatot így a háttérrendszeri

teszteknek nincs értelme.

Hogy ezeket a teszteket teljesen elfogulatlanul ki tudjam értékelni, megkértem öt

embert, hogy próbálják ki a programot és annak tudatában, hogy ez egy

prototípus, mondják el a véleményüket, amit a továbbiakban fel is tüntetek.

Tesztelésük előtt kifejezetten megkértem őket arra, hogy tekintsenek el attól, hogy

ezt a programot én készítettem, és legyenek kritikusak azon dolgok kapcsán, amit

nem tartanak jónak, illetve nem tetszik nekik.

Az ő véleményük hatalmas segítség volt a számomra a tesztelési folyamat

elvégzéséhez.

Tesztelői vélemények:

1. „A program érthető, könnyen lehet dolgozni benne.”

2. „A program könnyen átlátható, valamint egyszerű.”

3. „A program használata roppant egyszerű és átlátható”

Page 41: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

41

Start up teszt

Mivel a mai rohanó világban fontos az, hogy mivel mennyi időt töltünk el, így

második állomásként azt helyeztem előtérbe, hogy a program milyen gyorsan

indul az egyes alkalmakkal, másszóval, hogy miután a parancsikonra

rákattintottam mennyi idő telik el a bejelentkező felület megjelenéséig.

10 mérést végeztem el, ami átlagosan a 2,33s értéket adta ki, valamint az alábbi

grafikonon találhatóak az egyes mérések eredményei.

2.1

2.15

2.2

2.25

2.3

2.35

2.4

2.45

2.5

2.55

Kategória 1

Diagrammtitel

1. próba 2. próba 3. próba 4. próba 5. próba

6. próba 7. próba 8. próba 9. próba 10. próba

Page 42: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

42

6. További lehetőségek

6.1 Platform bővítés

A továbbfejlesztési lehetőségek közül, talán a legfontosabb és leginkább

kézenfekvő a különböző platformokra való „portálás” – átültetés. Vagyis

megoldani, hogy ne csak egy asztali alkalmazásként futhasson a program, hanem

akár egy webes, akár egy mobil környezetben is.

Ezért a későbbi célok közé akár felvehető a különböző platformokra történő

exportálása.

6.2 Felületsémák kialakítása – testraszabható kinézet

Az elrendezésen ( angolul : layout ) nem szándékszom a mostani koncepciótól

eltérni, mivel a könnyen kezelhetőség és egyszerűség az egyik fő szempontja a

programnak.

Viszont mindenképpen szeretném, ha a felhasználók több féle kinézetet

választhatnának, s ők maguk is szerkeszthetnék ezeket.

6.3 Többnyelvűsítés

Mivel a program jelen helyzetben csak a magyar célközönségnek szól, a későbbi

célok közé felvehető a nem magyar közönség megcélzása, vagyis a program

többnyelvűsítése.

6.4 Reszponzivitás

Mivel a szoftver prototípus jelleggel készül és teljes mértékben csak a demo-k

bemutatása az elsődleges cél, így a reszponzivitás teljes mértékben háttérbe

szorult.

Page 43: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

43

7 Összegzés

7.1 Személyes vélemény -végszó

Az adott feladatot, miszerint technológiákat összehasonlítva megtalálni azt a

megoldást, amivel az elképzelést meg tudom valósítani nagyon élveztem és sokat

tanultam az olvasott anyagokból.

A program végül a Swing maga komplex egyszerűségével a vártakat maximálisan

elérte. Bár csak prototípus és a benne lévő adatok csak demo jelleggel létezőek,

számomra egy mérföldkő, mivel ilyen komplex feladatot önállóan az egyetemen

még nem kellett létrehoznom.

A végére érve azt mondhatom, hogy sokkal könnyebb egy valaki által már kitalált

projekten dolgozni, mint saját magunknak mindent felépíteni és elejéről az egészet

létrehozni.

Habár így teljesen szabadon valósíthatjuk meg az ötleteinket, jóval több időigénye

van a konkrét tervezésnek, mint a kivitelezésnek.

Page 44: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

44

8. Summary

8.1 Personal opinion – conclusion

The given task, with the technological comparison and the selection was incredible

and interesting. I think I’ve made a great choice with the Swing with it’s complex

simplicity to make my example program. However the datas are only demo, the

program is a big milestone for me, because I’ve never had to solve as big task as

this since I’ve study on the University.

It’s much easier to work on a project what is already planned by others then to

plan it for you self and start it from the very begining.

However you can think free for any solutions, it’s take a lot more time to plan it

then develop it.

Page 45: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

45

Köszönet nyilvánítás

Így a szakdolgozatom végére érve, szeretnék köszönetet mondani dr. Kovács László Tanár Úrnak, hogy a dolgozatom készítése közben időt és energiát nem sajnálva rengetegszer útmutatóval szolgált az egyes konzultációk alkalmával.

Page 46: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

46

Irodalomjegyzék, hivatkozások

[1] Softlego (www.softlego.hu)

[2]Spring (https://hu.wikipedia.org/wiki/Spring_keretrendszer)

[3]ExtJs (http://docs.sencha.com/extjs/3.4.0/)

[4]AWT Swing (https://hu.wikipedia.org/wiki/Abstract_Window_Toolkit)

[5]JavaFX (https://en.wikipedia.org/wiki/JavaFX)

[6]Eclipse (https://hu.wikipedia.org/wiki/Eclipse, http://www.eclipse.org/)

[7]Java (https://hu.wikipedia.org/wiki/Java_(programoz%C3%A1si_nyelv))

[8]MVC (https://hu.wikipedia.org/wiki/Modell-nézet-vezérlő)

[9]SQL (https://hu.wikipedia.org/wiki/SQL)

[10]UML (https://hu.wikipedia.org/wiki/Unified_Modeling_Language)

Page 47: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Nyilvántartó szoftver pálinka és bor főzéséhez

47

Mellékletek

M1 – Feladatkiírás M2 – Összefoglaló nyilatkozat M3 – SoftLego leírás M4 – CD

Page 48: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

3.4 Ügyviteli rendszer

kiegészítés Pálinka származási igazolvány

ADMIN Rendszerek Kft. 1033 Budapest, Polgár u. 7.

Email: [email protected]

Tel.: (70) 454-7161, Fax:(70) 900-3455

Page 49: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Bevezetés .................................................................................................................................... 3

Cefre átvétel ............................................................................................................................... 3

Bérfőzés, származási igazolvány ............................................................................................... 5

2/5

Page 50: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Bevezetés

Ez a leírás a pálinka bérfőzést végző vállalkozásoknak készült a számítógépes nyilvántartások vezetésére meghatározott követelményeknek való megfelelés miatt. A jövedéki szabályokat tartalmazó 2003 évi CXXVII. Törvény 65. § és 8/2004. (III.10) PM rendelet 57.§ és 31.-es 32.-es számú melléklet alapján meghatározza a számítógépes programok szükséges követelményeit.

Cefre átvétel

A bérfőzető által behozott cefre átvételére szolgáló programrész segítségével az átvett cefre mennyiségét rögzíti, és követni lehet a tárolását a kifőzés megkezdéséig. Erről egy átvételi bizonylat készül, melynek egy példányát a bérfőzető kapja meg. A bérfőzéskor A bérfőzött pálinka előállítása lapon ennek a gyümölcscefre átvételinek az azonosító száma kerül rögzítésre. Elérési útvonal: Forgalom Beszerzés Enter 1. Belépés a bejövő bizonylat ablakba. A „Forgalom” menüben a „Bizonylat” almenüre

állva az <Enter> billentyűt megnyomni. 2. A megjelenő ablaknak a jobb felső sarkában a legördülő menüt a „Vételi jegy”-re kell

állítani 3. A bérfőzető nevét ki kell választani. (Ha nincs benne az ügyfelek között, akkor előtte fel

kell venni az ügyféltörzsbe.) 4. A „Tétel felvitel” nyomógombra állva majd az <Enter> billentyűt lenyomva belép a

felvitel ablakba.

3/5

Page 51: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

5. A felvitel ablakban a „Felvitel” nyomógombbal lép a tételsorba. 6. A tételsorban kell felvinni az átvett cefrét.

7. A raktári kódnál megadható a tároló tartály is. 8. Amikor a tételeket rögzítették, akkor „ESC” billentyűvel visszaléphet a bejövő bizonylat

ablakba, ahol a „nyomtat” nyomógombbal indíthatja a mentést és a nyomtatást 9. Jóváhagyás: „Az adatokat menthetem?” Igen 10. Jóváhagyás: „Az árut most tegyem a raktárba?” Igen 11. Nyomtat ablak jelenik meg és ott a „Nyomtat” nyomógombra elindítja a nyomtatást.

4/5

Page 52: Szakdolgozat OYiQWDUWyV]RIWYHUSiOLQNDpVERUI ...midra.uni-miskolc.hu/document/27223/22792.pdfKözös profil 7iPRJDWPLQGHQHV]N|]W (]OHKHW YpWHV]LDIHMOHV]W NQHN , hogy közös programozási

Bérfőzés, származási igazolvány

A bérfőzésről a jogszabályoknak megfelelő nyilvántartást kell vezetni. A származási igazolvány kitöltését a bérfőzés megkezdésekor el kell kezdeni. nyilvántartást a pálinkafőzésről. Először ki kell választani azt a cefre átvételit, amelyikből a főzés történik. Elérési útvonal: Forgalom Származási Enter 1. Belépés a bérfőzési modulba. A „Forgalom” menüben a „Származási” almenüre állva az

<Enter> billentyűt megnyomni.

2. A megjelenő ablakban meg kell nyomni az <Enter> billentyűt majd a megjelenő listából

kiválasztani a cefre átvételi számát. 3. A további adatokat értelemszerűen megadni. 4. A lista részben a főzéshez kapcsolódó adatokat kell megadni. Három sort lehet maximum

felvinni. 5. Amikor a tételeket rögzítették, akkor „ESC” billentyűvel visszaléphet a „nyomtat”

nyomógombra. Azt meg kell nyomni az <Enter> billentyűvel a mentéshez és nyomtatáshoz.

6. Jóváhagyás: „Az adatokat menthetem?” Igen 7. Nyomtat ablak jelenik meg és ott a „Nyomtat” nyomógombra elindítja a nyomtatást.

5/5