Java programok bonyolultságát mérő program, Eclipse plugin (Nagyprogram dokumentáció)

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

Download "Java programok bonyolultságát mérő program, Eclipse plugin (Nagyprogram dokumentáció)"

Átírás

1 Java programok bonyolultságát mérő program, Eclipse plugin (Nagyprogram dokumentáció) Pataki Norbert, Sipos Ádám Témavezető: dr. Porkoláb Zoltán december 28.

2 Tartalomjegyzék 1. Bevezetés Eclipse Metrikák és a szoftvertechnológia Aspektus-orientált programozás Az antlr Tervminták AV-gráf 7 3. A metrika kibővítése az aspektus-orientált programozásra Aspektusok Advice-ok Pointcut deklarációk Példák Felhasználói dokumentáció Telepítés A plugin helye az Eclipse környezetben A kimenet Fejlesztői dokumentáció A plugin felépítése Paraméterek kezelése, felhasználói felület Szintaktikai elemzés AV-gráf építés Eredmények kimentése Osztályreferencia Tesztelési dokumentáció Mérési eredmények

3 7. Összefoglalás 22 2

4 1. fejezet Bevezetés Nagyprogramunk témája egy olyan Eclipse plugin kifejlesztése volt, amely Java illetve AspectJ programok bonyolultságát méri. Ehhez nézzük át az alapfogalmakat Eclipse Az Eclipse[1] egy ingyenes fejlesztői környezet, elsősorban Java fejlesztőknek, bár vannak lehetőségek C++, C# és egyéb nyelvek használatára is az IDEben. Az Eclipse-t Java-ban írták, nyílt forráskódú. Ugyanakkor lehetőséget ad arra is, hogy ún. plugin-okkal bővítsük a meglévő rendszert. A pluginok külön (Java) programok, amelyek beépíthetőek a meglévő rendszerbe, ezáltal kibővítve az IDE funkcionalitását. Maga az Eclipse is egy kis magtól eltekintve plugin-okból épül fel, és pluginokkal támogat olyan népszerű lehetőségeket, mint a refactoring, vagy az UML diagramok használata. Ez teszi népszerűvé a fejlesztőeszközt Metrikák és a szoftvertechnológia Már a korai időkben is felmerültek az alábbi kérdések a programokkal kapcsolatban: Milyen bonyolult a program? Mennyire könnyen illetve nehezen látható át a kód egy külső személy részéről? Milyen költsége lesz a tesztelésnek? 3

5 1.1. ábra. Az Eclipse IDE Mekkora költsége lesz a karbantartásnak és a továbbfejlesztésnek? Mérhető-e, hogy a programozó egy adott kódrészlet kapcsán helyesen döntött-e? A szoftvertechnológia ezekre a kérdésekre akart válaszolni, ezért különböző számítási modelleket dolgoztak ki. A különböző mérési eljárások által használt kiadott számadat a metrika. Például a legtriviálisabb mérték, a program sorainak a száma. Az idők folyamán programozási nyelvek és a paradigmák folyamatosan változtak, de az alapkérdések nem. Emiatt számos metrika alakult ki főleg az aktuális paradigmára korlátozva a számadat racionalitását Aspektus-orientált programozás A Java lett a melegágya egy új paradigma kifejlődésének. Az új paradigma az objektum-orientált paradigma felett valósult meg. Az új paradigmát 4

6 aspektus-orientált programozásnak nevezték el. Az aspektus-orientált programozás egy magasabb szintű absztrakciót vezet be az objektum-orientált programozáshoz képest. Megadja nekünk az alkalmazáslogikát keresztülvágó (crosscutting) síkok kiemelésének lehetőségét. Az AspectJ-re[2, 3] keresztelték a Java aspektus-orientált kiterjesztését. Mára számos nyelvet bővítettek ki az új paradigma használatára, pl. C++, Ruby, Python, PHP, stb.. Az új paradigma kapcsán, mindenkinek van szubjektív véleménye, hogy jobb-e, mint az objektum-orientált paradigma, sőt bizonyos feladattípusok kapcsán,,érezhetően jobb az új fajta megközelítés, ilyen például, amikor hibafelderítést kell végezni egy kódban (debug-golás), mert az eredeti kód módosítása nélkül tudjuk ezt elvégezni. Ugyanakkor nincs objektív információnk arról, hogy mikor érdemes az aspektus-orientáltságot kihasználni. Például, a [8] dolgozatban egy bonyolultabb alkalmazás kapcsán próbálta a szerző összehasonlítani a két paradigmát: a fejlesztés időtartama, a tesztelés időtartama, az ELOC metrika (Effective Lines of Code valódi kódsorok száma) illetve, informális eszközökkel: karbantarthatósági, újrafelhasználhatósági, modularitási jellemzőkkel. Az általánosan használt aspektus-orientált metrikák összefoglalása megtalálható a [9] cikkben. Ebben elég egyszerű metrikákat használnak, mint például a gyermekek száma (NOC Number of Children), ami összeszámolja az alosztályokat és az alaspektusokat, vagy egy aspektus keresztülvágásának a foka (CDA Crosscutting Degree of an Aspect), ami az egy aspektus által érintett modulok számát határozza meg. Hasonló metrikák leírása megtalálható a [10] honlapon is. Itt az adott metrikák implementációja is megtalálható Az antlr Az antlr[4] ANother Tool for Language Recognition egy parser generátor program, azaz egy nyelvtan szabályaiból elkészíti a lexikális és a szintaktikus elemzőt[5]. Sajnos, az AspectJ nyelvtana nem létezik megfelelő formátumban, ezért a Java nyelvtani szabályokat mi bővítettük ki, hogy aspektus-orientált programozást is lehessen elemezni Tervminták A tesztelés folyamán a tervmintáknak fontos szerepe volt, ezért ejtünk néhány szót ezekről is. 5

7 A tervminták (design patterns)[7] az objektum-orientált programozás e- gyik fontos eszköze. Bizonyos általános célú feladatokra nyújtanak általános érvényű megoldásokat, ezért használatuk mindennapos objektum-orientált környezetekben. Szokás osztályozni a tervmintákat, eszerint vannak létrehozási, szerkezeti, és viselkedési tervminták. A legismertebb tervminták: a singleton (egyke), az iterator, a feljegyzés, a figyelő. 6

8 2. fejezet AV-gráf Az AV-gráf mérték programok bonyolultságának mérésére alkalmas. Érdekessége, hogy mind a strukturális, mind az objektum orientált tulajdonságok alapján mér, nem pedig egy-egy kiragadott jellegzetességet használ fel. Ezt a paradigma-függetlenséget felhasználtuk arra, hogy aspektus-orientált programok bonyolultságát is meghatározhassuk. Az AV-gráf formális bevezetése megtalálható a [6] dolgozatban. Az AV-gráf bevezetését a programok adatkezelése indokolta: A Howatt és Baker-féle szám a vezérlési gráfok bonyolultságát igen jól kifejezi, azonban az adatok kezelését nem veszi figyelembe. Ellenben, az AV-gráf mindkét aspektus szerint határozza meg egy program bonyolultságát, és még ezen is túlmutató dolgokat is figyelembe vesz, mint például az adatáramlás iránya: a bonyolultság szempontjából nem mindegy, hogy írunk, olvasunk vagy írunk és módosítunk egy adatot. Az AV-gráfot a program szintaxisfájából kaphatjuk meg: az AV-gráf építésekor mindig el tudjuk dönteni, hogy utasítás csúccsal vagy adat csúccsal bővítjük a gráfot a vezérlési szerkezetnek megfelelően, a Java szemantikai értelmezése alapján az adatáramlás irányának megfelelően élet illetve éleket tudjuk a gráfba felvenni. Osztályok esetében, az osztály AV-gráfja az osztály függvényeinek AVgráfjainak az összessége. A gráfból lehet meghatározni a programok bonyolultságát, az AV-gráfot kell bejárni és összeadni a különböző részgráfokhoz tartozó bonyolultságokat. Az alábbi példa egy Java nyelven írt dátum osztály kódja és a hozzátartozó AV-gráfja: public class Date { private int year; 7

9 private int month; private int day; void set_next_month() { if (month == 12) { month = 1; ++year; } else ++month; } } void set_next_year() { if (year == -1) year = 1; else ++year; } 8

10 3. fejezet A metrika kibővítése az aspektus-orientált programozásra Mivel a [6] dolgozatban található metrika paradigma független, elsősorban ennek a bővítésével foglalkozunk. A paradigma függetlenség azt jelenti, hogy a metrika egyaránt használtható struktúrált, objektum-orientált, generikus vagy akár aspektus-orientált programokra is, esetleges bővítéssel. Vizsgáljuk meg, hogy a különböző AspectJ konstrukciók, hogyan befolyásolják a programok bonyolultságát Aspektusok Az aspektusok foglalják egységbe az advice-okat (lejjebb), vannak adatai, függvényei, tartalmazhat named pointcut-okat. Így ezek nagyon hasonlóak az osztályokhoz: vannak adatai (adattagjai) és advice-ai (ez tagfüggvény fogalmához áll közel). Így egy aspektus bonyolultsága: az adattagok, a tagfüggvények, az adviceok és a pointcutok bonyolultságának összege Advice-ok Az advice-ok fogalmazzák meg azt, hogy milyen kódot szőjjön hozzá a deklarációban szereplő függvényekhez a weaver. Az advice-ok bonyultsága az a deklaráció bonyolultságának és a törzse bonyolultságának a szorzata. 9

11 3.3. Pointcut deklarációk A pointcut deklarációk reguláris kifejezések, melyek meghatározzák, hogy az advice-ok törzsét hova kell beleszőni a programba. Lehetőség van ezeket névvel ellátni, ezesetben named pointcut-ról beszélünk Példák Az első példában egy int-et visszaadó, paraméter nélküli f függvény futását vizsgáljuk: public aspect LogAspect { before(): execution(int f()) { System.out.println("az f fuggveny elindul"); } } after(): execution(int f()) { System.out.println("az f fuggveny veget er"); } A második példa hasonló, de jóval többet bemutat a pointcut-ok lehetőségéről: a függvény neve f betűvel kell, hogy kezdődjön, tetszőleges objektumot adhat vissza, és akárhány paramétere és akármilyen típusú paramétere lehet: public aspect LogAspect { } before(): execution(* f*(..)) { System.out.println("az f* fuggveny elindul"); } A következő példában további lehetőségeket vizsgáljuk: itt a nem privát, int-et vagy void-ot visszaadó, olyan foo nevű függvény meghívását elemezzük, aminek akárhány paramétere lehet, és vagy Base osztálynak vagy abból származó osztálynak a tagfüggvénye: 10

12 public aspect LogAspect { } before(): call(!private (int void) Base+.foo(..)) { System.out.println("a foo fuggvenyt meghivtak"); } 11

13 4. fejezet Felhasználói dokumentáció 4.1. Telepítés Az Eclipse futtattásához szükség van, Java Virtuális gépre. Ez ma a legtöbb gépen megtalálható. 1. A CD-ről másoljuk át az eclipse könyvtárat a merevlemezre. Ebben a verzióban már benne van a plugin, ezért mást nem kell telepíteni. Az eclipse könyvtárban lévő weights.cfg file ne legyen írásvédett, ha módosítani kell a súlyokat. 2. Ha a környezet indítása után mégsem látszódna a plugin, akkor eclipse -clean paraméterrel futassuk az eclipse-t A plugin helye az Eclipse környezetben Sikeres telepítés után, a menürendszer kibővül egy új menüponttal: Metrika néven. A menünek két pontja van: Súlyok beállítása Mérés A Súlyok beállítása menüpontban a különböző nyelvi konstrukciók bonyolultságát tudjuk állítani, és elmenteni: A Mérés menüpontot kiválasztva, eldönthetjük, hogy egy file vagy könyvtár bonyolultságát kívánjuk-e mérni: Ezután kiválaszthatjuk a megfelelő inputot, majd a következő ablakon ellenőrizhető, hogy tényleg azt szeretnénk-e mérni, illetve beállítható, hogy az AV-gráfot is el szeretnénk-e menteni a dot file-ba. Ezután a mérés gombra 12

14 kattintva kiválasztható, hogy az eredmények milyen könyvtárba kerüljenek. A kiválasztás végeztével, a számítási folyamat elindul, és amikor véget ér, ezt jelezi A kimenet A program az eredményeket file-ba írja a megadott helyre: HTML és CSV típusú file-okba, illetve lehetőség van a függvények AV-gráfjának elmentésére is. A HTML kimenetet internet böngésző programokkal (pl. Internet Explorer, Mozilla Firefox, Opera, stb.) lehet megtekinteni, a CSV file-okat pedig 13

15 Microsoft Excel-lel. Az AV gráfokat, dot file-ba menti, aminek konvertálásához mellékelünk ingyenes programot. Ez képes jpg, ps, stb. formátumba konvertálni a gráfokat. 14

16 5. fejezet Fejlesztői dokumentáció A program két részből áll: az Eclipse pluginból az elemző programból 5.1. A plugin felépítése A plugin felépítése: A plugin, mint egyke osztály A pluginhoz kapcsolódó menüpontok, ablakok és kezelő osztályok Az elemző program felépítése: A program a következő fő részekre bomlik: Paraméterek kezelése, felhasználói felület Szintaktikai elemzés AV-gráf építés Eredmények kimentése 5.2. Paraméterek kezelése, felhasználói felület Amikor az Eclipse-hez plugint írunk, szigorú szabályokat kell betartani, hogy a plugint az Eclipse különböző verziói is használni tudják. Sajnos, maga az Eclipse API-ja is rendszeresen változik. 15

17 Mivel ezek a részek emiatt nagymértékben használják az Eclipse API-t, az öröklődési hierarchiák ismertetésétől eltekintünk. Maga a plugin egy egyke objektum, a menüpontok, az ablakok pedig szintén objektumok. Az események lekezelését (például gombnyomás) anonim osztályok temporális objektumai végzik Szintaktikai elemzés Az elemzést az ANTLR csomag végzi, mely egy olyan Java nyelvtanból készít elemzot, melyet a töltöttünk le. A nyelvtant ezután módosítottuk, hogy aspektus-orientált programokat is elfogadjon, majd implementáltuk a szintaxisfa-építést. Az ANTLR egy AST típusú csúcsokból álló fát hoz létre, melyből az elemzés során szerzett információkat lehet kinyerni függvényhívások segítségével. A program feltételezi, hogy az elemzett program szintaktikusan és szemantikusan is helyes (ellenkező esetben nincs értelme bonyolultságról beszélni) AV-gráf építés A felépített szintaxisfán gráfkereséseket hajtunk végre. A program először részeire bontja az elemzett file-t: először osztályokra, majd azokat függvényekre szedi szét. Minden ily módon megtalált függvényhez készít egy AVgráfot, majd ezek súlyait összeadva képzi az osztály súlyát. Az AV-gráf a Node.java fileban implementált Node-okat, és annak leszármazottait tartalmazza. Minden utasításhoz létrehozunk egy InstructionNode-ot, majd erre egy irányított élt állítunk, és végére egy DataNode-ot kötünk 1. Az összes utasítás (értékadás, függvényhívás stb.) ilyen DataNode-ba kerül, majd erre egy másik típusú élt kötünk mely a paraméterek irányából mutat az utasításra. A paraméterek felől az utasításokba mutató élek nemcsak struktúrális tartalmazást jelenthetnek, hanem adatáramlást is. A bonyolultságba ez az írás-olvasás is beszámít. A program ezután bejárja a gráfot a struktúrális és adatfolyam élek mentén. A DataNode-ok és az élek bonyolultságát adja össze a program. 1 Több kitüntetett szerepű Instruction Node létezik, ilyen pl a PARAMETERS, mely a bejövő paramétereket köti, a RETURN, mely a függvény végét jelenti stb 16

18 5.5. Eredmények kimentése Az elemzett osztályok bonyolultságát a ComplexityData osztály példányai tárolják, ezeket csv illetve HTML file-okba tudja menteni. Az AV-gráfok a program paraméterezése szerint elmenthetők egy kimeneti dot file-ba. A struktúrális élek itt fekete éllel, az adatfolyam élek kékkel jelöltek. A Data- Node-ok háromszög alakúak, az InstructionNode-ok ellipszisek Osztályreferencia ComplexityData: egy függvény vagy osztály bonyolultságát tárolja DataNode: egy utasítás részműveleteit, azok paramétereit reprezentálja Edge: két Node közötti élt reprezentálja, lehet struktúrális (0 súlyú) illetve adatfolyam (1-2 súlyú) FileOrDirWidget: ez az osztály valósítja meg és kezeli azt az ablakot, ahol kiválasztjuk az input adat típusát, és magát az inputot 17

19 FlowGraph: az AV-gráf megvalósítása, képes megmérni a saját bonyolultságát FlowGraphBuilder: az ANTLR által elkészített szintaxisfában megtalált függvény definíciójából AV-gráfot készít InstructionNode: ezek az AV-gráf,,gerince, egy-egy utasítást jelentenek, ők,,tartják a gráfban a DataNode-okat JavaAST: az ANTLR AST osztályából származó osztály, mely a szintaxisfa egy csúcsát reprezentálja JavaLexer: lexikális elemző, az ANTLR készíti a nyelvtan alapján JavaMetric: ez az osztály kezdi el a szintaxisfa elemzését, megtalálja a különféle szerkezeti egységeket (osztály, interface stb) JavaRecognizer: szintaktikai elemző, az ANTLR készíti JavaTokenTypes: a tokeneket tároló file, az ANTLR készíti Main: főprogram MeasureOptions: a program paramétereit, beállításait tárolja MetrikaAction: a,,mérés menüpontot kezelő osztály MetrikaPluginPlugin: a plugint tároló egyke osztály MetrikaWeights: a,,súlyok beállítása menüpontot kezelő osztály MyJFace: a mérés elindítására szolgáló ablakot megvalósító és kezelő osztály Node: a Node típusok ősosztálya StartNode: egy függvény belépési pontját reprezentáló csúcs Statistics: az elemzett osztályok bonyolultságát tárolja TerminatingNode: egy függvény végét reprezentáló csúcs WeightsFace: a súlyok beállításakor látható ablakot megvalósító és kezelő osztály 18

20 6. fejezet Tesztelési dokumentáció A plugint csak Windows operációs rendszer alatt teszteltük. Bár a Java és az Eclipse is platformfüggetlen, mégis a plugin-nak előre meg kellett adni a futtattási paramétereket (pl. operációs rendszer illetve ablakozó felület). Emiatt a platform függetlenség kicsit sérül, bár szükség esetén viszonylag gyorsan át lehet állítani a plugin beállításait. A tesztelés elég komoly probléma egy ilyen szoftver kapcsán. Problémát jelent, hogy ha egy adott ponton rosszul számol a program, akkor a végeredmény nagyon eltorzulhat. Mivel hosszabb programoknak kézzel elég nehéz meghatározni a bonyolultságát, ezért arra törekedtünk, hogy a nyelvi eszközök minél szélesebb skáláját alkalmazva sok (kb ) rövid programnak határoztuk meg kézzel a bonyolultságát, és meggyőzödtünk arról, hogy a program is ezt adja eredményként. Az alábbi táblázat összefoglalja a legfontosabb teszteseteket, az,,építőkockákat, valamint az ezen kifejezésekre a program által kiszámított, majd általunk leellenőrzött bonyolultságot. Kifejezés Adatok nélkül Beágyazás nélkül Bonyolultság ++i; if (true) ++i; x=y; if (true) x=y; a=b+c; if (true) a=b+c; b+=c; if (true) b+=c; Ezen tesztesetek sikeres ellenőrzése után a programot a Tervminták javas és AOP-s megvalósításán is teszteltük, majd a kimenetként kapott AVgráfokat ellenőriztük. 19

21 6.1. Mérési eredmények A fenti kisebb programok után a [11] oldalon található tervminták Javas, majd AspectJava-s implementációján is teszteltük a programot. E megvalósítások egyenként is több osztályból, azok pedig több függvényből állnak, így egy-egy tervminta bonyolultsága ezen értékek összege. A tesztelés sikeres volt, a program ezekben az esetekben jól működött, és a mérés sikeres volt. Ezen eredményeket foglaltuk össze az alábbi táblázatban. Design Pattern neve Megvalósítás Adatok Beágyazás Bonyolultság nélkül nélkül adapter java AOP bridge java AOP builder java AOP decorator java AOP factorymethod java AOP flyweight java AOP interpreter java AOP memento java AOP observer java AOP prototype java AOP state java AOP strategy java AOP templatemethod java AOP visitor java AOP

22 Összesen 23 tervminta található meg a honlapon, ebből a programunk a fenti 14-et tudja hibátlanul parse-olni és mérni. A program további javítása, valamint az eredmények elemzése (vagyis, hogy mely esetekben érdemes aspektus-orientált paradigmát alkalmazni, és mikor nem 1 ) további kutatómunkát igényel, és terveink között szerepel. 1 Más szóval: mi az oka, hogy pl a observer vagy state minták esetében sokkal egyszerubb a kód AOP környezetben mint natív java-ban, és miért fordított a helyzet pl a strategy mintánál 21

23 7. fejezet Összefoglalás Nagyprogramunk eredményei: Kidolgoztuk az AV metrika aspektus-orientált programok feletti kibővítését Megvalósítottuk az ezt mérő programot Elkészítettük az Eclipse-plugin-t A programot sikeresen teszteltük Ennek kapcsán sok mindennel megismerkedtünk: Aspektus-orientált programozással Szoftver metrikákkal Eclipse-szel antlr-rel Összetett kérdésekkel foglalkoztunk: Aspektus-orientált programozás hatékonyabb-e, mint az objektum-orientált? Mi alapján lehet ezt objektíven eldönteni? Mely metrikák függetlenek az aktuális paradigmáktól? Milyen feladatokon érdemes a tesztet elvégezni? 22

24 További fejlesztési lehetőségek vannak az AspectJ nyelvtanának bizonyos ritkábban használt elemeinek implementálásában, és a mérési eredmények elemzése során szerzett tapasztalatok alapján a metrika további finomhangolását is el lehet végezni. Fontos teendőnk még az eredmények mélyebbre ható vizsgálata. Még további lehetőség, hogy a Java új nyelvi eszközét, a generic-et[12, 13] is belevesszük a nyelvtanba illetve a mérésekbe, ezáltal a metrikát kibővítve a generikus paradigmára is. 23

25 Irodalomjegyzék [1] Eclipse Home, [2] The AspectJ project, [3] Palo Alto Research Center, [4] ANTLR Parser Generator, [5] Csörnyei Zoltán: Bevezetés a fordítóprogramok elméletébe I-II., ELTE Kiadó, [6] Porkoláb Zoltán: Programok Struktúrális Bonyolultságának Mérőszámai, 2003 [7] Sike Sándor: Programozási Technológia II, elektronikus jegyzet, [8] Magnus Mickelsson: Aspect-Oriented Programming Compared To Object-Oriented Programming When implementing A Distributed, Web-based Application, 2004, [9] Mariano Ceccato, Paolo Tonella: Measuring the Effects of Software Aspectization, 2004, [10] aopmetrics: AOP Metrics, 2005, [11] Aspect-Oriented Design Pattern Implementations, [12] Java Generics, 24

26 [13] A Gentle Introduction to Generics in Java, 25

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20 Teljesítmény Mérés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 1 / 20 Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt

Részletesebben

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás Programozási nyelv felépítése szabályok megadása Lexika Milyen egységek építik fel? Szintaktikus szabályok

Részletesebben

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet Aspektus-orientált nyelvek XML reprezentációja Kincses Róbert Debreceni Egyetem, Informatikai Intézet kincsesr@inf.unideb.hu Bevezetés OOP: helyesen alkalmazva jó minőségű szoftvert lehet vele előállítani

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Szoftver metrika Eclipse-plugin KÉSZÍTETTE: BARTA JÁNOS (SS4TCD)

Szoftver metrika Eclipse-plugin KÉSZÍTETTE: BARTA JÁNOS (SS4TCD) Szoftver metrika Eclipse-plugin KÉSZÍTETTE: BARTA JÁNOS (SS4TCD) Témák áttekintése A szoftver metrika bemutatása Eclipse és plugin kapcsolat Jelentősebb Eclipse-pluginek ismertetése Eclipse Metrics Plugin

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

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

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése 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 Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

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 I. A Java programozási nyelv

Java I. A Java programozási nyelv Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. 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/20 Tartalomjegyzék

Részletesebben

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1 STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat

Részletesebben

Objektum Vezérelt Szoftverek Analízise

Objektum Vezérelt Szoftverek Analízise Objektum Vezérelt Szoftverek Analízise Ferenc Rudolf és Beszédes Árpád ferenc@inf.u-szeged.hu beszedes@inf.u-szeged.hu Szegedi Tudományegyetem FrontEndART Szoftver Kft. Bevezetés A szoftver rendszerek

Részletesebben

Flex: csak rugalmasan!

Flex: csak rugalmasan! Flex: csak rugalmasan! Kiss-Tóth Marcell http://kiss-toth.hu marcell@kiss-toth.hu Magyarországi Web Konferencia 2006 2006. március 18. tartalom bevezető Adobe Flex alternatív technológiák bevezető az Internetnek

Részletesebben

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout

Részletesebben

Iman 3.0 szoftverdokumentáció

Iman 3.0 szoftverdokumentáció Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3

Részletesebben

Közösség, projektek, IDE

Közösség, projektek, IDE Eclipse Közösség, projektek, IDE Eclipse egy nyílt forráskódú (open source) projekteken dolgozó közösség, céljuk egy kiterjeszthető fejlesztői platform és keretrendszer fejlesztése, amely megoldásokkal

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

Internet programozása. 1. előadás

Internet programozása. 1. előadás Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes

Részletesebben

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

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. május 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési

Részletesebben

OO rendszerek jellemzői

OO rendszerek jellemzői OO rendszerek jellemzői Problémák forrása lehet teszteléskor: Problémák feldarabolása. Adatrejtés. Az OO rendszerek nagyszámú, egymással aktívan kapcsolatban levő, együttműködő komponensekből állnak. A

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

S0-02 Típusmodellek (Programozás elmélet)

S0-02 Típusmodellek (Programozás elmélet) S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.

Részletesebben

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ GIRODIRECT SZOLGÁLTATÁST IGÉNYBEVEVŐ ÜGYFELEKENEK Verzió: v1.04 Dátum: 2018. január 5. Készítette: A jelen dokumentum tartalma szerzői jogi védelem alatt áll, a mű

Részletesebben

Programozás alapjai Bevezetés

Programozás alapjai Bevezetés Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató Közoktatási Statisztika Tájékoztató 2012/2013 Tartalomjegyzék 1. Technikai információk... 2 2. Publikus felület... 2 2.1 Bejelentkezés... 2 2.2 Összesítés... 3 2.2.1 Statisztikai tábla megtekintése...

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

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

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,

Részletesebben

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom Szoftver újrafelhasználás (Software reuse) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 18. Roger S. Pressman: Software Engineering, 5th e. chapter 27. 2 Szoftver újrafelhasználás Szoftver

Részletesebben

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben

Részletesebben

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra (adatbázisséma)

Részletesebben

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus

Részletesebben

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Szoftver-mérés. Szoftver metrikák. Szoftver mérés Szoftver-mérés Szoftver metrikák Szoftver mérés Szoftver jellemz! megadása numerikus értékkel Technikák, termékek, folyamatok objektív összehasonlítása Mér! szoftverek, programok CASE eszközök Kevés szabványos

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

Időkönyvelő Projektfeladat specifikáció

Időkönyvelő Projektfeladat specifikáció Időkönyvelő Projektfeladat specifikáció 1 Tartalomjegyzék 1 Tartalomjegyzék... 2 2 Bevezetés... 3 2.1 A feladat címe... 3 2.2 A feladat rövid ismertetése... 3 3 Elvárások a feladattal kapcsolatban... 4

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

A NetBeans IDE Ubuntu Linux operációs rendszeren

A NetBeans IDE Ubuntu Linux operációs rendszeren A NetBeans IDE Ubuntu Linux operációs rendszeren Készítette: Török Viktor (Kapitány) E-mail: kapitany@lidercfeny.hu 1/10 A NetBeans IDE Linux operációs rendszeren Bevezető A NetBeans IDE egy Java-ban írt,

Részletesebben

Szoftver újrafelhasználás

Szoftver újrafelhasználás Szoftver újrafelhasználás Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

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

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

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

Elektronikusan hitelesített PDF dokumentumok ellenőrzése Elektronikusan hitelesített PDF dokumentumok ellenőrzése Adobe Reader beállítása és használata a hitelesített PDF dokumentumok ellenőrzéséhez A dokumentáció szabadon tovább terjeszthető, a legfrissebb

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Abstract osztályok és interface-ek. 7-dik gyakorlat

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

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

Stunnel leírás. Az stunnel programot a következő módon telepíthetjük Windows környezetben:

Stunnel leírás. Az stunnel programot a következő módon telepíthetjük Windows környezetben: Stunnel leírás A Stunnel használatához Caesar azonosító szükséges. Az azonosító elkészíthető a https://ugykezelo.elte.hu oldalon. (Így a Stunnelt az ELTE dolgozói és hallgatói is egyaránt tudják használni.)

Részletesebben

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési

Részletesebben

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése ÁNYK53 Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése Az ÁNYK53 egy keretprogram, ami a személyi jövedelemadó bevallás (SZJA,

Részletesebben

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 1. előadás, programozási paradigmák 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren Tartalomjegyzék 1. BEVEZETÉS...3 2. A MICROSOFT IIS INDÍTÁSA...3 3. TITKOS KULCS GENERÁLÁSA...3 4. TANÚSÍTVÁNYKÉRELEM

Részletesebben

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,

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

Objektum orientált kiterjesztés A+ programozási nyelvhez

Objektum orientált kiterjesztés A+ programozási nyelvhez Szegedi Tudományegyetem Informatikai Tanszékcsoport Objektum orientált kiterjesztés A+ programozási nyelvhez Diplomamunka terve Készítette: Bátori Csaba programtervező matematikus hallgató Témavezető:

Részletesebben

Felhasználói kézikönyv. Verzió: 1.01

Felhasználói kézikönyv. Verzió: 1.01 Felhasználói kézikönyv Verzió: 1.01 Tartalomjegyzék Általános áttekintés 3 A DocGP rendszer célja 3 A rendszer által biztosított szolgáltatások 3 A felhasználói felület elérése 3 JAVA JRE telepítése 3

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Webes alkalmazások fejlesztése

Webes alkalmazások fejlesztése Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni

Részletesebben

Bevezetés a programozásba előadás: Alapvető programtervezési elvek

Bevezetés a programozásba előadás: Alapvető programtervezési elvek Bevezetés a programozásba 2 12. előadás: Alapvető programtervezési elvek Miről lesz szó A félév célja a nagyobb programrendszerek felépítésében való részvétel képességét megszerezni Mindenki a saját widgetkészletének

Részletesebben

K&H token tanúsítvány megújítás

K&H token tanúsítvány megújítás K&H token tanúsítvány megújítás felhasználói kézikönyv 2014.10.15. verzió: 1.2 1 Tartalomjegyzék 1 Bevezetés... 3 2 Technikai feltételek... 3 3 A tanúsítványok megújításának folyamata Firefox... 6 4 A

Részletesebben

Logon megrendelő felület

Logon megrendelő felület Szilárd, megbízható alapokon. Logon megrendelő felület Felhasználói kézikönyv Holcim Magyarország Kft. Cement Logisztika 2014 Holcim Country Company Name 1 Tartalomjegyzék Bevezetés 3 1. Bejelentkezés

Részletesebben

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft.

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft. Komponensek együttműködése web-alkalmazás környezetben Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT Komponensek a gyakorlatban A szoftverkomponenseket fejlesztő csoportoknak szüksége van olyan

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás NGB_IN003_1 SZE 2014-15/2 (10) Szoftverminőségbiztosítás Struktúra alapú (white-box) technikák A struktúrális tesztelés Implementációs részletek figyelembevétele Tesztelési célok -> lefedettség Implicit

Részletesebben

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

Részletesebben

Bisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le.

Bisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le. Bisonc++ tutorial Dévai Gergely A Bisonc++ egy szintaktikuselemz -generátor: egy környezetfüggetlen nyelvtanból egy C++ programot generál, ami egy tokensorozat szintaktikai helyességét képes ellen rizni.

Részletesebben

Zimbra levelező rendszer

Zimbra levelező rendszer Zimbra levelező rendszer Budapest, 2011. január 11. Tartalomjegyzék Tartalomjegyzék... 2 Dokumentum információ... 3 Változások... 3 Bevezetés... 4 Funkciók... 5 Email... 5 Társalgás, nézetek, és keresés...

Részletesebben

PDF. Tartalomjegyzék 1/21

PDF. Tartalomjegyzék 1/21 PDF Napjainkban a publikálás elterjedt formája a PDF dokumentumok előállítása. A weben ez szinte szabvánnyá vált hosszú dokumentumok esetén. Akkor is nagyon hasznos lehet, ha a gondosan megformázott word

Részletesebben

Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában.

Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában. Tisztelt Ügyfelünk! Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában. A CIB Internet Bankból történő nyomtatás

Részletesebben

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport TANMENET Informatika szakmacsoport Programozási gyakorlatok III. tantárgy 12. évfolyam A osztály 2013/2014 tanév Heti óraszám: Éves óraszám: 3 óra 96 óra Készítette: Szikszai Gusztáv tanár Ellenőrizte:.

Részletesebben

Az Outlook levelező program beállítása tanúsítványok használatához

Az Outlook levelező program beállítása tanúsítványok használatához Az Outlook levelező program beállítása tanúsítványok használatához Windows tanúsítványtárban és kriptográfia eszközökön található tanúsítványok esetén 1(10) Tartalomjegyzék 1. Bevezető... 3 2. Az Outlook

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

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

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): Javascript 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

Részletesebben

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

Útmutató az OKM 2007 FIT-jelentés telepítéséhez Útmutató az OKM 2007 FIT-jelentés telepítéséhez 1. OKM 2007 FIT-JELENTÉS ASZTALI HÁTTÉRALKALMAZÁS telepítése 2. Adobe Acrobat Reader telepítése 3. Adobe SVG Viewer plugin telepítése Internet Explorerhez

Részletesebben

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout

Részletesebben

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39: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_01-1 - E jegyzet másolata

Részletesebben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre

Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre Windows XP, Vista és Windows 7 operációs rendszeren 1(6) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. AuthentIC Manager

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai Objektum: A való világ egy elemének ábrázolása, amely minden esetben rendelkezik: Állapottal,Viselkedéssel,Identitással

Részletesebben

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI Az MTA Cloud a tudományos alkalmazások támogatására Kacsuk Péter MTA SZTAKI Kacsuk.Peter@sztaki.mta.hu Tudományos alkalmazások és skálázhatóság Kétféle skálázhatóság: o Vertikális: dinamikusan változik

Részletesebben

Iroda++ 2010 DEMO telepítési útmutató

Iroda++ 2010 DEMO telepítési útmutató Az Iroda++ 2010 DEMO csomag telepítésének lépései Az alábbi pontok szerint telepítheti számítógépére a revolution Iroda++ 2010 program DEMO változatát. Fontos, hogy az Iroda++ rendszere SQL szerveres adatmotort

Részletesebben

Segédlet kriptográfiai szolgáltatást beállító szoftverhez (CSPChanger)

Segédlet kriptográfiai szolgáltatást beállító szoftverhez (CSPChanger) Segédlet kriptográfiai szolgáltatást beállító szoftverhez (CSPChanger) szoftveres, PKCS#12 formátumú tanúsítvány átalakításához 1(8) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. CSPChanger

Részletesebben

Előzmények 2011.10.23.

Előzmények 2011.10.23. Előzmények Dr. Mileff Péter A 80-as évek közepétől a szoftverek komplexitása egyre növekszik. Megjelentek az OO nyelvek. Az OO fejlesztési módszerek a rendszer különböző nézőpontú modelljeit készítik el.

Részletesebben

Felhasználói leírás: STAHL Ex-Tool v1.0 rev101-2 -

Felhasználói leírás: STAHL Ex-Tool v1.0 rev101-2 - Felhasználói leírás: STAHL Ex-Tool v1.0 rev101-1 - Kezelési útmutató Tartalomjegyzék: Kezelési útmutató... 1 Tartalomjegyzék:... 1 Szoftver feladata:... 2 Szoftver telepítése:... 2 Els használat:... 3

Részletesebben

Írta: GYIMÓTHY TIBOR HAVASI FERENC KISS ÁKOS FORDÍTÓPROGRAMOK. Egyetemi tananyag

Írta: GYIMÓTHY TIBOR HAVASI FERENC KISS ÁKOS FORDÍTÓPROGRAMOK. Egyetemi tananyag Írta: GYIMÓTHY TIBOR HAVASI FERENC KISS ÁKOS FORDÍTÓPROGRAMOK Egyetemi tananyag 2011 COPYRIGHT: 2011 2016, Dr. Gyimóthy Tibor, Havasi Ferenc, Dr. Kiss Ákos, Szegedi Tudományegyetem Természettudományi és

Részletesebben

Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre. Windows 7, Windows 8, Windows 8.1 és Windows 10-es operációs rendszeren 1(9)

Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre. Windows 7, Windows 8, Windows 8.1 és Windows 10-es operációs rendszeren 1(9) Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre Windows 7, Windows 8, Windows 8.1 és Windows 10-es operációs rendszeren 1(9) Tartalomjegyzék 1. Bevezető... 3 2. AuthentIC Manager szoftver

Részletesebben

Tanúsítvány feltöltése Gemalto.NET kártyára és Gemalto SIM termékre

Tanúsítvány feltöltése Gemalto.NET kártyára és Gemalto SIM termékre Tanúsítvány feltöltése Gemalto.NET kártyára és Gemalto SIM termékre Windows XP, Vista és Windows 7 operációs rendszeren 1(6) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. MiniDriver Manager

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben