Hibakeresés és naplózás Java környezetben

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Hibakeresés és naplózás Java környezetben"

Átírás

1 Hibakeresés és naplózás Java környezetben Célok, lehetőségek, minták, implementáció Konstantinusz Kft. 2009

2 1. Tartalomjegyzék 1. Tartalomjegyzék Bevezetés Hibakeresés probléma felvetés A hiba reprodukálása A hiba azonosítása A hiba javítása Naplózás Log keretrendszerek Szintek Logger helyes hívása a kódban Kivételek naplózása Különböző környezetek Összefoglalás Bevezetés A szoftverfejlesztés egyik nagy igazsága az, hogy nincs kész rendszer. Valamilyen formában mindig változik: újabb igények kerülnek megvalósításra, új környezetbe kerül, változnak a rendszer paraméterei. Ennek következménye az, hogy a rendszer teljes élettartamában találkozunk újabb és újabb hibákkal. Előfordulhat, hogy egy régebbi fejlesztés reagál kedvezőtlenül egy új paraméter értékre, vagy új fejlesztés hoz nem várt eredményt. Ezért van szükség arra, hogy a rendszer felépítésében és kommunikációjában maximálisan támogassa a hibakereséssel kapcsolatos elvárásokat. Az egyes programegységek egységesen kerüljenek naplózásra, a rendszerüzenetek, és a naplóbejegyzések megfelelő információkat tartalmazzanak az eseményekről. 3. Hibakeresés probléma felvetés A hibákra előbb vagy utóbbi fény derül. Az esetek többségében a felhasználó funkcionális tesztet végző vagy éles rendszert használó találkozik vagy logikai hibával, vagy olyan működésbeli problémával, ami a feladat végrehajtását lehetetleníti el. A hiba jelentkezhet például egy üzleti folyamat végrehajtása közben vagy az után, az eredmény ellenőrzésekor a rendszer outputjait vizsgálva egy riportban vagy esetleg adatbázisban. Miután a felhasználó észlelte a hibát a szoftvert szállítójának feladata, hogy reprodukálja, azonosítsa és javítsa azt a felhasználói leírások, inputok és az alkalmazás outputok alapján. 2/11

3 Ehhez kapunk segítséget, ha alkalmazzuk a naplózó eszközöket (logging), illetve lépésről lépésre vizsgáljuk a kódot (debug). A két módszer szemléletében és alkalmazási módban eltérő, azonban mindkettő fontos szerepet kap a szoftverhibák elhárításában. Mielőtt részletezzük az első módszert vizsgáljuk meg, hogy milyen feladatokat kell elvégeznünk miután egy hiba a tudomásunkra jutott A hiba reprodukálása A hiba reprodukálhatósága alatt azt értjük, hogy ugyanazon verziójú alkalmazással egy másik környezetben, egy másik példányon is előállítható, megismételhető. A hiba reprodukálására szükség van, egyrészt a hiba azonosításához, másrészt a javítás teszteléséhez. Ha a hiba azonosításához szükséges információk nem állnak rendelkezésre, vagy felmerült a gyanú, hogy a hiba hatása több feladatot is érint, és szükség van a hiba követésére e feladatok esetén is, akkor még az azonosítás előtt reprodukálni kell a hibát. Ha a hiba azonosítása már megtörtént, akkor csak a javítás utáni teszteset összeállításához szükséges az, hogy a hibát újra elő tudjuk állítani. A hiba reprodukálása koránt sem olyan egyszerű probléma, mint ahogy első hallásra tűnik. Azt gondolnánk, hogy elegendő ugyanazokat az adatokat felvinnünk a képernyőkön, amiket a felhasználó is felvitt korábban, és már is megvan a hiba. Azonban ez csak ritkán és viszonylag egyszerű feladatok estén vezet eredményre. Figyelembe kell vennünk még a környezet egyes részeit, amennyiben hatásuk van az adott feladatra: az adatbázis állapotot egyéb külső paraméterek integrációs környezet a rendszerben korábban végrehajtott feladatok A legtöbb esetben csak a fentiek figyelembevételével sikerülhet a hiba reprodukálása. Azt tűzzük ki tehát célul, hogy a megfelelő információk álljanak rendelkezésre akkor, amikor a hibát reprodukálni szeretnénk. Az információk konkrét tartalma az üzleti esettől függ, a feladat határozza meg. Feltételezzük, hogyha a megfelelő információk megvannak, akkor a hiba reprodukálható A hiba azonosítása A hiba azonosítása alatt azt értjük, hogy megvan a programkódban az a rész, ami az adott paraméterek alapján a hibás működést eredményezi. A hiba azonosításához nem feltétlenül van szükség a reprodukálásra. Amennyiben a hibával kapcsolatban kapott információk elégségesek az azonosításához, és egyértelmű a probléma, nem kell megvárnunk a reprodukálást, lehet a kettőt párhuzamosan végezni. 3/11

4 Gyakran előfordul az például helytelen kivételkezelés esetén, hogy a kapott hiba egy előzőleg elnyelt kivétel, korábbi hiba miatt következik be. Ekkor általában a legrészletesebb stacktrace és leírás sem elegendő, ugyanis nem az okról kapunk információt, hanem csak a következményről. A következmény pedig nem határozza meg egyértelműen magát a kiváltó okot. A helytelen kivételkezelés szélsőséges esetben történhet egy másik feladatban, egy másik modulban, sőt akár egy másik alkalmazásban is. Az a cél, hogy alkalmazás ne adjon félrevezető információkat a hiba előfordulásának programkódbeli helyéről, azaz ne legyenek elnyelt kivételek A hiba javítása A hiba javítása talán egy kicsit kevésbé tartozik e témakörhöz, mint az előző kettő. Mégis fontos megemlíteni, hogy azon túl, hogy a konkrét logikai hibát kijavítjuk, fordítsunk arra is figyelmet, hogy ha esetleg az azonosításhoz vagy a reprodukáláshoz nem álltak elő a megfelelő információk, akkor azokat pótoljuk a javításkor, jelenítsük meg a logban. Esetleg, ha látszanak hasonló hiányosságok egyéb program részekben, akkor azokat is alakítsuk át, hogy a megfelelő információk megjelenjenek egy későbbi nyomozást támogatva. A cél az, hogy a hiba javításkor is kövessük a meghatározott logolási mintát illetve, ha eltérést találunk attól, akkor javítsuk azt is. 4. Naplózás Ma már nem kell naplózó keretrendszert fejleszteni az alkalmazás részeként. Nem kell kitalálni, hogyan rögzüljenek a naplóbejegyzések. Már kezünkben vannak azok a log keretrendszerek, melyek sok év tapasztalatát fogják össze magukban, és nagyon jó eszközrendszert adnak a kezünkbe, hogy egységes, jól paraméterezhető log környezetet hozzunk létre egy alkalmazáson belül Log keretrendszerek A Java keretrendszerek közül elsőként az Apache commons-logging-ot kell szemügyre vennünk. Meglepően nem a JDK-ban helyet kapott Logger a legáltalánosabb eszköz, hanem a commonslogging. Ez a vékony keretrendszer egy absztrakt réteget húz minden logger implementáció fölé a JDK fölé is. Ezért van az, hogy ideális döntés, ha ezt kötjük az alkalmazásba. Mivel az alkalmazásunkba egy absztrakt réteget kötöttünk be így annak segítségével különböző logger keretrendszereket is összekapcsolhatunk vagy váltogathatunk közöttük kedvünkre csupán a konfigurációt módosítva. Sok előnye közül ez az egyik, ha a commons-logging keretrendszert használjuk az alkalmazásunkban. Sokszor viszont mégsem használjuk a commons logging-ot, mivel a log4j egy másik keretrendszer önállóan is képes ellátni egy alkalmazás egységes loggolását. Amennyiben nem 4/11

5 kívánjuk változtatni az logger implementációt, a log4j-t is köthetjük az alkalmazásba. Abban az esetben van szükségünk commons loggingra, ha felmerül, hogy az adott implementációt cseréljük az alkalmazásunk alatt. # Use Log4j org.apache.commons.logging.log=org.apache.commons.logging.i mpl.log4jlogger # Configuration file of the log log4j.configuration=log4j.properties 1. kódrészlet commons-logging.properties log4j implementációval 1.5. Szintek A legtöbb keretrendszer egyik központi koncepcionális eleme az egyes log üzenetek küldésekor definiálható szint. A szint a naplóüzenet olyan tulajdonsága, amit a keretrendszer használ annak eldöntésére, hogy az adott üzenetet kell-e naplózni adott konfiguráció mellett vagy nem. A különböző szintek különböző napló részletezettséget képviselnek. A különböző keretrendszerek eltérnek abban, hogy milyen szinteket használhatunk illetve, hogy definiálhatunk-e saját szinteket vagy sem. Nézzük a leggyakrabban használt szinteket és szerepüket: TRACE A műveletek minden részletét naplózzuk. DEBUG A hibakeresést támogató napló bejegyzéseket naplózzuk. INFO A program futásával kapcsolatos, tájékoztató információkat naplózzuk. WARN Valamilyen szokatlan működést jelző bejegyzéseket naplózzuk. ERROR Hibák naplózása. FATAL Leálláshoz vezető hibákat naplózzuk. A szinteket két helyen használjuk: loghívás paramétereként a programkódban konfigurációs beállításként az aktuális futás naplózására A szintek között egy rendezési reláció áll fenn. A fenti lista a leggyengébbtől indul a legerősebbig. Az a szabály, hogy a konfigurált szint és az annál erősebb üzenetek jelennek meg a naplóban. Nézzünk egy példát: A programkódban az adott üzenetet adott szinttel - jelen esetben DEBUG szinttel - küldjük el a naplózó keretrendszernek. //loghívás logger.info( Job done: +jobid); 5/11

6 2. kódrészlet loghívás üzenet <! Az üzenet nem lesz log-entry, mert a szintje kisebb, mint a konfigurált szint--> <level value="warn"/> 3. kódrészlet konfigurált szint warn > info <! Az üzenet log-entry lesz, mert a szintje megegyezik a konfigurált szinttel --> <level value="info"/> 4. kódrészlet konfigurált szint info <!-- Az üzenet log-entry lesz, mert a szintje nagyobb a konfigurált szintnél --> <level value="debug"/> 5. kódrészlet konfigurált szint debug < info 1.6. Logger helyes hívása a kódban A jól átgondolt és megtervezett naplózás komoly segítség lesz az alkalmazás későbbi szakaszaiban. Azonban akár egyetlen elhamarkodott és átgondolatlan loghívás vagy annak üzenete is súlyos problémákat okozhat. A következőkben áttekintjük azokat a problémákat és felhívjuk rájuk a figyelmet, amiket a helytelenül alkalmazott naplóbejegyzések okozhatnak. A problémákat és azok elkerülését három aspektusból vizsgáljuk. Ez a három feladat vár arra a programozóra, aki egy bizonyos loghívást szeretne elhelyezni a programkódban. Megfelelő üzenet előállítása Az üzenetek formátuma általában String. Ezt könnyen emésztik a keretrendszerek, és valóban a legmegfelelőbb forma egy naplóbejegyzéshez. A String példány sokféleképpen előállhat. Nézzünk néhány példát a legegyszerűbbtől a bonyolultabbakig. 6/11

7 // i) logger.info( Checking Job. ); // ii) logger.info( Checking Job: +jobid); // iii) logger.info( Checking Job: +job.getid()); // iv) logger.info( Checking Job: +jobid.tostring()); 6. kódrészlet egyszerű üzenetek Az első esetben nagy valószínűséggel nem adódik probléma futás közben. Annál több adódhat viszont akkor, amikor értelmezni próbáljuk a naplót. A legegyszerűbb, és legveszélytelenebb módja a log üzenet előállításához. Kétségtelen azonban, hogy a legkevésbé informatív is. Sok esetben valóban elegendő a statikus üzenet, viszont az e fajta üzeneteknél kell a leginkább odafigyelni a meg fogalmazásra. Ebben az esetben sem történik probléma, viszont az előálló String példány szélsőséges esetben értelmetlen lehet. Mivel jelen példában nem tudunk a loghívás környezetéről semmit, tegyük fel, hogy lehetséges az az esetet, amikor a jobid=null. Ekkor a következő eredményt kapjuk: Checking Job: null Természetesen értelmező a naplóbejegyzés, ha tudjuk a mögöttes logikát. Viszont egy avatatlan szem nem sok információt képes kinyerni ebből. Tartsuk szem előtt azt, hogy laikusok is olvashatják a naplót. Jó megoldás lehet a következő: // ii) logger.info( Checking Job: + (jobid==null? unknown check previous log-entries for error :jobid) ); Ekkor már egy barátságosabb üzenetet kapunk: Checking Job: unknown check previous log-entries for Talán most már látszanak a problémák a következő bejegyzésekkel is. A harmadik esetben már súlyos problémát (NullPointerException-t) kapunk, ha a job null értéket vesz fel. 7/11

8 Természetesen ekkor is segít a következő: // iii) logger.info( Checking Job: + (job==null? unknown check previous log-entries for error :job.getid()) ); Értelmetlen és buta, mégis gyakori hiba az, amikor egy már létező vagy új loghívásban valamelyik objektum után explicit meghívjuk a tostring() metódust. Természetesen, ha nincs ott az explicit hívás, akkor az adott objektum példányon valóban a tostring() hívódik meg automatikusan. Viszont ez esetben job=null esetén a null, mint szöveg jelenik meg a bejegyzésben. Explicit tostring() esetén pedig előáll a iii) eset és a NullPointerException probléma. A fenti példák egyszerűen elkerülhetők, mégis sok hibaforrást rejtenek, ha nem figyel a fejlesztő. A következőkben nézzünk meg komplexebb naplózási igényt és megoldást. Az alap probléma az, hogy az üzenetet össze kell állítani valamilyen logika szerint. Viszont ezt a logikát csak abban az esetben szeretnénk futtatni, amennyiben maga a loghívás logentry-t hoz majd létre, azaz a konfigurációban szereplő szint gyengébb vagy azonos, mint a loghívásban szereplő szint. // i) helyes if(log.isdebugenabled()) { String message; // üzenet előállító logika // csak akkor fut le, // ha debug entry-ket is naplózunk log.debug(message); } // ii) helyes String message=null; if(log.istraceenabled()) { // üzenet előállító logika // csak akkor fut le, // ha trace entry-ket is naplózunk } // az üzenet előállítása korábban történik, mint az üzenet naplózása log.trace(message); 8/11

9 // helytelen String message; // üzenet előállító logika // mindig lefut log.debug(message); A megfelelő szint megválasztása 6. kódrészlet elérhető szint vizsgálata helyes - helytelen Tartsuk szem előtt, hogy a szintek szerepe az, hogy lehetőség legyen megkülönböztetni a naplót vizsgáló felhasználók körét. Ne jelenítsünk meg felesleges üzeneteket az erősebb szinteken, ha azok nem szükségesek az adott napló olvasónak. Az is fontos azonban, hogy a szükséges üzenetek ne maradjanak gyengébb szinten, ha az egy erősebb szintet is érdekelheti. Az alábbiakban egy általános mintát látunk a szintekre és az üzenetek tartalmára vonatkozóan. A trace szinten általában az algoritmusok részeredményeit jelenítjük meg. A trace szint teljes és egységes alkalmazása komoly kihívás. Emiatt és az erőforrás igény miatt legtöbbször el is marad, és csak néhány kulcs algoritmus esetén valósul meg. A debug szint a paraméterek és az algoritmusok végeredményének naplózására használható. Ez az információ általában elégséges a legtöbb hiba reprodukálásához és azonosításához. Az info szint a felhasználó, adminisztrátor, vagy egyéb rendszerek szempontjából fontos üzeneteket jeleníti meg. Az üzemeltetéshez szükséges információkat szolgáltatja. A programban történő elhelyezés Azt már láttuk, hogy lehet vizsgálni a szükséges szint aktív voltát. Ezen túl viszont fontos az is, hogy a különböző utasításokban milyen hatása lesz a loghívásnak. Vizsgáljuk meg az if then else szerkezetet. A logikától függően legtöbbször info szinten szükség van a feltétel kiértékelésének eredményére. Debug szinten pedig szinte mindig. Azaz legalább debug szinten naplózni kell a feltétel eredményét. Ezt a következőképpen érdemes megtenni. 9/11

10 if(){ log.debug( World Peace Completed ); } else if(){ log.debug( World Peace Still In Progress ); } else{ log.debug( World Peace Failed But Not Given Up ); } Másik fontos szerkezet a ciklus. Velük kapcsolatban arra kell ügyelni, hogy a ciklusmagba írt loghívás többször megtörténik. Tehát ha van olyan rész az üzenetben, mely a cikluson kívül előállítható, akkor azt tegyük meg. Nagyszámú ismétlés esetén gyorsan növekszik a logfájl mérete. Feltételes ciklus befejeződése esetén fontos információ lehet a lefutások száma Kivételek naplózása A keretrendszerek lehetőséget adnak arra, hogy egy kivételt (Throwable) naplózzunk. Ezt általában megtehetjük minden szinten. A kivétel naplózása azt jelenti, hogy a stacktrace-t kiírjuk a naplóbejegyzésbe. Fontos szempont, a kivételek felismerhetősége. Nézzük meg, milyen szempontoknak kell megfelelnie a kivételeknek a logfájlban: Dokumentálhatóság Egyértelműség Üzemeltető felhasználó számára azonosítható hibajelzés Egyszerű és jó megoldás az, ha minden kivételpéldányhoz vagy üzenethez kódot rendelünk, valamint, a gyorsabb behatárolhatóság kedvéért, egy prefixet rakunk a kód elé, mely az üzleti modult vagy valamilyen egyéb egységet jelöl. Ezt a módszert alkalmazva a következőképpen néz ki egy bejegyzés: [DEBUG] MOD Exception message from Module1. stacktrace [DEBUG] MOD Exception message from Module2. stacktrace A kivételek naplózásával kapcsolatban az egyik kulcs az, hogy soha ne nyeljünk el kivételt naplózás nélkül. Természetesen vannak olyan kivételek, melyeket programozás technikai okokból 10/11

11 elnyelünk (pl.: adatbázis kapcsolat lezáráskor), de az üzleti folyamatot, logikát érintő kivételeket tilos naplózás nélkül elnyelni Különböző környezetek A naplózás igazi jelentőségét akkor látjuk, amikor az alkalmazásunk több környezetben is fut. Legtöbb esetben az alkalmazás az éles környezeten túl még felhasználói teszt és fejlesztői teszt környezetekben is működik párhuzamosan. Erre azért van szükség, hogy a verzióváltások és a tesztelés gördülékenyen hajtódjanak végre. Ideális esetben az egyes környezetek identikusak, ám ez a gyakorlatban ritkán teljesül. Sokszor előfordul az, hogy az alkalmazás tesztelése nem teljes vagy csak adott környezetben fordul elő egy adott hiba. Megfelelő szintű és részletes napló esetén azonnal látjuk a hiba okát és előfordulhat, hogy elegendő csak a konfigurációs beállításokon vagy a törzsadatokon módosítani, hogy javítsuk a hibát. Az egyes környezetekben lehetőség van arra, hogy a naplózás szintjét eltérően állítsuk be. Ez akkor hasznos, ha az éles környezet naplóját nem akarjuk alacsony szintű bejegyzésekkel terhelni, viszont egy adott feladatot szeretnénk alacsony szinten végig követni a tesztrendszerben. 5. Összefoglalás Láthatjuk, hogy a megfelelő naplózás komoly segítséget nyújt mind a fejlesztőnek, mind az üzemeltetőnek hosszútávon. Az alkalmazás fejlesztésekor azonban általában nincs elegendő erőforrás az loghívások elégséges létrehozására viszont néhány kulcs funkció esetében elkerülhetetlen a részletes megvalósítás. Fontos, hogy ne csak próbálkozzunk a megfelelő naplózással, hanem fektessünk erőforrást a kialakításra az alkalmazás fejlesztése során. Ez a befektetés többszörösen megtérül majd. A helytelen, félrevezető naplózás legalább olyan káros, mint a naplózás hiánya. A megfelelő naplózás kialakítása a fejlesztői és üzemeltetői fluktuációt is nagyban megkönnyíti és csökkenti a kockázatot. Fontos a fejlesztők megfelelő instruálása a naplózással kapcsolatban. Az alkalmazott keretrendszer lehetőségeit, a naplózás mintáit és az elvárásokat is tisztázni kell. Így a rendszer egységesen kerül naplózásra. 11/11

Kivételkezelés, naplózás. Exception handling, logging

Kivételkezelés, naplózás. Exception handling, logging Kivételkezelés, naplózás Exception handling, logging Try-catch try { // Kódrészlet, amely kivételt eredményezhet catch (Exception1 object1 ) { // Az Exception1 kivétel kezelésének megfelelő kód catch (Exception2

Részletesebben

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató Integrációs mellékhatások és gyógymódok a felhőben Géczy Viktor Üzletfejlesztési igazgató Middleware projektek sikertelenségeihez vezethet Integrációs (interfész) tesztek HIÁNYA Tesztadatok? Emulátorok?

Részletesebben

Java programozási nyelv 9. rész Kivételkezelés

Java programozási nyelv 9. rész Kivételkezelés Java programozási nyelv 9. rész Kivételkezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/24 Tartalomjegyzék

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Összefoglaló jelentés

Összefoglaló jelentés Összefoglaló jelentés A 2018. évi országgyűlési képviselők választásának lebonyolítási időszakában a választást támogató informatikai rendszerek működése során történt informatikai események vizsgálatáról

Részletesebben

Verifikáció és validáció Általános bevezető

Verifikáció és validáció Általános bevezető Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának

Részletesebben

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22 Unit Teszt Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 1 / 22 Tartalomjegyzék 1 Bevezetés 2 Unit Teszt 3 Példa Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 2 / 22 Szoftvertesztelés

Részletesebben

LETÉTKEZELŐ NYILVÁNTARTÁSI RENDSZER

LETÉTKEZELŐ NYILVÁNTARTÁSI RENDSZER LETÉTKEZELŐ NYILVÁNTARTÁSI RENDSZER Felhasználói kézikönyv a területi adminisztrátorok számára 1.2 verzió 2015.május 14. Dokumentum adatlap Projekt/modul megnevezése: Magyar Ügyvédi Kamara Letétkezelő

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

Az alállomási kezelést támogató szakértői funkciók

Az alállomási kezelést támogató szakértői funkciók Az alállomási kezelést támogató szakértői funkciók dr. Kovács Attila Szakértői rendszerek Emberi szakértő kompetenciájával, tudásával rendelkező rendszer Jellemzői: Számítási műveletek helyett logikai

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 8. Gyakorlat modulok random számok (utolsó módosítás: 2017. aug. 3.) Szathmáry László Debreceni Egyetem Informatikai Kar 2017-2018, 1. félév Modulok Amint a programunk

Részletesebben

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3

Részletesebben

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Email: info@silentsignal.hu Web: www.silentsignal.

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Email: info@silentsignal.hu Web: www.silentsignal. Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Email: info@silentsignal.hu Web: www.silentsignal.hu. 1 Tartalom 1. BEVEZETŐ... 3 1.1 Architektúra (terv) felülvizsgálat...

Részletesebben

Programrendszerek tanúsítása szoftverminőség mérése

Programrendszerek tanúsítása szoftverminőség mérése SZEGEDI TUDOMÁNYEGYETEM Programrendszerek tanúsítása szoftverminőség mérése Dr. Gyimóthy Tibor Dr. Ferenc Rudolf Szoftverminőség biztosítás Fő cél: az üzemelő IT rendszerekben csökkenteni a hibák számát

Részletesebben

TOGAF elemei a gyakorlatban

TOGAF elemei a gyakorlatban TOGAF elemei a gyakorlatban Vinczellér Gábor 2009.06.0406 04 8 éves szakmai tapasztalat Bemutatkozás IT Support, Programozó, jelenleg Projektvezető, Termékfejlesztési Üzletág Vezető Tanácsadási és Szoftverfejlesztési

Részletesebben

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet

Részletesebben

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

Név: Neptun kód: Pontszám: Név: Neptun kód: Pontszám: 1. Melyek a szoftver minőségi mutatói? Fejlesztési idő, architektúra, programozási paradigma. Fejlesztőcsapat összetétele, projekt mérföldkövek, fejlesztési modell. Karbantarthatóság,

Részletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

Grid menedzsment megoldás az ARC köztesrétegben

Grid menedzsment megoldás az ARC köztesrétegben Grid menedzsment megoldás az ARC köztesrétegben Intézetünk az Új Magyarország Fejlesztési Terv TÁMOP 4.1.3[1] alprojektjének keretén belül dolgozott ki sikeresen egy jól működő megoldást egy olyan problémára,

Részletesebben

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 9. ELİADÁS Kivételkezelés (Exception handling) 2 Mi a kivétel (exception)? A kivétel, olyan hibás állapot vagy esemény, amely

Részletesebben

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. OOP #6 (VMT és DMT) v1.0 2003.03.07. 19:33:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_06-1 - E jegyzet másolata

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott jáva programok automatikus tesztelése Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott alkalmazások Automatikus tesztelés Tesztelés heurisztikus zaj keltés Tesztelés genetikus

Részletesebben

Modell alapú tesztelés mobil környezetben

Modell alapú tesztelés mobil környezetben Modell alapú tesztelés mobil környezetben Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A terület behatárolása Testing is an activity performed

Részletesebben

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1 OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Különféle élőlények egy túlélési versenyen vesznek részt. A lények egy pályán haladnak végig, ahol váltakozó terep viszonyok vannak.

Részletesebben

Csináljunk az adatból információt! A Lone-Soft listázó keretrendszerrel

Csináljunk az adatból információt! A Lone-Soft listázó keretrendszerrel Csináljunk az adatból információt! A Lone-Soft listázó keretrendszerrel A piacon lévő ügyviteli szoftverek jó részének legnagyobb hibája, hogy a letárolt adatokat nem képesek a felhasználó által hasznosítható

Részletesebben

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve Kérdő Attila, ügyvezető, INSERO Kft. EOQ MNB, Informatikai Szakosztály, HTE, ISACA 2012. május 17. Módszertanok

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

Digitális aláíró program telepítése az ERA rendszeren

Digitális aláíró program telepítése az ERA rendszeren Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,

Részletesebben

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció ERA Elektronikus aláírás - felhasználói dokumentáció Tartalomjegyzék 1. Bevezető... 3 1.1. Általános információk... 3 2. DesktopSign... 3 2.1. Általános információk... 3 2.2. Telepítés... 3 3. MNBSubscriber...

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Függőség injekció Konstantinusz Kft 2010

Függőség injekció Konstantinusz Kft 2010 Függőség injekció Konstantinusz Kft 2010 1 Tartalomjegyzék 1 Tartalomjegyzék 2 2 Bevezetés 3 3 Függőségek formái 4 4 Függőség kezelés problémái 8 5 Megvalósítás 9 2/16 2 Bevezetés Egy objektum modellben

Részletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

ELTE, Informatikai Kar december 12.

ELTE, Informatikai Kar december 12. 1. Mi az objektum? Egy olyan változó, vagy konstans, amely a program tetszőleges pontján felhasználható. Egy olyan típus, amelyet a programozó valósít meg korábbi objektumokra alapozva. Egy olyan változó,

Részletesebben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 12. ELŐADÁS Adatbázis-kezelés Delphiben 2 Adatmegjelenítés lekérdezés segítségével A táblákhoz hasonlóan a lekérdezések is az adatbázis

Részletesebben

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson

Részletesebben

PHP-MySQL. Adatbázisok gyakorlat

PHP-MySQL. Adatbázisok gyakorlat PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen

Részletesebben

A ChipScope logikai analizátor

A ChipScope logikai analizátor A ChipScope egy, az FPGA tervbe integrálható logikai analizátor, amely az FPGA terv belső jeleinek vizsgálatára használható Előnye a normál logikai analizátorhoz képest Az igényeknek megfelelően konfigurálható

Részletesebben

Mérlegelés több cég számára

Mérlegelés több cég számára METRISoft Mérleggyártó KFT PortaWin (PW2) Jármű mérlegelő program 6800 Hódmezővásárhely Jókai u. 30 Telefon: (62) 246-657, Fax: (62) 249-765 e-mail: merleg@metrisoft.hu Web: http://www.metrisoft.hu Módosítva:

Részletesebben

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet Konfiguráció menedzsment bevezetési tapasztalatok Vinczellér Gábor AAM Technologies Kft. Tartalom 2 Bevezetés Tipikus konfigurációs adatbázis kialakítási projekt Adatbázis szerkezet Adatbázis feltöltés

Részletesebben

Komplex terheléses tesztmegoldások a Mobil PS és CS gerinchálózaton

Komplex terheléses tesztmegoldások a Mobil PS és CS gerinchálózaton Komplex terheléses tesztmegoldások a Mobil PS és CS gerinchálózaton Olaszi Péter, Sey Gábor, Varga Pál AITIA International Zrt. HTE Infokom konferencia és kiállítás, 2012. október 10 12. Változások a gerinchálózatban

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Szoftverek tesztelése 2014 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Bevezetés a programozásba

Bevezetés a programozásba Bevezetés a programozásba 1. Előadás Bevezetés, kifejezések http://digitus.itk.ppke.hu/~flugi/ Egyre precízebb A programozás természete Hozzál krumplit! Hozzál egy kiló krumplit! Hozzál egy kiló krumplit

Részletesebben

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK

Részletesebben

Kézikönyv. EDI beállítások (SetUp)

Kézikönyv. EDI beállítások (SetUp) Kézikönyv EDI beállítások (SetUp) Tartalomjegyzék Nincsenek tartalomjegyzék-bejegyzések. 2 1 Előfeltételek Az EDI (Electronic Data Interchange) és Automotive modulokkal való munka előfeltétele az EDI és

Részletesebben

Nyilvántartási Rendszer

Nyilvántartási Rendszer Nyilvántartási Rendszer Veszprém Megyei Levéltár 2011.04.14. Készítette: Juszt Miklós Honnan indultunk? Rövid történeti áttekintés 2003 2007 2008-2011 Access alapú raktári topográfia Adatbázis optimalizálás,

Részletesebben

Gyakorló feladatok Gyakorló feladatok

Gyakorló feladatok Gyakorló feladatok Gyakorló feladatok előző foglalkozás összefoglalása, gyakorlató feladatok a feltételes elágazásra, a while ciklusra, és sokminden másra amit eddig tanultunk Változók elnevezése a változók nevét a programozó

Részletesebben

Médiatár. Rövid felhasználói kézikönyv

Médiatár. Rövid felhasználói kézikönyv Médiatár Rövid felhasználói kézikönyv Tartalomjegyzék Bevezetés Tartalomjegyzék Bevezetés Bevezetés... 3 Kezdô gondolatok... 4 Hálózati követelmények... 4 Támogatott operációs rendszerek a számítógépeken...

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

4. Használati útmutatás

4. Használati útmutatás megbízható(másnéven: robusztus): mert a programozási hibák egy részét megakadályozza,a másik részét pedig futás közben kisz ri és támogatja a fejleszt t azok professzionális kezelésében. biztonságos: megakadályozza

Részletesebben

2018, Funkcionális programozás

2018, Funkcionális programozás Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a

Részletesebben

A rendszer célja. Funkciók

A rendszer célja. Funkciók A rendszer célja A Megrendelő fejleszteni kívánja a kommunikációját. A mindennapi munka során egyre nagyobb igény jelentkezik az üzenetváltások pontos kezelésére, naplózására, nagyméretű, illetve sok címzettet

Részletesebben

Python bevezető foglalkozás Python bevezető foglalkozás

Python bevezető foglalkozás Python bevezető foglalkozás Python bevezető foglalkozás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok konzol input és output (input(), print()) vezérlési szerkezetek (if/else, while)

Részletesebben

Webes alkalmazások fejlesztése 10. előadás. Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté

Webes alkalmazások fejlesztése 10. előadás. Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 10. előadás Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu

Részletesebben

Concurrency in Swing

Concurrency in Swing Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon

Részletesebben

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK MUNKAERŐ-PIACI IGÉNYEKNEK MEGFELELŐ, GYAKORLATORIENTÁLT KÉPZÉSEK, SZOLGÁLTATÁSOK A DEBRECENI EGYETEMEN ÉLELMISZERIPAR,

Részletesebben

Hozzáférési szintek és Időzónák használata

Hozzáférési szintek és Időzónák használata Hozzáférési szintek és Időzónák használata Áttekintő Net2 A Hozzáférési Szint a Net2 szíve. Mindegyik egy kapcsolatot határoz meg az ajtók és azon időszakok között, amikor a felhasználó jogosult a használatukra.

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben

Kivételkezelés. Tesztelés, hibakeresés, kivételkezelés. Programozás II. előadás. http://nik.uni-obuda.hu/prog2 Szénási Sándor

Kivételkezelés. Tesztelés, hibakeresés, kivételkezelés. Programozás II. előadás. http://nik.uni-obuda.hu/prog2 Szénási Sándor Kivételkezelés Tesztelés, hibakeresés, kivételkezelés előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Tesztelés Hibakeresés

Részletesebben

A Feldspar fordító, illetve Feldspar programok tesztelése

A Feldspar fordító, illetve Feldspar programok tesztelése A Feldspar fordító, illetve Feldspar programok tesztelése [KMOP-1.1.2-08/1-2008-0002 társfinanszírozó: ERFA] Leskó Dániel Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék

Részletesebben

Imperatív programozás

Imperatív programozás Imperatív programozás 7. Előadás Függvények, láthatóság (folytatás) Modulok Kivételkezelés Beágyazott függvény def lnko(x, y): def kivon(m, n): return m - n while not (x == y) : if x > y : x = kivon(x,y)

Részletesebben

Objektum elvu alkalmaza sok fejleszte se

Objektum elvu alkalmaza sok fejleszte se Objektum elvu alkalmaza sok fejleszte se 3. beadandó feladat Szerző Név: Budai Martin Neptun-kód: PLAB9E E-mail: budai.martin@outlook.com Kurzuskód: 4 Feladat sorszáma: 2 Feladat Egy bolygón különböző

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Funkcionális Nyelvek 2 (MSc)

Funkcionális Nyelvek 2 (MSc) Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása

Részletesebben

PortaWin (PW2) Jármű mérlegelő program Mérlegelés több cég számára

PortaWin (PW2) Jármű mérlegelő program Mérlegelés több cég számára METRISoft Mérleggyártó KFT PortaWin (PW2) Jármű mérlegelő program 6800 Hódmezővásárhely Jókai u. 30 Telefon: (62) 246-657, Fax: (62) 249-765 e-mail: merleg@metrisoft.hu Web: http://www.metrisoft.hu Módosítva:

Részletesebben

30 MB INFORMATIKAI PROJEKTELLENŐR

30 MB INFORMATIKAI PROJEKTELLENŐR INFORMATIKAI PROJEKTELLENŐR 30 MB DOMBORA SÁNDOR BEVEZETÉS (INFORMATIKA, INFORMATIAKI FÜGGŐSÉG, INFORMATIKAI PROJEKTEK, MÉRNÖKI ÉS INFORMATIKAI FELADATOK TALÁKOZÁSA, TECHNOLÓGIÁK) 2016. 09. 17. MMK- Informatikai

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

Órarendkészítő szoftver

Órarendkészítő szoftver SchoolTime Órarendkészítő szoftver 2.0 verzió Tartalomjegyzék: 1., Belépés a programba...3 2., Órarend főtábla...3 3., Tanátok...4 3.1., Új tanár felvitele, módosítása...4 3.2., Tanár törlése...4 3.3.,

Részletesebben

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft. Norway Grants AKKUMULÁTOR REGENERÁCIÓS ÉS Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai Kakuk Zoltán, Vision 95 Kft. 2017.04.25. Rendszer szintű megoldás

Részletesebben

Objektum orientált programozás Bevezetés

Objektum orientált programozás Bevezetés Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Követelmény A beadandó dokumentációját a Keszthelyi Zsolt honlapján található pdf alapján kell elkészíteni http://people.inf.elte.hu/keszthelyi/alkalmazasok_fejlesztese

Részletesebben

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma és programfejlesztés Bevezető Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

Interfészek. PPT 2007/2008 tavasz.

Interfészek. PPT 2007/2008 tavasz. Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált

Részletesebben

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás: Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

Minőségi téradat-szolgáltatások. fejlesztése és. és üzemeltetése

Minőségi téradat-szolgáltatások. fejlesztése és. és üzemeltetése Minőségi téradatszolgáltatások fejlesztése és üzemeltetése Kolesár András térinformatikus, webfejlesztő Budapest Főváros Kormányhivatala Földmérési, Távérzékelési Földhivatali Minőségi téradat-szolgáltatások

Részletesebben

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László) Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Végrehajtói Nyilvántartó Rendszerbe illeszkedő Postázási modul ismertetése

Végrehajtói Nyilvántartó Rendszerbe illeszkedő Postázási modul ismertetése Oldalak: 1/10 Ez a modulkiegészítés a Végrehajtói Nyilvántartó Rendszerben elkészülő nyomtatványok postai vagy kézi kézbesítésének fárattságos dokumentálását hivatott felváltani gépi nyilvántartással.

Részletesebben

Kölcsönhatás diagramok

Kölcsönhatás diagramok Kölcsönhatás diagramok Célkitűzés Olvasni tudják az alap UML kölcsönhatás diagramok (kommunikáció és szekvencia) diagramok jelöléseit. 2 Bevezetés Miért léteznek az objektumok? Azért, hogy a rendszer valamilyen

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

A DigiKresz internetes gyakorló program hatékony segítség az elméleti oktatást követő vizsga eredményességének növelésében.

A DigiKresz internetes gyakorló program hatékony segítség az elméleti oktatást követő vizsga eredményességének növelésében. DIGIKRESZ internetes gyakorló program Kedves Felhasználó! A DigiKresz internetes gyakorló program hatékony segítség az elméleti oktatást követő vizsga eredményességének növelésében. A program előnyei a

Részletesebben

A Matarka szerszámosládája

A Matarka szerszámosládája A Matarka szerszámosládája Szeged, 2007 Perlaki Attila perlaki@kvtlinux.lib.uni-miskolc.hu 1. Feltöltés A Matarka adatbázis feltöltését a közvetlen kézi bevitelen túl XML állományokból is el lehet végezni.

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

6. fejezet: Ciklusok

6. fejezet: Ciklusok 6. fejezet: Ciklusok Mint a nyelvekben általában, itt is léteznek ciklusok. Az alapvető három ciklus-típus: elöltesztelő, hátultesztelő és számláló. Lássuk ezeket sorban! Elöltesztelő = while. A while

Részletesebben

Optimalizáció ESX-től View-ig. Pintér Kornél ügyfélszolgála3 mérnök pinter_kornel@mhm.hu

Optimalizáció ESX-től View-ig. Pintér Kornél ügyfélszolgála3 mérnök pinter_kornel@mhm.hu Optimalizáció ESX-től View-ig Pintér Kornél ügyfélszolgála3 mérnök pinter_kornel@mhm.hu MHM és referenciák MHM Computer Hungária Kft. 1996 óta Magyarországon Fókuszterületek: Adattárolás Adatmentés Archiválás

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Gyakorlati vizsgatevékenység A

Gyakorlati vizsgatevékenység A Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

az adatbevitel szabályozása, alapok

az adatbevitel szabályozása, alapok az adatbevitel szabályozása, alapok De, Tanító bácsi! Én úgy tudom, hogy ezt igazából, csak adatbázisban tudjuk megtenni! Hááát Ez igaz Pistike! Bár egy-két eszköz a táblázat-kezelő programban is a rendelkezésünkre

Részletesebben