Kivételkezelés. Tesztelés, hibakeresés, kivételkezelés. Programozás II. előadás. Szénási Sándor

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

Download "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"

Átírás

1 Kivételkezelés Tesztelés, hibakeresés, kivételkezelés előadás Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar

2 Tesztelés Hibakeresés Kivételkezelés Saját kivételek készítése Kivételkezelés

3 3 Tesztelés Tesztelés: próbafeladatok lefuttatásával a program hibáinak felfedezése a cél Teszteset: a be- és kimeneti adatok együttes megadása A jó teszteset követelményei Nagy valószínűséggel egy még felfedetlen hibára derít fényt Későbbiekben megismételhető, különben a hibakeresést ellehetetleníti Teszteseteket mind az érvénytelen, mind az érvényes adatokra célszerű választani Minden tesztesetből a lehető legtöbb információt kell kinyerni, ezzel kell csökkenteni a tesztesetek számát Tesztelési módszerek két csoportja: Statikus tesztelés a programot nem futtatjuk Dinamikus tesztelés a programot futtatjuk

4 4 Statikus tesztelési módszerek Kódellenőrzés Az implementált programkód vizsgálata Gyakran egy másik fejlesztő tudja ezt hatékonyan megtenni Formai ellenőrzés Szintaktikai hibák kiszűrése Nem létező kulcsszavak, változók, függvények stb. Keresése Fordítóprogramok általában elvégzik (hibák) Tartalmi ellenőrzés Nem használt változó Nem használt változóérték Hiányzó kezdőérték Konstans kifejezések Visszatérési érték nélküli függvény Végtelen ciklusok Fordítóprogramok ezek jelentős részét szintén jelzik, bár önmagukban nem minősülnek hibának (figyelmeztetések)

5 5 Dinamikus tesztelés fekete doboz módszer Fekete doboz módszer = adatvezérelt tesztelés Nem veszi figyelembe a program belső szerkezetét Csak a bemenő és kimenő adatok kapcsolatára épít Ekvivalencia osztályok keresése A bemeneti tartományt részekre kell osztani, és ezeken belül jellemző teszteseteket kell választani Tartomány esetén: alatta közte fölötte Logikai érték esetén: kielégítő nem kielégítő feltétel Érvényes és érvénytelen esetekre is fel kell állítani az ekvivalencia osztályokat Egy teszteset lehetőség szerint minél több bemeneti feltételt elégítsen ki, így kevesebb esetre van szükség Határeset elemzés Az ekvivalencia osztályok kiválasztott elemeinek a határértékeket választja Nemcsak a bemenetre, hanem a kimenetre is célszerű ekvivalencia osztályokat felállítani

6 6 Dinamikus tesztelés fehér doboz módszer Tesztelést a program ismeretében végezzük el Ismertek a használt algoritmusok Ismert a pontos implementáció (forráskód) A módszer három lépését különböző technikák segítik Kipróbálási stratégiák Meghatározza, hogy a programgráf melyik útjait kell tesztelni Utasítások egyszeri lefedésének elve úgy válasszuk meg a teszteket, hogy minden utasítást elérjen a vezérlés Döntés lefedés elve elágazások esetén minden ágat elérjen Részfeltétel lefedés elve összetett feltétellel rendelkező elágazások esetén minden részfeltétel kipróbálásra kerüljön Tesztesetek generálása Az előzőleg meghatározott utakon végigvezető bemenetek meghatározása Pl. szimbolikus végrehajtás (részletesen nem tárgyaljuk) Ekvivalencia osztályok megállapítása Előzőleg megismert módszerrel tesztelés folytatása

7 7 Speciális tesztek Funkcióteszt Az elkészült program tartalmaz-e minden szükséges funkciót? Biztonsági teszt A program ellenőrzi a bemeneti adatokat? Ellenőrzi-e a perifériákhoz, állományokhoz való hozzáférést? Stressz teszt Fel tud-e dolgozni nagy sebességgel érkező adatokat? Alkalmas-e párhuzamosan, több irányból érkező nagymennyiségű adat feldolgozására? Volumen teszt Alkalmas-e nagy mennyiségű adat feldolgozására? Ha igen, romlik-e a program hatékonysága? Modulteszt, összeépítési teszt A program önálló moduljainak egymástól független ellenőrzése Az önállóan már letesztelt modulok összeépítése utáni teszt

8 Tesztelés Hibakeresés Kivételkezelés Saját kivételek készítése Kivételkezelés

9 9 Hibakeresés és javítás Hibakeresés: a tesztelés során feltárt hibák helyének megállapítása A fejlesztői környezetek általában fejlett eszközöket nyújtanak a hibakereséshez (nyomkövetés stb.) A hibák száma általában a program méreténél gyorsabban növekszik (a fejlesztés természetes velejárójának tekinthető) Néhány tipikus hiba Szintaktikai hiba Végrehajtás közben jelentkező hiba Program nem áll meg Program megáll, de nem ad eredményt Program megáll, de hibás eredményt ad Hibajavítás: a hibakeresés során megtalált hiba javítása A hibát kell kijavítani, nem csak a tüneteit megszüntetni Hibajavítást újabb tesztelésnek kell követnie Hibajavítás visszanyúlhat a fejlesztés előző fázisaiba

10 10 Indukciós, dedukciós módszer Indukció: a minta azonos nemű elemeinek egy közös tulajdonságából következtethetünk arra, hogy minden ilyen nemű elem rendelkezik ezzel a tulajdonsággal A rendelkezésre álló teszteseteket rendszerezni kell aszerint, hogy melyik okozott hibát és melyek nem Fel kell állítani egy feltételezést, hogy milyen tulajdonságú elemek tartoznak az egyik ill. másik csoportba (amennyiben szükséges, további tesztekkel ez megerősíthető) Ha már egyértelmű(nek tűnik) a hibát okozó tulajdonság, a programon átvezető tesztutak közül ki kell válogatni azokat, amelyek csak az ilyen esetekben futnak le Ezeken a pontokon célszerű keresni a hiba okát Dedukció: ha minden azonos neműről tudjuk, hogy rendelkezik egy tulajdonsággal, akkor ez az egyedre is igaz Össze kell gyűjteni az összes feltételezhető hibaokot A minta elemei alapján ki kell zárni azokat, amelyek nem valósak Az így megtalált okok után a folytatás hasonló az előzőhöz

11 11 Visszalépés, teszteléssel összevonás Visszalépéses technika A hiba egyik előfordulási helyéből kell kiindulni (ilyen biztosan ismert, legrosszabb esetben a végeredmény megjelenítése) Ebből a pontból a programot visszafelé végrehajtva kell megkeresni a rendellenességet okozó pontot Amennyiben a visszafelé görgetett hibás részeredmény helyett egy helyes részeredmény jelenik meg, valószínűleg az (első) hibás sor volt az utolsó lépés Gyakran fejlesztői eszközök segítik ezt a módszert Teszteléssel segített hibakeresés Úgy kell megválasztani az egymást követő teszteseteket, hogy a teljes programgráfban bejárt út csak egy-egy elemi (vagy legalábbis minél kisebb) változással járjon Amennyiben egy ilyen elemi lépés távolságban lévő teszteset pár egyik tagja hibás, a másik helyes működést eredményez, szintén lehet következtetni a hiba helyére

12 12 Egyéb lehetőségek Fejlesztőeszközök által nyújtott funkciók Szintaktikai ellenőrzés Program lépésenkénti futtatása Változók értékeinek nyomon követése Töréspontok elhelyezése a programkódban Adatok értékeire vonatkozó töréspontok Hívási verem megtekintése Változók értékeinek menet közbeni megváltoztatása Vezérlés aktuális pontjának megváltoztatása Programkód futás közbeni módosítása Egyéb megoldások Programozási nyelvek által nyújtott hibakezelési lehetőségek Tipikusan pl. a napjainkban elterjedt kivételkezelés Egyéb megoldások

13 Tesztelés Hibakeresés Kivételkezelés Saját kivételek készítése Kivételkezelés

14 14 Hagyományos módszerek Feladat: számoljuk ki óránként az átlagsebességet Hibakezelés hagyományos módon: függvény Átlagsebességek(SEB, N) i 1; vanértelme igaz ciklus amíg i 24 vanértelme sum 0 ciklus j 1-től N i -ig sum sum + SEB i,j ciklus vége ha N i 0 akkor átlagok i sum / N i különben vanértelme hamis elágazás vége ciklus vége ha vanértelme akkor Átlagsebességek átlagok különben Átlagsebességek Ø elágazás vége függvény vége

15 15 Hagyományos módszer hátrányai Nehezen olvasható kód Meglehetősen hosszú kódot eredményez Nehezen áttekinthető, mivel keveredik a tényleges kód az ellenőrző műveletekkel (és az esetleges javításokkal) Egy hibaforrást gyakran csak több művelettel lehet kiszűrni Nehezen programozható Minden műveletet meg kell vizsgálni, hogy milyen bemenetekre adhat hibás választ, és ezeket mind ki kell zárni Ez meglehetősen nehéz feladat, hiszen fordított gondolkodást igényel a műveletek esetén Nehezen karbantartható Gyakoriak a mélyen egymásba ágyazott feltételek Egymásbaágyazott szerkezetek esetén egy mélyebb szinten keletkezett hiba esetén biztosítani kell a kilépést A feltételeknek általában nincs különben águk Ha ugyanaz a hibalehetőség a kód több helyén is fennáll, akkor gyakran duplikálni kell az ellenőrzést

16 16 Hagyományos módszer hátrányai Függvényhívás esetén a visszatérési értékének valamilyen kitüntetett értéke jelzi, hogy hiba történt Az érték egyben a hiba jellegére is választ ad Egy másik függvény meghívásával lehet lekérdezni a pontos hibakódot Használatának hátrányai Különböző típusú visszatérési értékeknél más-más megoldást kell alkalmazni (van ahol nem járható út, pl. összeadás) Könnyű átsiklani egy ilyen visszaadott hibakód felett A módszer használatának okai Gyakran hatékonyabb, mint a kivételkezelés Hagyományos programozási nyelvekben nem volt más megoldás Rögzült programozói szokások

17 17 Kivételkezelés Kivételkezelő blokk egy lehetséges megvalósítása try <védett blokk> catch (típus eseményref) <típus1 kivétel kezelése> catch (típus2 eseményref) <típus2 kivétel kezelése> finally <mindig lefut> end Általában három különböző blokkot különböztetünk meg try védett (próbára tett) szakasz Ide helyezzük azokat az utasításokat, amelyek esetleg hibákat (vagy egyéb kivételt) okozhatnak catch hibakezelő szakasz Erre a blokkra kerül a végrehajtás, ha a megadott típusú kivétel keletkezett a védett szakaszon belül finally lezáró szakasz Tartalmaz minden kritikus utasítást, aminek mindig le kell futni

18 18 Jól áttekinthető kód Programkód könnyebben írható Nincs szükség műveletenkénti elemzésre, hogy ki tudjuk zárni az esetleges hibás bemenetből adódó hibákat Fizikailag maga a programkód is rövidebb, egyszerűbben implementálható Programkód könnyebben olvasható Élesen elválik egymástól a programkód általános (lényegi) része a kivételes esetek kezelésétől Így nem csak a kivételek kezelése, hanem a lényegi kód is áttekinthetőbbé válik Programkód könnyebben karbantartható A kivételkezelő blokkok egymástól függetlenek, így az egyik változtatása nem befolyásolja a többit Egy esetleges változtatás során nem jellemző, hogy egy továbbgyűrűző, a többi blokkot is módosító változást okozna Szabványos megoldásnak tekinthető, így más fejlesztők számára is könnyen értelmezhető

19 19 Kivételes esetek központi kezelése Egy blokk minden kivételét egy központi helyen kezeli Akár egyetlen programsor futtatása is okozhat több különböző hibát (akár egyszerre többet is) A kivételkezelő blokkal nem kell minden lehetséges hibát egyesével felsorolni, egy blokk (megfelelően paraméterezve) alkalmas a védendő kód minden kivételét egyszerűen kezelni Kivétel típusok szerinti kivételkezelő kiválasztás Hagyományos kivételkezelési technikákkal csak egy kivételkezelő blokk megadására volt lehetőség, jelenlegi technikák mellett kivételtípusonként pontosíthatunk A védett részben több helyen is keletkezhetnek azonos típusú kivételek, lehetőség van ezeket egy helyen kezelni A kivételek általában hierarchiát alkotnak, így rugalmasan lehet definiálni a kivételkezelő blokk típusát A gyakorlatban ez lényeges, mivel általában az azonos típusú hibákat azonos módon lehet kezelni (gyakran sehogy)

20 20 További előnyök Nem hagyható figyelmen kívül Megfelelő alkalmazás esetén nincs szükség a függvények visszatérési értékének ellenőrzésére Amennyiben egy kivétel keletkezik, akkor a futtató környezet mindenképpen megkeresi a hozzá legközelebbi kezelő blokkot Amennyiben nincs ilyen blokk, akkor a program futása megszakad Ez teljesen kizárja a program hibás adatokkal való továbbfutását Hibakeresés elősegítése A kivételek általában a hiba típusán túl további adatokat is tárolhatnak Így egy kivétel információkkal szolgálhat arról, hogy mikor és miért váltódott ki, akár egészen részletes adatokkal is (milyen művelet, milyen paraméterekkel stb.) Ez jelentősen csökkenti a nyomkövetéssel töltött időt

21 21 Egymásba ágyazott kivételkezelők Strukturált programoknál gyakoriak az egymásba ágyazott szerkezetek (elágazás, ciklus, szubrutinhívás), a kivételek kezelésénél erre is figyelmet kell fordítani Strukturált kivételkezelés esetén a bekövetkező kivételek kezelése nem egy megadott ponton történik, hanem az egymásba ágyazott kivételkezelő blokkok hierarchiájától függő helyen Ennek egy lehetséges megvalósítása A program futása során veremben tárolja az elért kivételkezelő blokkokat, és azok paramétereit: minden blokkba való belépéskor elhelyez egy keretet a veremben, a blokkból való kilépéskor pedig ezt kiveszi Kivétel létrejötte esetén a futtató környezet a verem alapján keresi meg a megfelelő kivételkezelő blokkot Többszálú környezetben ezek általában szálanként függetlenek A nem kezelt kivételeket végül a futtatókörnyezet kapja el Kivétel keletkezésének és a kezelésének helye elválik!

22 22 Try, catch blokkok A try blokk használata Tartalmazza azokat a programsorokat, amelyeknél felmerül valamilyen kivétel lehetősége Kritikus programrészeket célszerű így használni, nélküle egy kisebb (esetleg javítható) hiba is a program leállításához vezet A catch blokkok használata Általában több catch blokk használatára van lehetőség, különböző kivételtípusok meghatározásával Egy ilyen blokk kezeli a try blokkon belül történt összes megadott típusú kivételt, ha ez nem megfelelő, akkor a try blokkot több részre kell bontani Ha több blokk is alkalmas egy kivétel kezelésére, általában csak a felülről első megfelelő blokk fut le A catch blokkban lehetőség van elérni magát a kivétel objektumot is, ami további információkat hordozhat Ha nem történt kivétel, nem kerül rá a vezérlés

23 23 Finally blokk, kivételek továbbdobása A finally blokk használata Itt célszerű megadni azokat a műveleteket, amelyeket mindenképpen le kell futtatni (pl. erőforrások felszabadítása) Függetlenül attól, hogy létrejött-e kivétel, vagy sem, ez a blokk mindig lefut (ha volt kivétel, akkor a kivételkezelő után) Amennyiben történt kivétel, de nincs hozzá tartozó kivételkezelő, ez a blokk akkor is lefut Figyelmet igényel azonban, hogy a finally blokkban csak olyan erőforrásokat szabadítson fel a program, amik biztosan le lettek foglalva (ez a try részen belül nem mindig garantálható) Előfordulhat, hogy egy kivételkezelő (vagy finally) blokkban újabb kivétel keletkezik Egy újabb nem várt esemény miatt A már kezelt kivétel továbbítása miatt (újradobás) Egy más típusú kivétel eldobása miatt

24 Tesztelés Hibakeresés Kivételkezelés Saját kivételek készítése Kivételkezelés

25 25 Hagyományos módszer hátrányai Az objektumorientált nyelvek a kivételeket általában egy objektumba csomagolva kezelik (ill. magát a kivételt egy objektumnak tekintjük). Ennek előnyei: Öröklődés Saját kivétel készítésekor lényeges lehet Polimorfizmus Egyszerre több kivételt kezelő blokk készítése esetén További információ hordozása A kivételobjektum típusa már önmagában is jellemzi a bekövetkezett kivételt, de emellett számos egyéb adatot tárolhat ez az objektum (kivétel létrejöttének oka, pontos helye, paraméterek, egyéb üzenet stb.) Ennek megfelelően a kivételek általában egy hierarchiát alkotnak, amelynek felépítése programozási nyelvenként egészen különböző is lehet

26 26 Kivételek típusai Kivétel készítője alapján Keretrendszer saját kivételei Egyéb fejlesztők által készített kivételek Kivétel forrása alapján Szoftver kivételek pl. általános kivételek, jelzések Hardver/operációs rendszer szintű kivételek pl. erőforrás problémák, kritikus hibák Bizonyos nyelvekben kötelező ellenőrzés alapján Kötelezően ellenőrzött kivételek Ezeket a kivételeket kötelező ellenőrizni (vagy továbbadási szándékunkat jelölni), különben a fordító fordítási hibát jelez (pl. hálózati kapcsolat megnyitása esetén) Nem kötelezően ellenőrzött kivételek Ellenőrzésük nem kötelező, a programozóra van bízva ennek eldöntése (pl. aritmetikai hibák ellenőrzése)

27 27 Kivétel osztály definíciója Saját kivételosztály definiálása általában nem különbözik egy általános osztály definíciótól A saját kivételosztály őse célszerűen az adott környezet (programozási nyelv) megfelelő beépített kivételoszálya Egy kivétel általában az alábbi információkat tartalmazza: Kivétel neve célszerű már a kivétel nevét is beszédesen megválasztani, hogy az utaljon a kiváltás okára Üzenet szöveges mezőben tetszőleges üzenet továbbítása a kivétel kezelője felé Hívási verem a hívási verem állapota a kivétel létrejöttekor Beágyazott kivétel kivétel újradobása esetén tartalmazhatja az előző (már kezelt) kivételt A kivétel a többi osztályhoz hasonlóan tartalmazhat más nyelvi elemeket is (metódus, statikus tagok stb.)

28 28 Saját kivétel használata Kivétel dobása Az osztálykönyvtár kódjának kiegészítése, az esetleges hibák bekövetkezte esetén az előzőleg definiált kivételosztály példányosítása, majd a kivétel dobása Természetesen nem csak saját magunk által definiált kivétel objektumokat lehet így dobni A programkód minden olyan helyén célszerű ezt a technikát alkalmazni, ahol hibát (nem végrehajtható műveletet) fedezünk fel, de az adott szinten ezt nem tudjuk kezelni Az előzőleg meghatározott adatokat (pl. üzenet, egyéb saját mezők) is célszerű a kivételobjektumban beállítani Kivétel elkapása A saját kivételek elkapása és kezelése általában nem különbözik a keretrendszer kivételeinek kezelésétől A hibakeresés elősegítése végett célszerű minél több információt elhelyezni a kivételben annak okáról

29 29 Megjegyzések/javaslatok Hibakezelés felelőssége Az osztálykönyvtárak készítői előre nem tudhatják, hogy mikor, milyen okból használják majd az ő kódjukat, emiatt célszerű azokat a lehető legrobusztusabban elkészíteni Az alkalmazásfejlesztők viszont az osztálykönyvtár működését nem fogják ismerni, emiatt az osztálykönyvtár készítőjének felelőssége, hogy érthető módon jelezze a hibákat Célszerű kihasználni a finally blokk előnyeit A catch blokkok írása nélkül is célszerű az erőforrások felszabadítását ilyen blokkba helyezni Csak a valóban kezelt kivételeket érdemes elkapni Gyakran rossz programozói gyakorlat az összes kivétel elkapása, mivel így azok nem jutnak el a megfelelő kezelőig Részlegesen teljesített feladatok visszagörgetése A kivétel kezelése nélkül is gyakran célszerű egy minden kivételt elkapó catch ág, ami visszagörgeti az eddigi változtatásokat (és továbbdobja a kivételt)

30 30 Irodalomjegyzék Javasolt/felhasznált irodalom Pap, Szlávi, Zsakó: μlógia21 Módszeres programozás: A programkészítés technológiája ELTE TTK, 2000 J. Richter: CLR via C# 2nd edition Microsoft press, 2006 R. Simmons: Hardcore Java O Reilly, 2004

Programtervezés. Dr. Iványi Péter

Programtervezés. Dr. Iványi Péter Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű

Részletesebben

Algoritmizálás, adatmodellezés tanítása 6. előadás

Algoritmizálás, adatmodellezés tanítása 6. előadás Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér

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

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

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

Interfészek. Programozás II. előadás. Szénási Sándor.

Interfészek. Programozás II. előadás.  Szénási Sándor. Interfészek 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 Polimorfizmus áttekintése Interfészek Interfészek alkalmazása

Részletesebben

1. Bevezetés A C++ nem objektumorientált újdonságai 3

1. Bevezetés A C++ nem objektumorientált újdonságai 3 Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.

Részletesebben

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot

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

Kivételkezelés a C++ nyelvben Bevezetés

Kivételkezelés a C++ nyelvben Bevezetés Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:

Részletesebben

Visszalépéses keresés

Visszalépéses keresés Visszalépéses keresés Backtracking 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 Alapvető működése Továbbfejlesztési

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

Automatikus tesztgenerálás modell ellenőrző segítségével

Automatikus tesztgenerálás modell ellenőrző segítségével Méréstechnika és Információs Rendszerek Tanszék Automatikus tesztgenerálás modell ellenőrző segítségével Micskei Zoltán műszaki informatika, V. Konzulens: Dr. Majzik István Tesztelés Célja: a rendszerben

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

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

Eljárások és függvények

Eljárások és függvények Eljárások és függvények Jegyzet Összeállította: Faludi Anita 2012. Bevezetés Ez a jegyzet elsősorban azoknak a diákoknak készült, akiket tanítok, ezért a jegyzet erőteljesen hiányos. Az olvasó egy percig

Részletesebben

Kivételek, kivételkezelés a C++ nyelvben

Kivételek, kivételkezelés a C++ nyelvben 2009. Kivételek, kivételkezelés a C++ nyelvben Haladó C++ programozás Kurucz Attila ELTE - IK 2009.06.09. Tartalomjegyzék Tartalomjegyzék... 2 Mi a kivételkezelés?... 3 Alapfogalmak... 3 Kivétel... 3 Try

Részletesebben

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj

Részletesebben

S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat )

S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat ) S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat 1919. 1049-1050. 1.) A hetvenéves Eötvös Loránd köszöntésekor Alexander Bernád filozófus így jellemezte:...

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

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

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált

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

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG Gyakorlatvezető

Részletesebben

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás.  Szénási Sándor. B-fa Felépítés, alapvető műveletek 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 B-fa Felépítése Beszúrás művelete Törlés

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

Szoftver karbantartási lépések ellenőrzése

Szoftver karbantartási lépések ellenőrzése Szoftverellenőrzési technikák (vimim148) Szoftver karbantartási lépések ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/

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

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

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

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

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként

Részletesebben

Specifikáció alapú teszttervezési módszerek

Specifikáció alapú teszttervezési módszerek Szoftverellenőrzési technikák Specifikáció alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Klasszikus tesztelési feladat A tesztelendő program beolvas 3 egész

Részletesebben

Specifikáció alapú teszttervezési módszerek

Specifikáció alapú teszttervezési módszerek Szoftverellenőrzési technikák Specifikáció alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Klasszikus tesztelési feladat A tesztelendő program beolvas 3 egész

Részletesebben

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember

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

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.

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

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

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

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember

Részletesebben

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás.  Szénási Sándor Láncolt listák Egyszerű, rendezett és speciális láncolt listák 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 Láncolt

Részletesebben

Egyszerű programozási tételek

Egyszerű programozási tételek Egyszerű programozási tételek 2. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 15. Sergyán (OE NIK) AAO 02 2011. szeptember 15.

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

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

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

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

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

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

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

Optimalizációs stratégiák 2.

Optimalizációs stratégiák 2. Optimalizációs stratégiák 2. Visszalépéses keresés, szétválasztás és korlátozá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

Részletesebben

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Programozási technológia II 7. előadás Verifikáció és validáció 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Minőségbiztosítás

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

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

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22: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_14-1 - E jegyzet

Részletesebben

Podoski Péter és Zabb László

Podoski Péter és Zabb László Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő

Részletesebben

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel Készítette: Szabó Gábor, 1996 Az Az IntelliCorp IntelliCorp stratégiája: stratégiája: Kifinomult, Kifinomult, objektum-orientált objektum-orientált környezetet környezetet biztosít biztosít tervezéséhez,

Részletesebben

A KÓDOLÁS TECHNIKAI ELVEI

A KÓDOLÁS TECHNIKAI ELVEI 1. A KÓDOLÁS FOGALMA A KÓDOLÁS TECHNIKAI ELVEI A kódolás a forrásnyelvű (pl. C#, Java) program elkészítését jelenti. Ha a megoldást gondosan megterveztük, akkor ez általában már csak rutinszerű, technikai

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

Információtartalom vázlata

Információtartalom vázlata 1. Az Ön cégétől árajánlatot kértek egy üzleti portál fejlesztésére, amelynek célja egy online áruház kialakítása. Az árajánlatkérés megválaszolásához munkaértekezletet tartanak, ahol Önnek egy vázlatos

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

A dokumentáció felépítése

A dokumentáció felépítése A dokumentáció felépítése Készítette: Keszthelyi Zsolt, 2010. szeptember A szoftver dokumentációját az itt megadott szakaszok szerint kell elkészíteni. A szoftvert az Egységesített Eljárás (Unified Process)

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

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

29. Visszalépéses keresés 1.

29. Visszalépéses keresés 1. 29. Visszalépéses keresés 1. A visszalépéses keresés algoritmusa Az eddig megismert algoritmusok bizonyos értelemben nyílegyenesen haladtak elôre. Tudtuk, hogy merre kell mennünk, és minden egyes lépéssel

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Összetett programozási tételek

Összetett programozási tételek Összetett programozási tételek 3. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 19. Sergyán (OE NIK) AAO 03 2011. szeptember

Részletesebben

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

TERC V.I.P. hardverkulcs regisztráció TERC V.I.P. hardverkulcs regisztráció 2014. második félévétől kezdődően a TERC V.I.P. költségvetés-készítő program hardverkulcsát regisztrálniuk kell a felhasználóknak azon a számítógépen, melyeken futtatni

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

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

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

Foglalkozási napló a 20 /20. tanévre Foglalkozási napló a 20 /20. tanévre Műszaki informatikus szakma gyakorlati oktatásához OKJ száma: 54 41 05 A napló vezetéséért felelős: A napló megnyitásának dátuma: A napló lezárásának dátuma: Tanulók

Részletesebben

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán

Részletesebben

TERMÉK FEJLESZTÉS PANDUR BÉLA TERMÉK TERVEZÉSE

TERMÉK FEJLESZTÉS PANDUR BÉLA TERMÉK TERVEZÉSE TERMÉK TERVEZÉSE A termék fogalma: Tevékenységek, vagy folyamatok eredménye /folyamat szemlélet /. (Minden terméknek értelmezhető, amely gazdasági potenciált közvetít /közgazdász szemlélet /.) Az ISO 8402

Részletesebben

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA 26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma

Részletesebben

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea

Részletesebben

Programfejlesztési Modellek

Programfejlesztési Modellek Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok Miklós Árpád, BMF NIK, 2006

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

C++ programozási nyelv

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

Részletesebben

Szoftvertesztelés - Bevezető

Szoftvertesztelés - Bevezető Szoftvertesztelés - Bevezető Csirmaz Péter Livesoft Kft. 2010.03.13. Bevezetés A szoftvertesztelés egy rendszer vagy program kontrollált körülmények melletti futtatása, és az eredmények kiértékelése. A

Részletesebben

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

Programozási nyelvek a közoktatásban alapfogalmak II. előadás Programozási nyelvek a közoktatásban alapfogalmak II. előadás Szintaxis, szemantika BNF szintaxisgráf absztrakt értelmező axiomatikus (elő- és utófeltétel) Pap Gáborné. Szlávi Péter, Zsakó László: Programozási

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

Informatika tanítási módszerek

Informatika tanítási módszerek Informatika tanítási módszerek Programozás tanítási módszerek módszeres, algoritmusorientált; adatorientált; specifikációorientált; feladattípus-orientált; nyelvorientált; utasításorientált; matematikaorientált;

Részletesebben

A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része.

A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része. Unit test A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része. Unit tesztekkel ellenőrizhető, hogy egy unit az elvárásoknak

Részletesebben

Objektumorientált paradigma és a programfejlesztés

Objektumorientált paradigma és a programfejlesztés Objektumorientált paradigma és a programfejlesztés 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 Objektumorientált

Részletesebben

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Programozási nyelvek a közoktatásban alapfogalmak I. előadás Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek. Tartalom 1. előadás programozás során használt nyelvek A specifikáció Algoritmikus nyelvek A problémamegoldás lépései 3/41 (miből?, mit?) specifikáció (mivel?, hogyan?) adat- + algoritmus-leírás 3. (a

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

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf.

Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf. Szerver oldali Java programozás 2007-08/II. 1. óra Elemkönyvtárak Elemkönyvtárak használata Saját elemkönyvtár készítése szenasi.sandor@nik.bmf.hu Adatbázisok elérése Témakörök Elemkönyvtárak használata

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0621 ÉRETTSÉGI VIZSGA 2007. május 25. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

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