axióma alapú automatizált teszteléssel

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

Download "axióma alapú automatizált teszteléssel"

Átírás

1 .NET programok minőségi mutatóinak javítása axióma alapú automatizált teszteléssel Doktori értekezés Szerző: Biczó Mihály Témavezető: Dr. Porkoláb Zoltán Eötvös Loránd Tudományegyetem Informatika Doktori Iskola Iskolavezető: Dr. Benczúr András Az informatika alapjai és módszertana doktori program Programvezető: Dr. Demetrovics János 2012

2 A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósul meg (a támogatás száma TÁMOP /B-09/1/KMR ).

3 Köszönetnyilvánítás Szeretném megköszönni témavezetőmnek, dr. Porkoláb Zoltánnak a dolgozat elkészítése során nyújtott értékes észrevételeit, lelkiismeretes, alapos lektorálását, a sok konzultációs időpontot, amit biztosított számomra. Áldozatos munkája nélkül a dolgozat sokkal több hibát tartalmazna. Köszönöm szüleim egyetemi és posztgraduális tanulmányaim során nyújtott támogatását, a folyamatos ösztönzést és biztatást, amelyek új témák keresésére és vizsgálatára sarkalltak. Kitartó szeretetük nélkül nem készülhetett volna el ez az értekezés. Köszönet illeti feleségemet, Ginát, amiért megteremtette számomra a dolgozat megírásához szükséges biztos hátteret, a nyugodt munkakörülményeket, bár sokszor nélkülöznie kellett a társaságomat munkám és a kutatási feladatok összeegyeztetése érdekében. Köszönöm az Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék tanszékvezető egyetemi tanárának, dr. Horváth Zoltánnak a lehetőséget, hogy fiatalos, inspiráló környezetben, számos konferencián előadóként szerepelve és gyümölcsöző külföldi kapcsolatokat építve dolgozhattam. A tanszék munkatársai és doktorandusz hallgatói értékes szakmai javaslatokkal segítették munkámat. Külön köszönöm dr. Kozsik Tamásnak, Mihalicza Józsefnek, Pataki Norbertnek, dr. Pócza Krisztiánnak (szerzőtársamnak), és dr. Zólyomi Istvánnak a jobbító szándékú megjegyzéseket.

4

5 Tartalomjegyzék Bevezetés 1 1. A dolgozat eszközrendszerének rövid áttekintése Szoftverminőségi mutatók Külső szoftverminőségi mutatók Belső szoftverminőségi mutatók Programok helyessége Objektumorientált programok helyessége Az Eiffel helyességi specifikációs nyelve Az aspektusorientált programozásról A.NET keretrendszer áttekintő ismertetése Függőségek injektálása Összefoglalás A programhelyesség-ellenőrzés alapjai.net környezetben A fejezet célkitűzése Kapcsolódó kutatások és áttekintés Modell alapú helyességi specifikáció Aspektusorientált lehetőségek a.net platformon Elméleti háttér Magas szintű áttekintés A megvalósítás részletei A helyességi specifikációs nyelv és az elemző elkészítése Szerződések megadása A köztes reprezentáció előállítása A végrehajtás megszakítása - függőségek injektálása Ellenőrző metódus generálása, az ellenőrzés elvégzése Teljesítményelemzés A tézis megfogalmazása i

6 TARTALOMJEGYZÉK 3. Axiomatikus specifikáción alapuló teszteset generálás A fejezet célkitűzése Kapcsolódó kutatások és áttekintés Elméleti háttér A koncepció definíciója Axióma Modell Axióma alapú tesztelés Magas szintű áttekintés A modell, mint sablon interfész implementáció Axiómák leírása tagfüggvényként Axiómák ábrázolása attribútumok segítségével Axiómák és öröklődés A megvalósítás részletei Axióma alapú tesztelés magas szintű áttekintése Absztrakt monoid koncepció A híváselfogás kezelése Axióma attribútumok felderítése Tesztesetek generálása az axiómák alapján A generálás folyamata és az axiómák ellenőrzése A tézis megfogalmazása Nyomkövetésen alapuló releváns tesztadat generálás A fejezet célkitűzése Kapcsolódó kutatások és áttekintés Lehetséges elvárások Kapcsolódó munkák A fejezetben vizsgált kérdések Elméleti háttér Általános naplózás Magas szintű áttekintés A megvalósítás részletei Szekvenciapontonkénti, futásidejű naplózás A naplózó művelet Belső reprezentáció A köztes kód átírása Naplózás a változók szintjén ii

7 TARTALOMJEGYZÉK 4.6. Teljesítményelemzés A napló fájl és a generátor eljárás összekapcsolása Módosított axióma reprezentáció A tézis megfogalmazása Hibajavítás a gyakorlatban - esettanulmány A fejezet célkitűzése Az alkalmazás kiválasztásának szempontjai Az alkalmazás bemutatása Hiba az alkalmazásban Hiba megelőzése helyességi specifikációval Hiba megelőzése axiomatikus teszteléssel Összefoglalás Összegzés Kitekintés, további vizsgálatok Angol nyelvű összefoglaló 111 Ábrák jegyzéke 113 Kódrészletek jegyzéke 114 Algoritmusok jegyzéke 116 Táblázatok jegyzéke 117 Tárgymutató 118 Irodalomjegyzék 119 iii

8

9 Bevezetés A hardver eszközök teljesítményének gyors növekedése [78] lehetővé tette egyre bonyolultabb problémák számítógéppel támogatott megoldását. A készülő rendszerek mind méretben, mind bonyolultságban próbára tették az emberi elme befogadóképességét, előállításukhoz csoportmunkára és technológiára volt szükség. A szoftvertechnológia [100] fő kihívása előírt minőségű szoftver termék adott költségkerettel és erőforráshalmazzal határidőre történő előállítása. Tíz éves ipari környezetben felgyülemlett, különféle szerepkörökben összegyűjtött tapasztalatom alapján tudom, mennyire nehéz feladatról van szó. Már szakmai pályafutásom elején ráéreztem arra, hogy nem lehet költséghatékonyan és határidőre megvalósítani egy projektet, ha a szoftver minőségére vonatkozó kritériumok a kivitelezés során háttérbe szorulnak. Ezen felismerésem nyomán kutatási érdeklődésem a,,jó minőségű alkalmazások létrehozása felé fordult, miközben a szoftverminőség mibenlétéről még nem volt szilárd képem. A szoftverminőség összetett fogalom, amely számos emberi és technológiai tényezőtől függ: a fejlesztői csapat tagjainak pszichológiai adottságaitól kezdve a hatékony projektmenedzselési technikákon keresztül egészen az alkotók szakmai felkészültségéig és a felhasznált programozási környezetig - csupa olyan dolog, amely mind pozitív, mind negatív irányban befolyásolhatja az elkészült termék minőségét. Nem szabad megfeledkezni arról a tényről sem, hogy a különféle projektek eltérő technológiai, emberi és menedzsment elvárásokat támaszthatnak a kivitelező csapattal szemben. Általános üzleti igényeket kielégítő rendszerek fejlesztése során - amilyen egy webáruház, foglalási rendszer, útvonaltervező vagy a világhálón elérhető prezentációs eszköz - érdemes olyan módszertant választani, amely nem ró túlzott adminisztrációs kényszert a fejlesztőkre, a betartandó szabályok száma csekély. Mindamellett a módszertannak képesnek kell lennie a dinamikus üzleti környezetből fakadó változások kezelésére. Az ilyen jellegű módszertanokat agilis módszertanoknak [63] is szokták nevezni. Az agilis módszertanok már a 90-es évek közepétől (dokumentált formában pedig a 2000-es évek elejétől [8]) teret hódítottak. Sikerüket elsősorban annak köszönhetik, hogy nagyméretű projektek során igazolták, képesek megfelelni a szoftvertechnológia fő elvárásainak a napjainkban jellemző gyorsan változó üzleti környezetekben. 1

10 BEVEZETÉS Nyilvánvaló, hogy más alkalmazási területeken - orvosi diagnosztikai/képalkotó berendezések, sejtszintű manipulátorok (génsebészet), vegyi vagy nukleáris üzemek, közlekedés - akár emberi életek is múlhatnak szoftver termékek helyes működésén. Ilyen környezetben igazoltan helyes, nagy megbízhatóságú [100] termékekre van szükség, amelyek előállítása eltérő menedzsment és kivitelezési technikákat kíván meg. Hasonlóképpen, magának a technológiának a kiválasztását is jelentősen befolyásolja az alkalmazási terület: amíg Adában [84], C-ben és C++-ban [54, 102] implementálható egy új metróvonal szemaforjait irányító modul; addig sem a Java, sem a.net platform végfelhasználói szerződése nem teszi lehetővé olyan szoftver készítését, amelyen emberi életek múlhatnak. A feladatnak megfelelő fejlesztői csapat kiválasztása a cégeknek dolgozó toborzókat állítja nehéz helyzet elé [95]. Talán nem véletlen, hogy nagyon sikeresek a munkaerőkölcsönzéssel foglalkozó cégek, illetve, hogy a fejlett országokban működő nagyvállalatok egyre inkább szerződött partnereknek adják át a fejlesztési feladatokat [81]. A siker - akár üzleti, akár nagy megbízhatóságú rendszerek esetén - számos tényező megfelelő együttállásán múlik. Dolgozatomban arra vállalkozom, hogy bemutassam: kizárólag technológiai megfontolások mentén is elérhető a minőség javítása. A közölt eljárások többsége általánosítható más programozási környezetre is 1. A bemutatott eredményeket a.net platformon valósítottam meg, ennek megfelelően a példákat a C# programozási nyelven adom meg. Dolgozatom felépítése az alábbi: az 1. fejezetben áttekintem a dolgozat általános elméleti hátterét. Definiálom a szoftverminőség fogalmát, megadom a fontosabb szoftverminőségi mutatókat. Kijelölöm közülük azokat, amelyekkel részletesen kívánok foglalkozni. Ezután röviden ismertetem az Eiffel programozási nyelv helyességi specifikációs nyelvét. (Az Eiffel napjaink népszerű programozási környezete, amely közvetlen nyelvi eszközöket ad a minőségi mutatók javítására.) A fejezet második felében a.net alkalmazásfejlesztői platform - a későbbi fejezetek szempontjából lényeges - szolgáltatásait és a C# nyelvi elemeit tekintem át. Látni fogjuk, hogy téziseim felhasználják az aspektusorientált programozás alapelemeit, így a fejezet végén röviden ismertetem az aspektusorientált programozási paradigmát. A 2. fejezetben megadom dolgozatom első tézisét. Megvalósítom az Eiffel nyelv szerződés alapú programozási szolgáltatásait.net/c# környezetben. Ehhez aspektusorientált programozási technikákat használok fel, kiemelem a függőségek injektálásán alapuló módszert. Megtervezek egy egyszerű helyességi specifikációs nyelvet és annak fordítóprogramját. A fordító által előállított köztes reprezentációból futási időben generálom az ellenőrzéseket végrehajtó kódot, a hatékonyság növelése érdekében gyorsítótárat alkalmazok. Az implementáció a helyességi specifikációs nyelv szabad megválasztása miatt rugalmasabb, mint az Eiffel megoldása. 1 Elsősorban azok a programozási környezetek jöhetnek szóba, amelyek rendelkeznek futásidejű önellenőrző (introspection) képességekkel. 2

11 A 3. fejezet tartalmazza a dolgozat második tézisét, amelyben a korábban tárgyalt helyességi specifikációs eszköztár újszerű alkalmazási területét mutatom be. Eszközt adok arra, hogy elvont fogalmakhoz a helyesség szükséges feltételeiként interpretálható axiómákat kapcsolhassunk, és az axiómák alapján a fejlesztő számára transzparens módon, automatizáltan teszteseteket generáljunk és futtassunk. Módszerem nem csak új szoftver termékek létrehozása esetén használható; releváns bemeneti adatok mellett már meglévő rendszerek módosítását is megkönnyíti. A 4. fejezet a dolgozat harmadik tézise, amely a tesztadat generálás problémájával foglalkozik. Kidolgozok egy napló formátumot, amely objektumorientált programozási nyelvek szekvenciapontonkénti naplózására használható. A formátumot felhasználva elkészítem a naplógenerálás implementációját. Elvégzem a naplózó eljárás teljesítményelemzését, ami alapján megállapítom, hogy az ismertetett módszer a gyakorlatban is felhasználható. A 5. fejezetben egy esettanulmányt teszek közzé, amellyel a dolgozatban kidolgozott kétféle infrastruktúra (helyességi specifikációs, axiomatikus tesztelés releváns tesztadatokkal) gyakorlati működését kívánom szemléltetni. A 6. fejezetben rendszerezem és összegzem az elért eredményeimet. Egyúttal kitekintést nyújtok az ígéretes kutatási területekre. Az alábbi táblázat a felhasznált releváns publikációimat tartalmazza tézisenkénti bontásban. [13] [14] [15] [17] [90] [91] [92] I. II. III. 3

12

13 ,,Napjainkban a legtöbb szoftver olyan, mint egy egyiptomi piramis: sok millió kő rabszolgamunkával egymásra halmozva, bárminemű szerkezeti integritás nélkül. (Alan Kay) 1. A dolgozat eszközrendszerének rövid áttekintése Dolgozatomban azt a célt tűztem ki magam elé, hogy olyan eszközöket adjak a fejlesztők kezébe, amelyek segítségével lehetővé válik ipari alkalmazások minőségének a javítása. Mind a szoftvertechnológia definíciójában, mind célkitűzésemben szerepel a szoftverminőség fogalma. Annak érdekében, hogy beszélhessünk a minőség javításáról, definiálnunk kell a szoftver minőségi mutatóit. Ebben a bevezető szakaszban erre vállalkozom Szoftverminőségi mutatók A minőség összetett fogalom és számos nézetrendszer szerint vizsgálható. Kézenfekvő lehetőség a fejlesztők és a felhasználók szempontjából kategorizálni a szempontokat, hiszen ők azok, akik a fejlesztés vagy a felhasználás valamely fázisában interakcióba kerülnek a rendszerrel. Fejlesztői szempontból fontos minőségi kritérium a kód olvashatósága, a modularitás; objektumelvű rendszereknél a laza összekapcsolás (loose coupling), az erős kohézió (strong cohesion), az egy felelősség elve (single responsibility principle), a tervezési minták (design pattern) [39] tudatos használata, automatizált tesztesetekkel való lefedettség, kivételkezelés típusos kivételekkel, stb. A program szövegének, forráskódjának ismerete - kiegészítve esetleg a futásidejű jellemzők (teljesítmény) vizsgálatával - elégséges a minőség átfogó értékeléséhez. A végfelhasználó azonban más jellegű igényeket támaszt a rendszerrel szemben. Számára mindegy, hogy a rendszer architektúrája [96] mennyire elegáns, vagy a naplózáshoz használt adatbázis normalizált-e. Ugyanakkor fontosnak tartja a felhasználói felület ergonómikus kivitelét, az esztétikus megjelenést, az alacsony átlagos válaszidőt, a beszédes hibaüzenetek meglétét, a testre szabhatóságot, stb. A szoftverminőség fogalmának definiálásakor Bertrand Meyer ezt a természetes felosztást követi [74], és a minőséget befolyásoló tényezőket két nagy csoportra osztja. A belső szoft- 5

14 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE verminőségi mutatók a fejlesztői szempontból, a külső szoftverminőségi mutatók pedig a felhasználói szempontból fontos tényezőket jelentik. A továbbiakban a külső minőségi mutatókat tekintem át röviden Külső szoftverminőségi mutatók Helyesség Definíció (Helyesség). A helyesség a szoftver azon jellemzője, hogy pontosan a tőle elvárt, a specifikációban megfogalmazott feladatokat hajtja végre. A helyesség a legfontosabb minőségi mutató, azonban vegyük észre, hogy a definícióban szerepel a specifikáció fogalma. Nagyméretű szoftverrendszerek specifikációja formális eszközökkel a gyakorlatban nehezen kivitelezhető feladat, hiszen már egy kisebb program esetében is annyi feltétellel, alrendszerrel találkozhatunk, hogy a helyesség megfogalmazása az összes tényezőt figyelembe véve nehézségekbe ütközik. Meyer azt javasolja, hogy használjuk ki napjaink szoftver rendszereinek azt a sajátosságát, hogy elkülönített, egymással lazán csatolt [64] rétegekből állnak. Így a helyesség vizsgálatát leszűkíthetjük egy-egy réteg izolált vizsgálatára, feltételezve, hogy az adott réteg alatt elhelyezkedő további rétegek mindegyike helyes. (A dolgozat későbbi részében látni fogjuk, hogy az Eiffel programozási nyelv megalkotásánál is hasonló mentális absztrakciót alkalmazott a tervező: a teljes program helyessége kisebb egységek, az osztályok helyességén keresztül definiált - ls algoritmus.) Robusztusság Definíció (Robusztusság). A robusztusság a szoftver azon jellemzője, hogy képes megfelelően reagálni nem megengedett bemenetekre. A helyesség definíciójánál láttuk azt az elvárást, hogy a rendszer megfelelően ellássa a specifikációban foglalt feladatát. Mindig lesznek azonban olyan esetek, amelyekre a specifikáció semmit sem követel meg. A robusztusság azt biztosítja, hogy ezek az esetek nem okoznak végzetes hibát, hanem az elvárható módon hibaüzenetet generálnak, vagy esetleg tisztán terminálják a program végrehajtását. A robusztusság tehát kiegészíti a helyesség fogalmát: minden, a specifikációban nem megfogalmazott esetben a programnak az elvárható legnagyobb gondossággal kell eljárnia. Kiterjeszthetőség Definíció (Kiterjeszthetőség). A szoftver kiterjeszthetősége annak mértéke, hogy a specifikáció változása esetén mennyire könnyű a programot módosítani. 6

15 1.1. SZOFTVERMINŐSÉGI MUTATÓK A szoftver módosítása elméletileg egyszerű feladat: a program szövegének birtokában pusztán át kell írni a megfelelő részeket. A nagy szoftverrendszereket azonban Meyer kártyavárhoz hasonlítja: egyetlen kártya áthelyezése vagy megmozdítása az egész kártyavár összeomlását okozhatja 1. A kiterjeszthetőség növelésének két igen fontos eszköze: Egyszerű architektúra: egy egyszerű architektúra mindig könnyebben kiterjeszthető, mint egy bonyolult. Decentralizáció: Minél nagyobb autonómiával rendelkeznek, minél lazábban csatoltak a rendszert felépítő modulok, annál kisebb valószínűséggel fog egy látszólag lokális módosítás láncreakciót elindítani, amely a rendszer egészének módosítását igényli. Gondoljunk az objektumorientált programozási paradigmára, amely sikerét nem kis részben annak köszönheti, hogy támogatja könnyen kiterjeszthető alkalmazások készítését. Az objektumorientált rendszer egy dinamikus gráf, amelynek csúcsai az objektumok, élei pedig az objektumok közötti kapcsolatok [98]. Az architektúra tipikusan kliens-szerver jellegű, az osztályok laza csatolása, az interfész alapú programozás pedig a decentralizáció megvalósításának eszközei. Újrafelhasználhatóság Definíció (Újrafelhasználhatóság). Az újrafelhasználhatóság a szoftverkomponens azon tulajdonsága, hogy több különböző alkalmazás építőköveként szolgálhat. A kód újrafelhasználhatóságának az igénye abban a felismerésben gyökerezik, hogy sok különböző alkalmazás azonos mintákat követ, így a fejlesztőknek hasonló problémákat kéne újra és újra megoldaniuk. Amennyiben lehetőséget teremtünk a kód hatékony újrafelhasználására, egységnyi idő alatt többet foglalkozhatunk a tényleges problémával, a megoldás minőségi, illetve kvantitatív mutatóinak a javításával. Ismét az objektumorientált paradigmát hozom fel példaként. Az objektumorientált programozási nyelvek többsége támogatja az objektumosztályok közötti öröklődést, amely a kód újrafelhasználásának erős eszköze [85]. Ugyanakkor az öröklődés túlzott alkalmazása a kiterjeszthetőség ellenében hat, hiszen a származtatott osztály örökli az ős minden adattagját és metódusát. Ez - lévén fehérdoboz típusú újrafelhasználás - erős függőséget teremt az ős és gyermek osztályok között, tehát az ős módosítása potenciálisan kihat minden belőle származó gyermekre, ez pedig módosítási láncreakciót indíthat el. 1 Nem megfelelően strukturált, monolitikus rendszerek esetében fokozottan igaz a megállapítás. 7

16 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE A kódújrafelhasználás szép példája a tervezési minta (design pattern) [39]. A tervezési minták olyan megoldások, amelyek gyakran előforduló problémákra adnak általános érvényű válaszokat [99]. Alkalmazásuk elősegíti az újrafelhasználhatóság és a kiterjeszthetőség elérését. Kompatibilitás Definíció (Kompatibilitás). A kompatibilitás azt méri, milyen mértékben képesek a rendszer komponensei egymással együttműködni. A kompatibilitás eléréséhez fontos a terv homogenitása, illetve a modulok, vagy önálló programok közötti kommunikációs stratégiák egységessége, esetleg szabványosítása. Ilyen szabványos köztes (middleware) protokollok például a CORBA és a Microsoft COM technológiák. Hatékonyság Definíció (Hatékonyság). A hatékonyság a szoftver azon jellemzője, hogy menynyire bánik gazdaságosan a hardver erőforrásokkal (processzoridő, memória, sávszélesség). A hatékonyság gyakran a kód olvashatósága, illetve az absztrakció ellenében hat, ezért gyakori hozzáállás, hogy előbb működjön a kód megfelelően, csak azután foglalkozzunk a hatékonysággal. Olyan szaktekintélyek is osztják ezt a nézetet, mint Donald Knuth, aki szerint,,... az idő előtti optimalizásás minden rossz gyökere 2. Másfelől a fejlesztők hajlamosak túlzott erőfeszítést tenni apró optimalizálások érdekében. Erre akkor lehet szükség, ha a hatékonyság a specifikáció része. A specifikáció előírhatja a garantált válaszidőt a rendszer bizonyos szolgáltatásaival kapcsolatban - ilyenkor a hatékonyság a helyesség előfeltétele is egyben 3. Hordozhatóság Definíció (Hordozhatóság). A hordozhatóság azt méri, mennyire könnyű a szoftvert átvinni különböző hardver és szoftver környezetekbe. A Java platform a 90-es évek közepén megvalósított egy hardver-szoftver gépet, a Java Virtuális Gépet (Java Virtual Machine), amely jelenleg minden népszerű környezetben elérhető. 2 Ezt a hozzáállást tovább erősítette a hardver eszközök teljesítményének gyors növekedése is [78]. 3 A.NET platform végfelhasználói szerződése kategorikusan tiltja olyan alkalmazások készítését, amelyeken emberi életek múlhatnak. Meglepő azonban, hogy ez éppen a hatékonysággal van összefüggésben. A platform a szemétgyűjtés miatt ugyanis nem képes adott válaszidőt garantálni, ilyen módon egy kritikus helyzetben adott válasz esetleg már túl kései. 8

17 1.1. SZOFTVERMINŐSÉGI MUTATÓK A.NET a 2000-es évek elején hasonló, némileg kiforrottab koncepcióval megismételte a Java sikerét, azonban a futtató környezet kizárólag Windows operációs rendszerre készült el 4. Napjainkban a mobil eszközök elterjedésével a hordozhatóság problémája aktuálisabb, mint valaha. Majdnem minden nagy gyártó előállt a saját felhő alapú megoldásával (Microsoft, Google, Amazon), divatos fogalmak a szoftver, mint szolgáltatás (software as a service), az alkalmazás virtualizáció 5. A fent felsorolt technológiák mindegyikének az a célja, hogy a hordozhatóság problémáját megoldja, levegye ennek a terhét a fejlesztők válláról. A mottó: mindent csak egyszer kell elkészíteni, és annak minden környezetben működnie kell. Használhatóság Definíció (Használhatóság). A használhatóság - a könnyű telepítésen, intuitív működtetésen kívül - azt is jelenti, hogy különböző előképzettségű emberek egyformán képesek a szoftvert használni, és segítségével problémákat tudnak megoldani. A használhatóság egyik előfeltétele a strukturális egyszerűség. Egy jól átgondolt, gondosan megtervezett rendszert egyszerűbb megtanulni, megérteni, mint egy kevésbé rendezettet. Természetesen a tervezés és a felhasználás közötti koncepcionális szakadék miatt ez önmagában nem garantálja a sikert, de mindenképpen előnyösen befolyásolja a jó használhatóságot. Funkcionalitás Definíció (Funkcionalitás). A rendszer által felkínált különböző felhasználói lehetőségek száma. Gyakran nehéz kérdés annak eldöntése, hogy mely szolgáltatások elégségesek a felhasználók komfortérzetének biztosításához. Visszatérő helyzet egy-egy új verzió kiadásakor, hogy a felhasználók elégedetlenek bizonyos szolgáltatásokkal kapcsolatban. Ami az egyik felhasználónak egy régóta hiányolt funkció, az a másik számára akár zavaró is lehet. Általánosságban elmondható, hogy újabb szolgáltatások hozzáadása során a rendszer konzisztenciájának fenntartása a legfontosabb. A funkciók túlzott hajszolása jellemzően a szoftver termék minőségének általános romlásához vezet. 4 A Mono a.net nyílt forráskódú, platformfüggetlen, nem szabványos implementációja. Ipari jelentősége csekély. 5 A trendet jól mutatja, hogy a Microsoft új operációs rendszerének, a Windows 8-nak a tervezésekor eddig soha nem látott hangsúlyt kapott a hordozhatóság. A szoftveróriás ígérete szerint a Windows 8 képes lesz arra, hogy a nagy webkiszolgálóktól kezdve a telefonkészülékeken át a táblagépekig többféle hardveren működjön. 9

18 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE Határidő Definíció (Határidő). A szoftver termék a megadott határidőre (vagy előtte) elkészül. Egy későn kiadott szoftver lehet, hogy teljesen feleslegessé válik. Ez nem csak a szoftveriparban van így, azonban ebben az ágazatban - lévén az egyik legdinamikusabban változó terület - a probléma fokozottan jelentkezik. Nagyobb szoftverrendszerek esetében a pontosság elég ritka dolognak számít, ezen a problémán agilis módszertanok [63], különleges fejlesztési eljárások [7] alkalmazásával igyekeznek enyhíteni a szoftverkészítéssel foglalkozó cégek. További külső minőségi mutatók A teljesség igénye nélkül álljon itt néhány további külső minőségi mutató! Tesztelhetőség: mennyire könnyű a tesztadatok előállítása. Integritás: mennyire biztosítottak a rendszer részei jogosulatlan felhasználás ellen. Javíthatóság: mennyire könnyű a hibák kijavítása. (Amennyiben a javítás egyszerűen kivitelezhető, a felhasználóknak kevesebb ideig kell együtt élni a hibával.) Gazdaságosság: a szoftver kifejlesztésének a költsége nem lépi túl a megadott keretet Belső szoftverminőségi mutatók Meyer azt állítja, hogy végső soron mindenképpen a külső tényezők számítanak; azonban a belső minőségből, illetve az ezt biztosító technikák alkalmazásából következik a külső minőségi mutatók javulása is. Ezt a nézetet osztják a szoftvermetrikák azon hívei is, akik a termék belső tulajdonságainak mérésétől és kontrollálásától várják áttételesen a használhatóság, tehát a külső minőség pozitív változását [45]. Az elképzelés azért különösen vonzó, mert a belső jellemzők alapján objektív és környezettől független képet kaphatunk a minőségről. Ugyanakkor a belső minőségből következő külső minőség inkább csak intuíció, mintsem tudományosan igazolt tétel. További kutatás tárgyát kell képezze annak a kiderítése is, hogy melyek azok a belső minőségi mutatók (amennyiben vannak ilyenek), amelyek közvetlenül befolyásolják a külső minőséget. A belső és a külső minőség megfeleltetésére, leképezésére számos modell született [58]. Arra is van bizonyíték [53, 82], hogy a belső minőséget kitüntető technikák alkalmazásával csökkenthető a fejlesztés során felmerülő hibák száma. Ez áttételesen azt jelenti, hogy kevesebb időt kell hibajavításra fordítani, következésképpen több idő marad a funkcionalitás kidolgozására. Ebből természetesen következik a külső minőség javulása is. 10

19 1.2. PROGRAMOK HELYESSÉGE 1.2. Programok helyessége A szakaszban áttekintettem a fontosabb külső és belső szoftverminőségi mutatókat. Kiemeltem, hogy az egyik legfontosabb külső minőségi mutató a helyesség. Ebben a szakaszban az objektumorientált programok helyességfogalmával és az Eiffel helyességi specifikációs mechanizmusával foglalkozom. Programok helyességének ellenőrzésére a leggyakrabban alkalmazott módszer a tesztelés. Ezzel összhangban, dolgozatom 3. fejezetében a programhelyesség-ellenőrző infrastruktúra új alkalmazási területeként az axiomatikus specifikáción alapuló tesztelést mutatom be. A másik lehetőség, hogy a program kipróbálása, futtatása nélkül, matematikai eszközök felhasználásával megkíséreljük bizonyítani a program helyességét. Ez az eljárás már egyszerű programok esetén is meglehetősen nehéz feladat [34]. Az Eiffel programozási nyelv [72, 73] érdekes kevert megközelítést választott: a programhelyesség-ellenőrzéssel kapcsolatos elméleti elemeket közvetlenül beemelte a nyelv specifikációjába. Ezzel lehetővé vált a programok helyességének futásidejű ellenőrzése [85]. A megközelítés rokonságot mutat az automatizált teszteléssel, a fő különbség az, hogy az ellenőrzés egy belső nyelvi mechanizmuson alapul, a tesztadatokat pedig maga a program szolgáltatja. (Dolgozatom 4. fejezetében ezt az észrevételt fogom felhasználni arra, hogy releváns tesztadatokból álló adatbázist építsek az axiomatikus teszteléshez.) Objektumorientált programok helyessége Mind a tesztelés, mind a futásidejű ellenőrzés során arra keressük tehát a választ, hogy a program helyes-e. Vegyük azonban észre, hogy a helyesség összetett fogalom. Ránézve egy programra nem tudjuk eldönteni, hogy az helyes-e vagy sem. Annak érdekében, hogy a kód a fordítóprogram számára értelmezhető legyen, meg kell felelnie bizonyos formai szabályoknak - ennek megfelelően beszélhetünk szintaktikai értelemben vett helyességről. A program működésének megértéséhez tisztában kell lennünk a nyelvi szerkezetek jelentésével, azaz szemantikájával is. A helyesség eldöntéséhez a szintaxison és a szemantikán kívül szükségünk van annak a minél pontosabb leírására is, hogy mi az, amit elvárhatunk a programtól. Ezeket az elvárásokat összefoglalóan helyességi specifikációnak nevezzük. Általánosságban egy M művelet esetén az {E}M{U} Hoare-formulát alkalmazzuk jelölésre. E az M művelet előfeltétele, U pedig az utófeltétele. A Hoare-formula jelentése, hogy amennyiben az E predikátum igaz a művelet végrehajtása előtt, és az M műveletet végrehajtjuk, akkor az befejeződik, és befejeződése után igaz lesz az U predikátum. Ezen jelölések figyelembe vételével a tipikus objektumorientált struktúrák helyességének eldöntését a 1.1 algoritmikus leírás tartalmazza. 11

20 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE 1.1. algoritmus: Programstruktúrák elméleti helyessége 1. Minden attribútum (objektum, változó) helyes. 2. Ciklusok helyessége. Jelölje INIT egy ciklus inicializáló blokkját, legyen BODY a ciklusmag, INV a ciklus invariánsa, VAR a termináló függvény, REQ logikai kifejezés, amely azt írja le, hogy a ciklus milyen feltételek mellett hajtható végre. Ekkor a ciklus pontosan akkor helyes a helyességi specifikációra nézve, ha az alábbi Hoare-formulák érvényesek: {REQ}INIT {INV } {REQ}INIT {V AR 0} {INV EXIT }BODY {INV } {INV EXIT V AR = v}body {0 V AR v} 3. Kivételkezelés. A kivételkezelés során a nyilvános metódusoktól azt várhatjuk el, hogy az osztály esetlegesen sérült konzisztenciáját visszaállítsák. Bertrand Meyer eredeti definíciója [72, 73] szerint M nyilvános metódus kivételkezelése akkor és csak akkor konzisztens, ha a kivételkezelő minden B ágára (amely nem retry utasítással ér véget) érvényes a következő Hoare-formula: {T rue}b{i} 4. Metódusok helyessége. M metódus esetén legyen B a metódus törzse, E az előfeltétele, U az utófeltétele, I pedig a tartalmazó osztály invariánsa. Az M metódus akkor és csak akkor helyes a helyességi specifikációra nézve, ha minden benne előforduló ciklus helyes, továbbá érvényes az alábbi: {E}B{U} 5. Osztályok helyessége. Egy C osztály akkor és csak akkor helyes a specifikációra nézve, ha konzisztens, és minden metódusa helyes. Jelölje D az osztály alapértelmezett értékeit leíró feltételt. Akkor mondjuk, hogy a C osztály konzisztens az I osztályinvariánsra nézve, ha minden E, U specifikációval rendelkező, nyilvános metódusra a következő formulák érvényesek: {D E}B{U I} {I E}B{U I} 12

21 1.2. PROGRAMOK HELYESSÉGE Az objektumorientált programok helyességét a 1.1. leírásban szereplő osztályok helyességfogalmára lehet visszavezetni definíció (Osztályok közötti kapcsolatok). Egy adott kódrészletben A osztály ügyfélként (client), B osztály kiszolgálóként (server) szerepel, ha A közvetlenül vagy közvetetten hivatkozik B valamely metódusára, attribútumára, avagy magára a B típusra definíció (Osztályok közötti függőségek). Azt mondjuk, hogy az A osztály megvalósítása függ a B osztálytól, ha van olyan környezet, amelyben A ügyfél, B pedig kiszolgáló. Jelölés: B f lezártat + f -al jelöljük. Az A + f megvalósítása függ az A osztálytól. A. A függőségi reláció reflexív és tranzitív. A reflexív tranzitív kifejezés pontosan azokat az osztályokat jelöli, amelyek 1.3. definíció (Programok helyessége). Legyen adott P program, amelynek végrehajtása C osztály példányosításával jár. A P program akkor és csak akkor helyes a specifikációra nézve, ha + f C osztályok mindegyike helyes Az Eiffel helyességi specifikációs nyelve Az Eiffel programozási nyelv a fenti értelemben vett helyességi specifikációnak a megfogalmazására ad közvetlen nyelvi eszközöket, illetve egy olyan belső mechanizmust, amely képes a helyességi specifikáció futásidejű ellenőrzésére. Kulcsszó from invariant variant check require ensure old strip invariant Jelentés Ciklus inicializáló blokkja. Ciklusinvariáns. Termináló függvény. Ellenőrzés a program tetszőleges pontján. Metódus előfeltétele. Metódus utófeltétele. Hivatkozás a végreahjtás előtti értékre. Hivatkozás az osztály további, a megadotton kiívül eső részére. Osztályinvariáns táblázat: Az Eiffel helyességi specifikációs nyelvének elemei A 1.1 táblázatban felsorolt kulcsszavak az Eiffel helyességi specifikációs nyelvének a nyelvi elemei. Maga a helyességi specifikációs nyelv az Eiffel egy valódi részhalmaza [85]. A 2.3. szakaszban látni fogunk egy egyszerű példát a helyességi specifikációs nyelv használatára. Ezen a ponton elég annyit megjegyeznünk, hogy a helyességi specifikációs nyelv segítségével szerződéseket fogalmazhatunk meg. A szerződés fogalma az üzleti életből vett metafora: az 13

22 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE ügyfél és a szolgáltató megállapodnak egy szerződésben, amely a közöttük létrejövő üzleti természetű viszonyt szabályozza. A fogalom természetes módon kiterjeszthető a szoftverrendszerekre, ahol mind az ügyfél, mind a szolgáltató szerepét egy-egy szoftverkomponens veszi át. Az objektumorientált rendszerek granularitását figyelembe véve az Eiffel programozási nyelv esetében az a jellemző, hogy a helyességi specifikációs nyelv által megfogalmazható szerződések osztályokhoz, metódusokhoz, metódusok bemenő paraméter eihez vagy visszatérési érték eihez kötődnek Az aspektusorientált programozásról Annak érdekében, hogy a szerződések specifikálása a programozási környezetbe illeszkedjen, feldolgozása, betartatása pedig a fejlesztők számára transzparens módon történjen, az aspektusorientált programozás eszköztárát hívtam segítségül megjegyzés (Aspektusorientált programozás). Az aspektusorientált programozás az 1990-es években létrejött programozási paradigma. Életre hívásában fontos szerepe volt annak, hogy az objektumorientált modellezés/programozás számos fontos alkalmazási terület (pl. hálózati kommunikáció) absztrakcióját nem támogatja kellő mértékben, és az UML alapú [107] tervező és kódgeneráló eszközök csak részben alkalmasak a már meglevő rendszerekkel való integrációra [85]. Tekintsük át az aspektusorientált programozáshoz köthető alapfogalmakat! 1.4. definíció (Komponens). Olyan programegység, amely a rendszer funkcionális dekompozíciója során természetes módon előáll. A komponensek tulajdonképpen a hagyományos objektumorientált programozás során előálló egységek: osztályok, objektumok, metódusok definíció (Aspektus). Olyan programegység, amely a rendszer funkcionális dekompozíciója során nem áll elő természetes módon, azonban a rendszer viselkedését befolyásolja definíció (Aspektusorientált programozás). Az aspektusorientált programozás célja, hogy a rendszert felépítése során oly módon dekomponáljuk aspektusokká és komponensekké, amely lehetővé teszi a megfelelő absztrakciót és a rendszer hatékony kompozícióját. Az aspektusoreintált programozást támogató eszközök abban különböznek leginkább a hagyományos programozási nyelvektől, hogy lehetőséget adnak a komponensek és az aspektusok absztrakciójára, illetve ezek egyszerű összeillesztésére, összeszövésére (weaving) is. Jó példa az aspektusorientált programozási paradigma felhasználásával elegánsan megoldható feladatra: alkalmazások üzleti és hibanaplójának előállítása, jogosultságok 14

23 1.4. A.NET KERETRENDSZER ÁTTEKINTŐ ISMERTETÉSE ellenőrzése a végrehajtás előtt, központi kivételkezelési mechanizmus megvalósítása. Ezek a példák a saját fejlesztői gyakorlatomból származnak, holott még sohasem készítettem tisztán aspektusorientált programot. Az aspektusorientált programozás azonban tipikusan multiparadigmás módszer: a szoftver komponensei a hagyományos (objektumorientált) paradigma szerint készülnek, az aspektusokat pedig gyakran egy előfeldolgozó lépésben illesztjük be a kódba A.NET keretrendszer áttekintő ismertetése A.NET keretrendszer [75] első szabványos [30, 50] verziója 2002-ben, mintegy 7 évvel a Java [52] után, azonban gyakorlatilag azonos alapelveket követve jelent meg. Ebben a szakaszban - ahol lehetséges, a Java-val összehasonlítva - mutatom be a platform felépítését és alapvető szolgáltatásait. Az egyik legfontosabb közös elem egy virtuális futtató környezet megléte, amelyet a Java közösségben Java Virtuális Gépnek (Java Virtual Machine), a.net esetében pedig általános futtató környezetnek (Common Language Runtime, CLR) neveznek. A környezetek virtualizációja megköveteli valamely - a virtuális környezet architektúrájának megfelelő -,,gépi kód létezését is. A Java-nál ez az ún. bájtkód (byte code), a.net-nél pedig az általános köztes nyelv (Common Intermediate Language, CIL), vagy egyszerűen csak köztes nyelv (Intermediate Language, IL). Jelentős eltérés van viszont abban, hogy míg a Java virtuális gépe gyakorlatilag minden széles körben elterjedt operációs rendszeren elérhető (Windows bármely verziója, Mac OS X, Linux, Solaris), tehát gyakorlatilag platformfüggetlen; addig a.net futtató környezet kizárólag a Windows operációs rendszer különböző verzióin működik. A Java bájtkód jelentősége így már érthető: amennyiben biztosítjuk, hogy ugyanaz a magas szintű Java nyelvű kód ugyanarra a bájtkód szekvenciára forduljon, továbbá a Java virtuális gép különféle megvalósításai pontosan ugyanazt a szolgáltatás halmazt kínálják, úgy biztosított a platformfüggetlenség. A.NET a Windows operációs rendszerhez kötődik, tehát nem platformfüggetlen. Létezik ugyan platformfüggetlen implementációja (Mono projekt [77]), és kutatási célra használható nyílt forráskódú implementációja is (Rotor, [101]), azonban ennek ellenére a Java-hoz hasonló ipari platformfüggetlenségről nem beszélhetünk. Mi tehát a célja a virtualizált futtató környezetnek és az általános köztes nyelvi reprezentációnak? A válasz a nyelvfüggetlenség. A.NET környezet ugyanis több, mint 40 programozási nyelvet támogat (köztük a C# nyelvet [29, 49, 71]), amelyek mindegyike az általános köztes nyelvre fordul. A Microsoft ráérzett arra, hogy - legalábbis az általános magas szintű programozási nyelveket figyelembe véve - a fejlesztők ragaszkodnak az általuk már korábban elsajátított nyelvek használatához. Sokkal könnyebb ugyanis valakit rávenni arra, hogy térjen át az új platformra, 15

24 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE ha nem kell ehhez egyúttal egy új programozási nyelvet is megtanulnia. Természetesen tudjuk, hogy még egy programozási nyelv magas szintű ismerete sem jelenti azt, hogy valaki az adott nyelven produktív, jó programozó. Mindehhez az is kell, hogy a programozó ismerje az adott nyelvhez (és sok esetben környezethez!) kapcsolódó, gyakran felmerülő programozási feladatok (fájlkezelés, hálózati kommunikáció, adatbázis-elérés, XML feldolgozás, szálak szinkronizációja, stb.) megoldása során használható programkönyvtár akat. Az alapvető osztálykönyvtár (Base Class Library, BCL) [3, 70] a.net igen jól átgondolt, gondosan megtervezett, sokféle szolgáltatást nyújtó programkönyvtára, amely a platform által támogatott nyelvek bármelyikéből azonos módon használható. A programozók számára (és az őket alkalmazó cégek számára) a platform másik vonzereje, hogy amennyiben elsajátítják a BCL szolgáltatásainak a használatát, egy másik nyelvre történő váltáskor csak a nyelv szintaxisát kell megtanulni. A BCL szolgáltatásait az 1.2. táblázatban foglaltam össze [93]. Szolgáltatás Alapszolgáltatások Adatbázis elérés XML Vastag kliens Vékony kliens Kommunikáció Munkafolyamatok kezelése Hálózati szolgáltatások Nagyvállalati szolgáltatások Biztonsági szolgáltatások Platformhívás Kapcsolódó technológiák Alaptípusok kezelése, gyűjtemények kezelése, I/O ADO.NET, Linq2SQL, Entity Framework XML DOM és navigátor kezelése, validációk (XSD), transzformációk (XSLT, XPath) Windows Forms, Windows Presentation Foundation ASP.NET, ASP.NET MVC, SilverLight Socket kommunikáció, webszolgáltatások, remoting, Windows Communication Foundation Workflow Foundation IP alapú kommunikáció, alapvető protokollok (Ftp, http, Dns, stb.) Message Queue, COM+ Kriptográfia, címtár elérés WinAPI függvények, COM 1.2. táblázat: A BCL szolgáltatásai A BCL szolgáltatásait tehát a platform bármely nyelvéből elérjük, és minden nyelv a köztes nyelvre fordul. Az IL egy alacsonyszintű, az assembly-re hasonlító nyelv, amely egy vermet használ az utasítások közötti adatátvitelre. Az IL utasításkészletében a szokásos logikai és aritmetikai műveletek mellett helyet kaptak a memória lefoglalását, a ki- és becsomagolást, illetve a metódushívásokat végző utasítások is. 16

25 1.4. A.NET KERETRENDSZER ÁTTEKINTŐ ISMERTETÉSE A gépfüggő, azaz natív kódra való fordítást futási időben az általános futtató környezet végzi el, innen származik az elnevezés: futásidejű fordítás (just-in-time compilation, JIT) 6. A.NET környezetben a futásidejű fordítás lusta algoritmus szerint működik. Egy típus (osztály) elérésekor csak az osztály szintű műveleteket kell elvégezni: inicializálni kell a statikus változók tárolásához szükséges memóriát a statikus memóriaterületen, és le kell fordítani az osztály statikus konstruktorát. A nem osztály szintű metódusokat az általános futtató környezet a hívás tényleges előfordulásakor fordítja natív kódra. A fordítás csupán az első hívás esetén történik meg, a lefordított kód a program futásának a befejeződéséig rendelkezésre áll (a program újbóli végrehajtása azonban már új fordítást igényel). A köztes nyelven íródott kód a magas szintű programozási nyelven írt kód lefordításakor jön létre. Az így kapott modult - amely hasonló a Java csomag (package) fogalmához - alkalmazásmodulnak vagy szerelvénynek (assembly) nevezzük. Amennyiben a modulokat több alkalmazás között is meg szeretnénk osztani, úgy azokat a globális alkalmazásmodul tár ban (Global Assembly Cache, GAC) helyezhetjük el. Ez az alapértelmezett hely, ahol a.net modulbetöltő először keresi a modulokat. Technikailag a globális alkalmazásmodul tár egy egyszerű könyvtár (c:\windows\assembly\gac_64\), azonban egy modul felvétele a tárba nem egyszerű másolással, hanem a gacutil parancssori eszközzel történik. Csak olyan modulok helyezhetők el a globális tárban, amelyek rendelkeznek erős név vel. Az erős név a modul nevéből, verziójából, kultúrájából, és erős nevű kulcsából (strong name key) tevődik össze, amely fordítás után már nem változtatható meg, ezzel biztosítva a rendszer integritását. Bármely, a platform által támogatott magas szinten íródott kódból előállítható egy ilyen köztes nyelvű kódot tartalmazó alkalmazásmodul, tehát az eredetileg különféle nyelveken íródott komponensek egymással képesek együttműködni. Az alkalmazásmodul tipikusan egy dll fájl, amely köztes nyelvű utasításokat tartalmaz. A köztes nyelvű utasításokon kívül helyet kaphat benne beágyazott erőforrás (embedded resource), amely lehet szöveges állomány, bináris kép, zene, stb. A beágyazott erőforrások használata akkor kézenfekvő, amikor statikus információt kell a modullal együtt szállítanunk, vagy nincs hatásunk a program telepítésének a menetére. A beágyazott erőforrások mellett az alkalmazásmodul metaadatokat is tartalmazhat. A metaadatok a kód egységeihez statikusan, fordítási időben kapcsolható adatok, amelyek az általuk,,dekorált kód viselkedését megváltoztathatják. A metaadatokat attribútumok segítségével kapcsolhatjuk a struktúrákhoz 7. Minden olyan osztály, amely direkt vagy indirekt módon a System.Attribute BCL-beli osztályból származik, attribútum osztály. Bár maga az alapkönyvtár is számos attribútumot tartalmaz (Serializable, ServiceContract, Obsolete, stb.), természetesen saját attribútumok készítésére is van lehetőség. 6 A Java virtuális gép legtöbb megvalósítása is képes a futásidejű fordításra (Java HotSpot). 7 A Java-ban ugyanezt annotációk segítségével tehetjük meg. 17

26 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE.NET Java Platformfüggetlenség Nyelvfüggetlenség Köztes nyelv (IL) (bájtkód) Futásidejű fordítás Közös típusrendszer - Közös osztálykönyvtár - Memóriakezelés, szemétgyűjtés Kivételkezelés Szálkezelés Kód metaadat (attribútum) (annotáció) Reflexió 1.3. táblázat: A.NET és a Java környezet összehasonlítása Az attribútum tehát egy közönséges osztály. Azonban mivel az attribútumnak átadott értékeknek fordítási időben ismert konstansoknak kell lenniük, a paraméterek típusa kizárólag az alábbi felsorolásban szereplő típusok közül kerülhet ki: bool, byte, char, double, float, int, long, short, string object System.Type enum (felsorolási típus), amennyiben nyilvános láthatóságú, és minden bennfoglaló típus (amennyiben van ilyen) is nyilvános láthatóságú A fenti típusokból képzett egydimenziós tömb típusok A fordítási időben a különféle programegységekhez kapcsolt attribútumok a reflexió segítségével kérdezhetők le futási időben 8. Az attribútumok futási időben közvetlenül nem módosíthatók. Az eddigiek alapján nyilvánvaló, hogy a.net és a Java igen hasonló koncepció, ezt szemléltetem a 1.3. táblázatban Függőségek injektálása 1.7. definíció (Fordított vezérlés). A fordított vezérlés ( inversion of control, IoC) a szoftverkészítés során alkalmazott architekturális tervezési alapelv. Nevét onnan kapta, hogy az alapelv alkalmazásával készült szoftver bizonyos végrehajtási lépései felcserélődnek a procedurális 8 A Java programozási nyelv annotációi egy szintén reflexiónak nevezett eljárás segítségével érhetők el. 18

27 1.5. FÜGGŐSÉGEK INJEKTÁLÁSA programozás során megszokott, az egyszerű probléma dekompozíción alapuló analízis és szintézis során előálló procedurális program végrehajtási lépéseihez képest. A fordított vezérlés tehát egy általános alapelv. A fogalom szemléltetésére tekintsünk egy konkrét példát! Tegyük fel, hogy feladatunk egy objektumorientált rendszer tervezése és megvalósítása. Tudjuk, hogy az objektumelvű rendszer egy dinamikus, irányított gráfnak tekinthető, amelynek csúcsai az objektumok, élei pedig az objektumok közötti kapcsolatokat, interakciókat szemléltetik [98]. A probléma megoldása objetumok interakciójának sorozataként áll elő. Amennyiben a gráfban két objektum között vezet (irányított) él, a két objektum között függőség áll fenn. Ez azt jelenti, hogy az aktív objektum hivatkozik a passzív objektumra vagy műveletet hajt rajta végre. A kérdés a passzív objektum létrehozásának a felelőssége: igaz-e, hogy a passzív objektumot az aktív objektumnak kell előállítania? A válasz - feltéve, hogy a passzív objektum kizárólag a fenti gondolatmenetben szereplő aktív objektummal kerül kölcsönhatásba - igenlő. Ezt a nézetet erősíti a felelősségek elosztásának általános ajánlásrendszere is [64], amely szerint az aktív objektumé a passzív példányosításának a felelőssége, ha rendelkezik minden adattal, amely alapján ezt megteheti, vagy szorosan csatolt a passzív objektummal. Sajnos, a példányosításhoz Az aktív objektumnak tudnia kell, hogy a passzív objektum milyen módon példányosítható. A passzív objektum példányosítási módjának változása hatást gyakorol az aktív objektumra. Az aktív objektum kódját beszennyezi az összes külső függőségének példányosításához kapcsolódó logika. Martin Fowler [35] munkájában ezen problémakörről, a fordított vezérlésről és a függőségek injektálásáról értekezik definíció (Függőségek injektálása). A függőségek injektálása egy, az objektumorientált szoftverkészítésben széles körben alkalmazott programtervezési minta. A minta alapján minden olyan objektumnak, amely a rendszer működése során bármikor,,aktív, és működését külső függőségek segítségével valósítja meg, nem kell tudnia a külső függőségek megvalósításáról, létrehozási módjáról. Helyette elegendő felsorolnia a külső függőségeit, azt, hogy azoktól milyen szerződés betartását várja el. Ezek a függőségek aztán - a tényleges végrehajtás előtt - beállíthatók, injektálhatók. 19

28 A DOLGOZAT ESZKÖZRENDSZERÉNEK RÖVID ÁTTEKINTÉSE 1 // Függöségek injektálása nélkül 2 public class PrettyPersonPrinter 3 { 4 public void PrintTallPeople () 5 { 6 var personfilterer = new PersonFiltererService (); 7 8 foreach ( Person p in personfilterer. GetTallPeople ()) 9 { 10 Console. WriteLine ( 11 String. Format (" Name : {0}, Height : {1} ", 12 p.name, p. Height )); 13 } 14 } 15 } // Függöségek injektálva a konstruktorban 18 public class PrettyPersonPrinter 19 { 20 private readonly IPersonFiltererService _personfilterer ; public PrettyPersonPrinter ( IPersonFiltererService personfilterer ) 23 { 24 _personfilterer = personfilterer ; 25 } public void PrintTallPeople () 28 { 29 foreach ( Person p in _personfilterer. GetTallPeople ()) 30 { 31 Console. WriteLine ( 32 String. Format (" Name : {0}, Height : {1} ", 33 p.name, p. Height )); 34 } 35 } 36 } 1.1. kódrészlet: Függőségek injektálása A függőségek injektálása a fordított vezérlés kevésbé általános előfordulási formája. A szokásos végrehajtási sorrend - 1. aktív objektum megkapja a vezérlést, 2. példányosítja a függőséget, 3. a függőség segítségével megvalósítja a működést - megváltozik: a függőségek példányosítása már az előtt megtörténik, hogy az aktív objektum megkapná a vezérlést. A fogalom szemléltetésére tekintsük a 1.1. példát! A magas emberek listáját nyomtatjuk ki a PrettyPersonPrinter osztály PrintTallPeople metódusa segítségével. 20

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23.

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23. Szoftverprototípus készítése Dr. Mileff Péter A prototípus fogalma: a szoftverrendszer kezdeti verziója Mi a célja? Arra használják, hogy bemutassák a koncepciókat, kipróbálják a tervezési opciókat, jobban

Részletesebben

IFJÚSÁG-NEVELÉS. Nevelés, gondolkodás, matematika

IFJÚSÁG-NEVELÉS. Nevelés, gondolkodás, matematika IFJÚSÁG-NEVELÉS Nevelés, gondolkodás, matematika Érdeklődéssel olvastam a Korunk 1970. novemberi számában Édouard Labin cikkét: Miért érthetetlen a matematika? Egyetértek a cikk megállapításaival, a vázolt

Részletesebben

Mobil készülékek programozása

Mobil készülékek programozása Mobil készülékek Egyre több ember zsebében és táskájában a legkülönfélébb mobileszközök megtalálhatóak Mobiltelefonok, PDA-k, PalmTopok és intelligens multimédiás eszközök (mit pl. ipod-ok) A készülékek

Részletesebben

Rendszertervezés 2. IR elemzés Dr. Szepesné Stiftinger, Mária

Rendszertervezés 2. IR elemzés Dr. Szepesné Stiftinger, Mária Rendszertervezés 2. IR elemzés Dr. Szepesné Stiftinger, Mária Rendszertervezés 2. : IR elemzés Dr. Szepesné Stiftinger, Mária Lektor : Rajki, Péter Ez a modul a TÁMOP - 4.1.2-08/1/A-2009-0027 Tananyagfejlesztéssel

Részletesebben

Nemzeti Alaptanterv Informatika műveltségterület Munkaanyag. 2011. március

Nemzeti Alaptanterv Informatika műveltségterület Munkaanyag. 2011. március Nemzeti Alaptanterv Informatika műveltségterület Munkaanyag 2011. március 1 Informatika Alapelvek, célok Az információ megszerzése, megértése, feldolgozása és felhasználása, vagyis az információs műveltség

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

7. Verifikáci. ció. Ennek része a hagyományos értelemben vett szoftvertesztelés is. A szoftver verifikálásának,

7. Verifikáci. ció. Ennek része a hagyományos értelemben vett szoftvertesztelés is. A szoftver verifikálásának, 7. Verifikáci ció, validáci ció A verifikáció és a validáció (V&V) azon ellenőrző és elemző folyamatok összessége, amelyek célja annak vizsgálata, hogy a szoftver megfelel a specifikációnak. Ennek része

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67 SZOFTVERTECHNOLÓGIA Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - RENDSZERTERVEZÉS 1 1 of 67 TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK IV. RENDSZERARCHITEKTÚRÁK

Részletesebben

Honlapkoncepció. Miskolc város hivatalos honlapjához

Honlapkoncepció. Miskolc város hivatalos honlapjához Honlapkoncepció Miskolc város hivatalos honlapjához Ennek a dokumentumnak a célja, hogy rögzítse azokat az alapelveket, amelyek egyrészt irányt szabnak, másrészt kereteket adnak az új városi honlap részletes

Részletesebben

3.1. Alapelvek. Miskolci Egyetem, Gyártástudományi Intézet, Prof. Dr. Dudás Illés

3.1. Alapelvek. Miskolci Egyetem, Gyártástudományi Intézet, Prof. Dr. Dudás Illés 3. A GYÁRTERVEZÉS ALAPJAI A gyártervezési folyamat bemutatását fontosnak tartottuk, mert a gyártórendszer-tervezés (amely folyamattervezés) része a gyártervezési feladatkörnek (objektumorientált tervezés),

Részletesebben

SZÉCHENYI ISTVÁN EGYETEM

SZÉCHENYI ISTVÁN EGYETEM SZÉCHENYI ISTVÁN EGYETEM JEDLIK ÁNYOS GÉPÉSZ-, INFORMATIKAI ÉS VILLAMOSMÉRNÖKI INTÉZET INFORMATIKA TANSZÉK A féléves programozási feladatok készítésének általános szabályai INFORMATIKA TANSZÉK 2011 Tartalomjegyzék

Részletesebben

AJÁNLÁSA. a központi közigazgatási szervek szoftverfejlesztéseihez kapcsolódó minőségbiztosításra és minőségirányításra vonatkozóan

AJÁNLÁSA. a központi közigazgatási szervek szoftverfejlesztéseihez kapcsolódó minőségbiztosításra és minőségirányításra vonatkozóan KORMÁNYZATI INFORMATIKAI EGYEZTETŐ TÁRCAKÖZI BIZOTTSÁG 24. SZÁMÚ AJÁNLÁSA a központi közigazgatási szervek szoftverfejlesztéseihez kapcsolódó minőségbiztosításra és minőségirányításra vonatkozóan 2005.

Részletesebben

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

A Szekszárdi I. Béla Gimnázium Helyi Tanterve A Szekszárdi I. Béla Gimnázium Helyi Tanterve Négy évfolyamos gimnázium Informatika Készítette: a gimnázium reál munkaközössége 2015. Tartalomjegyzék Alapvetés...3 Egyéb kötelező direktívák:...6 Informatika

Részletesebben

DSI működésre. tervezve. Hogyan fog kinézni a jövő informatikai infrastruktúrája? Egész szoftverrendszerek egy

DSI működésre. tervezve. Hogyan fog kinézni a jövő informatikai infrastruktúrája? Egész szoftverrendszerek egy DSI működésre tervezve A Microsoft Dynamic Systems Initiative (DSI, dinamikus rendszerek kezdeményezése) névre hallgató koncepciójának mottója: Design for Operations. Célja olyan dinamikus, rugalmas rendszerek

Részletesebben

Elektronikus közhiteles nyilvántartások Megvalósítási tanulmány

Elektronikus közhiteles nyilvántartások Megvalósítási tanulmány eegészség Program 27. Projekt Elektronikus közhiteles nyilvántartások Megvalósítási tanulmány Készítette: Szentgáli Ádám (Stubenvoll Bt.) 1.1 Budapest, 2004 szeptember 30 Tartalom I. Az EKNY adatbank,

Részletesebben

Információ-architektúra

Információ-architektúra Információ-architektúra IEEE 1471: Ipari szabvány szerint a szoftver architektúra kulcs fontosságú fogalmai Rendszer 1 Architektúra 1..n Érintett fél 1..n 1 Architektúra leírás 1..n 1..n Probléma 1..n

Részletesebben

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS TERMÉKTERVEZÉS A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA Szoftverfejlesztés: magában foglalja mindazon elveket, módszereket és eszközöket, amelyek célja a programok megbízható és hatékony elkészítésének támogatása.

Részletesebben

Vállalati integrált kockázatkezelés (II. rész)

Vállalati integrált kockázatkezelés (II. rész) Dr. HORVÁTH ZSOLT, ügyvezetõ igazgató, INFOBIZ Kft. SZLÁVIK PÉTER, managing partner, Boda & Partners Vállalati integrált kockázatkezelés (II. rész) 4. Kockázatok kezelése 4.1. Kockázatok kezelésének általános

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. Bánsághi Anna 1 of 54

Bánsághi Anna anna.bansaghi@mamikon.net. Bánsághi Anna 1 of 54 SZOFTVERTECHNOLÓGIA Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - KÖVETELMÉNY MENEDZSMENT Bánsághi Anna 1 of 54 TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK

Részletesebben

INFORMATIKA. 6 évfolyamos osztály

INFORMATIKA. 6 évfolyamos osztály INFORMATIKA Az informatika tantárgy ismeretkörei, fejlesztési területei hozzájárulnak ahhoz, hogy a tanuló az információs társadalom aktív tagjává válhasson. Az informatikai eszközök használata olyan eszköztudást

Részletesebben

A SZOFTVERTECHNOLÓGIA ALAPJAI

A SZOFTVERTECHNOLÓGIA ALAPJAI A SZOFTVERTECHNOLÓGIA ALAPJAI Objektumorientált tervezés 8.előadás PPKE-ITK Tartalom 8.1 Objektumok és objektumosztályok 8.2 Objektumorientált tervezési folyamat 8.2.1 Rendszerkörnyezet, használati esetek

Részletesebben

Egyes kockázatelemzési (veszélyazonosítási) módszerek alkalmazásának értékelési, illetőleg ellenőrzési szempontjai

Egyes kockázatelemzési (veszélyazonosítási) módszerek alkalmazásának értékelési, illetőleg ellenőrzési szempontjai Egyes kockázatelemzési (veszélyazonosítási) módszerek alkalmazásának értékelési, illetőleg ellenőrzési szempontjai Cseh Gábor Magyar Műszaki Biztonsági Hivatal Bevezetés A veszélyes helyzetek azonosítására,

Részletesebben

A római számok tanításának módszertani problémái

A római számok tanításának módszertani problémái A római számok tanításának módszertani problémái Czédliné Bárkányi Éva Szegedi Tudományegyetem Juhász Gyula Pedagógusképző Kar Tanító- és Óvóképző Intézet, Szeged czedli@jgypk.szte.hu A matematika-tantárgypedagógia

Részletesebben

A térinformatika lehetőségei a veszélyes anyagok okozta súlyos ipari balesetek megelőzésében

A térinformatika lehetőségei a veszélyes anyagok okozta súlyos ipari balesetek megelőzésében A térinformatika lehetőségei a veszélyes anyagok okozta súlyos ipari balesetek megelőzésében Kovács Zoltán főiskolai docens Szent István Egyetem Ybl Miklós Építéstudományi Kar Bevezetés Korunk egyik legdinamikusabban

Részletesebben

Zárójelentés. Az autonóm mobil eszközök felhasználási területei, irányítási módszerek

Zárójelentés. Az autonóm mobil eszközök felhasználási területei, irányítási módszerek Zárójelentés Az autonóm mobil eszközök felhasználási területei, irányítási módszerek Az autonóm mobil robotok elterjedése növekedést mutat napjainkban az egész hétköznapi felhasználástól kezdve az ember

Részletesebben

MINŐSÉGIRÁNYÍTÁS (PQM) ÉS MONITORING ISMERETEK

MINŐSÉGIRÁNYÍTÁS (PQM) ÉS MONITORING ISMERETEK 2010. SWOT MINŐSÉGIRÁNYÍTÁS (PQM) ÉS MONITORING ISMERETEK Oktatási segédanyag Az ISO (Nemzetközi Szabványügyi Szervezet) értelmezésében a minőség a termék vagy a szolgáltatás olyan tulajdonságainak és

Részletesebben

Szakmai zárójelentés

Szakmai zárójelentés Szakmai zárójelentés A csoporttechnológia (Group Technology = GT) elvi és módszertani alapjaihoz, valamint a kapcsolódó módszerek informatikai alkalmazásaihoz kötődő kutatómunkával a Miskolci Egyetem Alkalmazott

Részletesebben

Tartalom. CCNA Discovery 4 9. fejezet Ajánlatkészítés

Tartalom. CCNA Discovery 4 9. fejezet Ajánlatkészítés 9. Ajánlatkészítés Tartalom 9.1 Az ajánlathoz szükséges információk összegyűjtése 9.2 A kivitelezési terv elkészítése 9.3 A kivitelezés tervezése 9.4 Az ajánlat elkészítése és bemutatása Az ajánlathoz

Részletesebben

Számviteli tanácsadás. IFRS felmérés - 2011 Fókuszban a pénzügyi beszámolók

Számviteli tanácsadás. IFRS felmérés - 2011 Fókuszban a pénzügyi beszámolók Számviteli tanácsadás IFRS felmérés - 11 Fókuszban a pénzügyi beszámolók Tartalomjegyzék 1. Vezetői összefoglaló. A felmérés célja. A pénzügyi kimutatások áttekintése 7. A pénzügyi teljesítményre vonatkozó

Részletesebben

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt Témavezető: Bringye Zsolt Diplomamunka/szakdolgozat címe: X64 szerver virtualizáció technológiai kérdéseinek áttekintése, kereskedelmi termékekben történő megvalósításuk elemzése (funkcionalitás, teljesítmény,

Részletesebben

Ismeretanyag Záróvizsgára való felkészüléshez

Ismeretanyag Záróvizsgára való felkészüléshez Ismeretanyag Záróvizsgára való felkészüléshez 1. Információmenedzsment az információmenedzsment értelmezése, feladatok különböző megközelítésekben informatikai szerepek, informatikai szervezet, kapcsolat

Részletesebben

9904 Jelentés a társadalombiztosítás informatikai rendszereinek ellenőrzéséről

9904 Jelentés a társadalombiztosítás informatikai rendszereinek ellenőrzéséről 9904 Jelentés a társadalombiztosítás informatikai rendszereinek ellenőrzéséről TARTALOMJEGYZÉK I. A MEGÁLLAPÍTÁSOK ÖSSZEGZÉSE II. FŐBB MEGÁLLAPÍTÁSOK ÉS KÖVETKEZTETÉSEK 1. Az informatika alkalmazás fejlődése

Részletesebben

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar. 2015. május 27.

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar. 2015. május 27. Név, felvételi azonosító, Neptun-kód: MI pont(45) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnökinformatikus szak BME Villamosmérnöki

Részletesebben

Informatika. Magyar-angol két tanítási nyelvű osztály tanterve. 9. évfolyam

Informatika. Magyar-angol két tanítási nyelvű osztály tanterve. 9. évfolyam Informatika Magyar-angol két tanítási nyelvű osztály tanterve Óratervi táblázat: Évfolyam 9. 10. 11. 12. 13. Heti óraszám 2 1 2 - - Éves óraszám 74 37 74 - - Belépő tevékenységformák 9. évfolyam Hardver

Részletesebben

Komponens modellek. 3. Előadás (első fele)

Komponens modellek. 3. Előadás (első fele) Komponens modellek 3. Előadás (első fele) A komponens modellek feladata Támogassa a szoftverrendszerek felépítését különböző funkcionális, logikai komponensekből, amelyek a számítógépes hálózatban különböző

Részletesebben

Informatikus informatikus 54 481 04 0010 54 07 Térinformatikus Informatikus T 1/9

Informatikus informatikus 54 481 04 0010 54 07 Térinformatikus Informatikus T 1/9 A 10/2007 (II. 27.) SzMM rendelettel módosított 1/2006 (II. 17.) OM rendelet Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről alapján. Szakképesítés,

Részletesebben

Az alábbi áttekintés Délkelet-Európa (a volt Jugoszlávia országai

Az alábbi áttekintés Délkelet-Európa (a volt Jugoszlávia országai OKTATÁSIRÁNYÍTÁS ÉS OKTATÁSPOLITIKA A BALKÁNON Az alábbi áttekintés Délkelet-Európa (a volt Jugoszlávia országai Szlovénia kivételével, Bulgária, Románia és Albánia) oktatási rendszerei előtt álló kihívásokat

Részletesebben

VÁLLALATI INFORMÁCIÓS RENDSZEREK, INTERNETES TECHNIKÁK

VÁLLALATI INFORMÁCIÓS RENDSZEREK, INTERNETES TECHNIKÁK VÁLLALATI INFORMÁCIÓS RENDSZEREK, INTERNETES TECHNIKÁK A digitális gyár mint a termékéletciklusmenedzsment megvalósításának központi eleme A termékéletciklus-menedzsment lényege az üzleti folyamatok olyan

Részletesebben

SZAKDOLGOZAT. Kiss Albert

SZAKDOLGOZAT. Kiss Albert SZAKDOLGOZAT Kiss Albert Debrecen 2009 Debreceni Egyetem Informatikai Kar A VIZUÁLIS PROGRAMOZÁS TANÍTÁSA A DEBRECENI MECHWART ANDRÁS GÉPIPARI ÉS INFORMATIKAI SZAKKÖZÉPISKOLÁBAN Témavezető: Nyakóné dr.

Részletesebben

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA 2.Szoftverfejlesztés 2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA Szoftverfejlesztés: magában foglalja mindazon elveket, módszereket és eszközöket, amelyek célja a programok megbízható és hatékony elkészítésének

Részletesebben

Rendszerterv. 1. Funkcionális terv. 1.1. Feladat leírása:

Rendszerterv. 1. Funkcionális terv. 1.1. Feladat leírása: Rendszerterv 1. Funkcionális terv 1.1. Feladat leírása: A feladat egy GPS-képes eszközökön futó alkalmazás, illetve ennek szerver oldali párjának létrehozása. A program a szerveren tárolt adatbázis alapján

Részletesebben

A második, azaz az utolsó előtti félév az esslingeni masteren

A második, azaz az utolsó előtti félév az esslingeni masteren A második, azaz az utolsó előtti félév az esslingeni masteren A második félév végig elméleti képzés ugyanúgy, mint az első. Ezután már csak egyetlen következő félévet kell teljesítened aminek során a szakdolgozatodon

Részletesebben

SZENT ISTVÁN EGYETEM GÖDÖLLŐ. DOKTORI (PhD) ÉRTEKEZÉS - TÉZISFÜZET

SZENT ISTVÁN EGYETEM GÖDÖLLŐ. DOKTORI (PhD) ÉRTEKEZÉS - TÉZISFÜZET SZENT ISTVÁN EGYETEM GÖDÖLLŐ GAZDÁLKODÁS ÉS SZERVEZÉSTUDOMÁNYOK DOKTORI ISKOLA DOKTORI (PhD) ÉRTEKEZÉS - TÉZISFÜZET A MINŐSÉG- ÉS BIZTONSÁGMENEDZSMENT SZEREPÉNEK ÉS HATÉKONYSÁGÁNAK ÖKONÓMIAI VIZSGÁLATA

Részletesebben

CÉLZOTT TERMÉKEK ÉS SZOLGÁLTATÁSOK PI- ACI VIZSGÁLATA

CÉLZOTT TERMÉKEK ÉS SZOLGÁLTATÁSOK PI- ACI VIZSGÁLATA Prof. Dr. Piskóti István - Dr. Molnár László - Gulyásné Dr. Kerekes Rita - Dr. Nagy Szabolcs - Dr. Dankó László - Dr. Karajz Sándor - Dr. Bartha Zoltán - Kis-Orloczki Mónika (5. munkacsoport) CÉLZOTT TERMÉKEK

Részletesebben

Hogyan kerül(jön) az e-könyv a könyvtárba?*

Hogyan kerül(jön) az e-könyv a könyvtárba?* KONFERENCIÁK Hogyan kerül(jön) az e-könyv a könyvtárba?* Napjaink egyik legnagyobb könyvtárszakmai kihívását az e-könyvek okozzák, egész pontosan az a kérdés, hogyan lehetne szolgáltatni e-könyvet a könyvtárban

Részletesebben

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Dr. Székely Csaba. Agrár-gazdaságtan 8. AGAT8 modul. Vállalati tervezés és fejlesztés

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Dr. Székely Csaba. Agrár-gazdaságtan 8. AGAT8 modul. Vállalati tervezés és fejlesztés Nyugat-magyarországi Egyetem Geoinformatikai Kara Dr. Székely Csaba Agrár-gazdaságtan 8. AGAT8 modul Vállalati tervezés és fejlesztés SZÉKESFEHÉRVÁR 2010 Jelen szellemi terméket a szerzői jogról szóló

Részletesebben

6. AZ EREDMÉNYEK ÉRTELMEZÉSE

6. AZ EREDMÉNYEK ÉRTELMEZÉSE 6. AZ EREDMÉNYEK ÉRTELMEZÉSE A kurzus anyagát felhasználva összeállíthatunk egy kitűnő feladatlapot, de még nem dőlhetünk nyugodtan hátra. Diákjaink teljesítményét még osztályzatokra kell átváltanunk,

Részletesebben

Cégismerteto. Ez így kicsit tömören hangzik, nézzük meg részletesebben, mivel is foglalkozunk!

Cégismerteto. Ez így kicsit tömören hangzik, nézzük meg részletesebben, mivel is foglalkozunk! Cégismerteto Modern világunkban nem létezhetünk információ nélkül: az informatika végérvényesen alapinfrastruktúrává vált, mindig, mindenhol jelen van, mindannyiunk életét meghatározza. A mai üzleti világban

Részletesebben

AZ OMBUDSMAN ALAPJOG-ÉRTELMEZÉSE ÉS NORMAKONTROLLJA *

AZ OMBUDSMAN ALAPJOG-ÉRTELMEZÉSE ÉS NORMAKONTROLLJA * Sólyom László AZ OMBUDSMAN ALAPJOG-ÉRTELMEZÉSE ÉS NORMAKONTROLLJA * 1. Ha már ombudsman, akkor rendes közjogi ombudsman legyen mondta Tölgyessy Péter az Ellenzéki Kerekasztal 1989. szeptember 18-i drámai

Részletesebben

PHP5 Új generáció (2. rész)

PHP5 Új generáció (2. rész) PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen

Részletesebben

Követelmények a megbízható működés terén. Információbiztonsági osztályozás a megbízható működés szempontjából. T - T üz T

Követelmények a megbízható működés terén. Információbiztonsági osztályozás a megbízható működés szempontjából. T - T üz T Követelmények a megbízható működés terén Információbiztonsági osztályozás a megbízható működés szempontjából Megbízható működés Az informatikai rendszerek megbízható működését úgy értelmezzük, hogy az

Részletesebben

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére Az Informatika szigorlat alapvetően az IR-fejlesztés, valamint az OO-fejlesztés c. tantárgyi blokkok, valamint az

Részletesebben

Állami Számvevőszék ELEMZÉS a 2014. évi integritás felmérés óvodák, bölcsődék intézménycsoportban mért eredményeiről 2015. május

Állami Számvevőszék ELEMZÉS a 2014. évi integritás felmérés óvodák, bölcsődék intézménycsoportban mért eredményeiről 2015. május Állami Számvevőszék ELEMZÉS a 2014. évi integritás felmérés óvodák, bölcsődék intézménycsoportban mért eredményeiről 2015. május Az elemzés készítését felügyelte: Dr. Pulay Gyula Zoltán felügyeleti vezető

Részletesebben

Bevezetés, platformok. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu

Bevezetés, platformok. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu Bevezetés, platformok Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu Mobil készülékek és tulajdonságaik A mobil eszközök programozása, kihívások, nehézségek Mobilprogramozási platformok Java Micro Edition.NET

Részletesebben

1 Rendszer alapok. 1.1 Alapfogalmak

1 Rendszer alapok. 1.1 Alapfogalmak ÉRTÉKTEREMTŐ FOLYAM ATOK MENEDZSMENTJE II. RENDSZEREK ÉS FOLYAMATOK TARTALOMJEGYZÉK 1 Rendszer alapok 1.1 Alapfogalmak 1.2 A rendszerek csoportosítása 1.3 Rendszerek működése 1.4 Rendszerek leírása, modellezése,

Részletesebben

A. ZDRAVOMISZLOV: A SZOCIOLÓGIAI KUTATÁSOK MÓDSZERTANA

A. ZDRAVOMISZLOV: A SZOCIOLÓGIAI KUTATÁSOK MÓDSZERTANA Borza Gyöngyi A. ZDRAVOMISZLOV: A SZOCIOLÓGIAI KUTATÁSOK MÓDSZERTANA Megjelent a Kossuth Könyvkiadó gondozásában 1973-ban. A mű eredeti címe: Metodologija i procedura szociologicseszkih isszledovanyij

Részletesebben

Adat és információvédelemi kérdések a kórházi gyakorlatban II.

Adat és információvédelemi kérdések a kórházi gyakorlatban II. Adat és információvédelemi kérdések a kórházi gyakorlatban II. Nagy István, Gottsegen György Országos Kardiológiai Intézet A Gartner Group elemzôi által használt és általánosan elfogadott besorolás szerint

Részletesebben

A MEGBÍZHATÓSÁGI ELEMZŐ MÓDSZEREK

A MEGBÍZHATÓSÁGI ELEMZŐ MÓDSZEREK 1. Elemző módszerek A MEGBÍZHATÓSÁGI ELEMZŐ MÓDSZEREK Ebben a fejezetben röviden összefoglaljuk azokat a módszereket, amelyekkel a technikai, technológiai és üzemeltetési rendszerek megbízhatósági elemzései

Részletesebben

Objektum Orientált Szoftverfejlesztés (jegyzet)

Objektum Orientált Szoftverfejlesztés (jegyzet) Objektum Orientált Szoftverfejlesztés (jegyzet) 1. Kialakulás Kísérletek a szoftverkrízisből való kilábalásra: 1.1 Strukturált programozás Ötlet (E. W. Dijkstra): 1. Elkészítendő programot elgondolhatjuk

Részletesebben

TÁVOKTATÁSI TANANYAGOK FEJLESZTÉSÉNEK MÓDSZERTANI KÉRDÉSEI

TÁVOKTATÁSI TANANYAGOK FEJLESZTÉSÉNEK MÓDSZERTANI KÉRDÉSEI TÁVOKTATÁSI TANANYAGOK FEJLESZTÉSÉNEK MÓDSZERTANI KÉRDÉSEI A távoktatási forma bevezetése és eredményességének vizsgálata az igazgatásszervezők informatikai képzésében DOKTORI ÉRTEKEZÉS TÉZISEI dr. Horváth

Részletesebben

Közbeszerzési Értesítő száma: 2015/108

Közbeszerzési Értesítő száma: 2015/108 Korrigendum - A Nemzeti Filmtörténeti Élménypark - Versenyképes Turisztikai Termék- és Attrakció Fejlesztés című ÉMOP-2.1.1/A-14 projekt keretében Megjelenítő- és egyéb eszközök beszerzése és installációja

Részletesebben

(11) Lajstromszám: E 004 039 (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

(11) Lajstromszám: E 004 039 (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA !HU0000039T2! (19) HU (11) Lajstromszám: E 004 039 (13) T2 MAGYAR KÖZTÁRSASÁG Magyar Szabadalmi Hivatal (21) Magyar ügyszám: E 03 74228 (22) A bejelentés napja: 03. 02. 18. (96) Az európai bejelentés bejelentési

Részletesebben

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely sipos@sztaki.

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely sipos@sztaki. P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához Rendszerterv Sipos Gergely sipos@sztaki.hu Lovas Róbert rlovas@sztaki.hu MTA SZTAKI, 2003 Tartalomjegyzék 1. Bevezetés...

Részletesebben

Adatbázisok I 2012.05.11. Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Adatbázisok I 2012.05.11. Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés Adatbázisok I Szemantikai adatmodellek Szendrői Etelka PTE-PMMK Rendszer és Szoftvertechnológiai Tanszék szendroi@pmmk.pte.hu Adatmodellek komponensei Adatmodell: matematikai formalizmus, mely a valóság

Részletesebben

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László Általános statisztika II Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László Általános statisztika II Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László Publication

Részletesebben

KERTVÁROSI ÁLTALÁNOS ISKOLA OM: 033405 PEDAGÓGIAI PROGRAMJA

KERTVÁROSI ÁLTALÁNOS ISKOLA OM: 033405 PEDAGÓGIAI PROGRAMJA KERTVÁROSI ÁLTALÁNOS ISKOLA OM: 033405 PEDAGÓGIAI PROGRAMJA Nyíregyháza 1 Bevezető Mottó: Én azt hiszem, annál nincs nagyobb öröm, mint valakit megtanítani valamire, amit nem tud. (Móricz Zsigmond) Az

Részletesebben

A NATO katonai képességfejlesztése a nemzetközi béketámogatási tevékenység érdekében

A NATO katonai képességfejlesztése a nemzetközi béketámogatási tevékenység érdekében A NATO katonai képességfejlesztése a nemzetközi béketámogatási tevékenység érdekében Két célt tűztem ki az előadásban. Először, csatlakozva Deák Péter előadásához, szeretném hangsúlyozni, hogy a katonai

Részletesebben

1. Funkcionális terv. 1.1. Feladat leírása: 1.2. Rendszer célja, motivációja:

1. Funkcionális terv. 1.1. Feladat leírása: 1.2. Rendszer célja, motivációja: Rendszerterv 1. Funkcionális terv 1 1.1. Feladat leírása: 1 1.2. Rendszer célja, motivációja: 1 1.3. Szereplők és igényeik: 2 1.3.1. Valódi felhasználók: 2 1.3.2. Hirdetők : 3 1.3.3. Szerver oldal: 3 1.4.

Részletesebben

A bemeneti mérés eredménye az 1. évfolyamon

A bemeneti mérés eredménye az 1. évfolyamon ÚJBUDAI PEDAGÓGIAI INTÉZET 1117 Budapest, Erőmű u. 4. sz. Tel/fax: 381-0664 e-mail: pszk@pszk.hu A bemeneti mérés eredménye az 1. évfolyamon Tartalom: Általános és speciális részkészségek mérésének összefoglaló

Részletesebben

ellenõrzés rendszere és módszerei Szerkesztette Kovács Árpád

ellenõrzés rendszere és módszerei Szerkesztette Kovács Árpád Az ellenõrzés rendszere és módszerei Szerkesztette Kovács Árpád Tartalomjegyzék A szerkesztõ ajánlása............................................... 9 I. rész Az ellenõrzésrõl általában........................................

Részletesebben

Füstmentesítő berendezések állandó üzemképességének fenntartása

Füstmentesítő berendezések állandó üzemképességének fenntartása AZ ÜZEMFENNTARTÁS MÛKÖDÉSI FELTÉTELEI 2.09 Füstmentesítő berendezések állandó üzemképességének fenntartása Tárgyszavak: tűzvédelem; füstmentesítés; üzemképesség; karbantartás. Általános karbantartási követelmények

Részletesebben

ALAPKÖVEK A JÓ STRATÉGIÁHOZ

ALAPKÖVEK A JÓ STRATÉGIÁHOZ Varsányi Judit: ALAPKÖVEK A JÓ STRATÉGIÁHOZ Megjelent a Marketing folyóirat 1990/2. számában A cikk szerzője a Marx Károly Közgazdaságtudományi Egyetem adjunktusa. Technológusként és fejlesztő mérnökként

Részletesebben

Vállalkozás alapítás és vállalkozóvá válás kutatás zárójelentés

Vállalkozás alapítás és vállalkozóvá válás kutatás zárójelentés TÁMOP-4.2.1-08/1-2008-0002 projekt Vállalkozás alapítás és vállalkozóvá válás kutatás zárójelentés Készítette: Dr. Imreh Szabolcs Dr. Lukovics Miklós A kutatásban részt vett: Dr. Kovács Péter, Prónay Szabolcs,

Részletesebben

SZEMLÉLETES RÉSZINFORMÁCIÓK INTEGRÁCIÓS PROBLÉMÁINAK VIZSGÁLATA A VIRTUÁLIS VALÓSÁGOT TEREMTŐ SZIMULÁTOROK ALAPJÁN

SZEMLÉLETES RÉSZINFORMÁCIÓK INTEGRÁCIÓS PROBLÉMÁINAK VIZSGÁLATA A VIRTUÁLIS VALÓSÁGOT TEREMTŐ SZIMULÁTOROK ALAPJÁN Cser Ádám ZMNE KMDI adam.cser@ge.com SZEMLÉLETES RÉSZINFORMÁCIÓK INTEGRÁCIÓS PROBLÉMÁINAK VIZSGÁLATA A VIRTUÁLIS VALÓSÁGOT TEREMTŐ SZIMULÁTOROK ALAPJÁN Absztrakt Az ember környezetét érzékszervein keresztül

Részletesebben

Bocz János Jéghegyek. Tévhitek, avagy a magyar nonprofit szektor mélyrétegei

Bocz János Jéghegyek. Tévhitek, avagy a magyar nonprofit szektor mélyrétegei Bocz János Jéghegyek. Tévhitek, avagy a magyar nonprofit szektor mélyrétegei Az újkori magyar civil, nonprofit szektor az idei évben ünnepli 20 éves születésnapját. Ilyen alkalmakkor a témával foglalkozó

Részletesebben

felsorolt A vezetők és a beosztott pedagógusok teljesítményértékelési rendszerének

felsorolt A vezetők és a beosztott pedagógusok teljesítményértékelési rendszerének INTÉZMÉNYI MINŐSÉGIRÁNYÍTÁSI PROGRAM. rész (IMIP) Módosítása és kiegészítése készült: 9. március Készítette: Hartdégenné Rieder Éva igazgató Az Intézményi Minőségirányítási Program módosításának törvényi

Részletesebben

ÁLTALÁNOS JELLEGŰ ELŐÍRÁSOK. A hitelesítési folyamat résztvevőit, az alapelemeket és a főbb kapcsolódási pontokat az 1.

ÁLTALÁNOS JELLEGŰ ELŐÍRÁSOK. A hitelesítési folyamat résztvevőit, az alapelemeket és a főbb kapcsolódási pontokat az 1. A Miniszterelnöki Hivatalt vezető miniszter 2/2002. (IV. 26.) MeHVM irányelve a minősített elektronikus aláírással kapcsolatos szolgáltatásokra és ezek szolgáltatóira vonatkozó biztonsági követelményekről

Részletesebben

Az emberi tényező vizsgálata az információbiztonság, a személyés vagyonvédelem, valamint az épületkiürítés területein

Az emberi tényező vizsgálata az információbiztonság, a személyés vagyonvédelem, valamint az épületkiürítés területein NEMZETI KÖZSZOLGÁLATI EGYETEM HADTUDOMÁNYI ÉS HONVÉDTISZTKÉPZŐ KAR KATONAI MŰSZAKI DOKTORI ISKOLA szerzői ismertető Schüller Attila Az emberi tényező vizsgálata az információbiztonság, a személyés vagyonvédelem,

Részletesebben

NOD32 Antivirus 3.0. Felhasználói útmutató. Beépített összetevők: ESET NOD32 Antivirus ESET NOD32 Antispyware. we protect your digital worlds

NOD32 Antivirus 3.0. Felhasználói útmutató. Beépített összetevők: ESET NOD32 Antivirus ESET NOD32 Antispyware. we protect your digital worlds NOD32 Antivirus 3.0 Beépített összetevők: ESET NOD32 Antivirus ESET NOD32 Antispyware Felhasználói útmutató we protect your digital worlds tartalomjegyzék 1. ESET NOD32 Antivirus 3.0...4 1.1 Újdonságok...

Részletesebben

Doktori munka. Solymosi József: NUKLEÁRIS KÖRNYEZETELLENŐRZŐ MÉRŐRENDSZEREK. Alkotás leírása

Doktori munka. Solymosi József: NUKLEÁRIS KÖRNYEZETELLENŐRZŐ MÉRŐRENDSZEREK. Alkotás leírása Doktori munka Solymosi József: NUKLEÁRIS KÖRNYEZETELLENŐRZŐ MÉRŐRENDSZEREK Alkotás leírása Budapest, 1990. 2 KÖSZÖNETNYILVÁNÍTÁS A doktori munka célja az egyéni eredmény bemutatása. Feltétlenül hangsúlyoznom

Részletesebben

Book Template Title. Author Last Name, Author First Name

Book Template Title. Author Last Name, Author First Name Book Template Title Author Last Name, Author First Name Book Template Title Author Last Name, Author First Name I. rész - Szoftver technológia 1. fejezet - Esettanulmány Bevezetés Az alkalmazás fejlesztésére

Részletesebben

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv IBM Business Monitor 7. változat 5. alváltozat IBM Business Monitor telepítési kézikönyv ii Telepítés Tartalom 1. fejezet IBM Business Monitor telepítése.............. 1 2. fejezet IBM Business Monitor

Részletesebben

SZENT ISTVÁN EGYETEM

SZENT ISTVÁN EGYETEM SZENT ISTVÁN EGYETEM A magyar mezőgazdasági gépgyártók innovációs aktivitása Doktori (PhD) értekezés tézisei Bak Árpád Gödöllő 2013 A doktori iskola Megnevezése: Műszaki Tudományi Doktori Iskola Tudományága:

Részletesebben

INTEGRÁLT ÖNKORMÁNYZATI RENDSZER

INTEGRÁLT ÖNKORMÁNYZATI RENDSZER INTEGRÁLT ÖNKORMÁNYZATI RENDSZER Professzionál Zrt. 20 ÉVE ÚTON AZ INFORMATIKA VILÁGÁBAN A Professzionál Zrt-t 1989-ben alapították a Professzionál Kisszövetkezet jogutódjaként. Az elmúlt két évtizedben

Részletesebben

MINŐSÉGELLENŐRZÉSI ÖSSZEFOGLALÓ

MINŐSÉGELLENŐRZÉSI ÖSSZEFOGLALÓ MINŐSÉGELLENŐRZÉSI ÖSSZEFOGLALÓ i TARTALOMJEGYZÉK I. BEVEZETÉS... 1 1. Előszó... 1 2. Fontosabb jogszabályok... 1 3. Jelmagyarázat... 1 4. A közbeszerzési eljárás tárgya, az eljárásrend és a jogalap...

Részletesebben

FELÜLVIZSGÁLATI JEGYZŐKÖNYV (E-DS10F1_TANF-SW) MELLÉKLETE

FELÜLVIZSGÁLATI JEGYZŐKÖNYV (E-DS10F1_TANF-SW) MELLÉKLETE FELÜLVIZSGÁLATI JEGYZŐKÖNYV (E-DS10F1_TANF-SW) MELLÉKLETE Dokumentumazonosító E-DS10F1_TANF-SW.ME-01 Projektazonosító E-DS10F1 DSS Consulting Kft. SW 2. sz. fv. 2010 MATRIX tanúsítási igazgató Szádeczky

Részletesebben

tanúsítja, hogy a Kopint-Datorg Részvénytársaság által kifejlesztett és forgalmazott MultiSigno Standard aláíró alkalmazás komponens 1.

tanúsítja, hogy a Kopint-Datorg Részvénytársaság által kifejlesztett és forgalmazott MultiSigno Standard aláíró alkalmazás komponens 1. TANÚSÍTVÁNY A HUNGUARD Számítástechnikai-, informatikai kutató-fejlesztő és általános szolgáltató Kft. a 15/2001.(VIII. 27.) MeHVM rendelet alapján, mint a Magyar Köztársaság Informatikai és Hírközlési

Részletesebben

Mit kell és mit célszerű szabályozni a vállalkozáson belül?

Mit kell és mit célszerű szabályozni a vállalkozáson belül? Jó, ha tudod! Mit kell és mit célszerű szabályozni a vállalkozáson belül? A számviteli törvény előírásai szerint a számviteli politikában kell szabályozni azokat a gazdálkodóra jellemző szabályokat, előírásokat,

Részletesebben

.NET Microsoft.Net Framework

.NET Microsoft.Net Framework 1.oldal.NET Microsoft.Net Framework Előadás jegyzet Előadó: Pócza Krisztián ELTE,2008.NET Framework alapjai Hasznos tudnivalók A jegyzet Pócza Krisztián.NET Framework és Programozása I. című előadása alapján

Részletesebben

Fiáth Attila Nagy Balázs Tóth Péter Dóczi Szilvia Dinya Mariann

Fiáth Attila Nagy Balázs Tóth Péter Dóczi Szilvia Dinya Mariann Fiáth Attila Nagy Balázs Tóth Péter Dóczi Szilvia Dinya Mariann Egységes kockázatkezelési módszertan kialakítása a villamosenergia-ipari átviteli rendszerirányító társaságnál A felelős vállalatirányítás

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS ISKOLAI PROGRAMJA 9 12. évfolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. A szakmacsoportos

Részletesebben

MŰANYAGOK FELDOLGOZÁSA

MŰANYAGOK FELDOLGOZÁSA MŰANYAGOK FELDOLGOZÁSA Fröccsöntés irányzatok és újdonságok Az európai műanyag-feldolgozók, gép- és vezérlésgyártók képviselői együtt vitatták meg a fröccsöntés fejlesztési lehetőségeit és az előrelépés

Részletesebben

Előterjesztés a Képviselő-testület 2014. december 16. napján tartott ülésén 6. napirendi pont

Előterjesztés a Képviselő-testület 2014. december 16. napján tartott ülésén 6. napirendi pont Előterjesztés a Képviselő-testület 2014. december 16. napján tartott ülésén 6. napirendi pont Tárgy: Beszámoló a Közös Hivatal tevékenységéről Tisztelt Képviselő-testület! A Magyarország helyi önkormányzatairól

Részletesebben

3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén

3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén 3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén 3.1 A Black Box eljárás Kulcsszavak: Black Box, Kísérleti stratégia, Elosztás, Határérték, A döntéshozatali tábla tesztje

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

Mérés és értékelés a tanodában egy lehetséges megközelítés

Mérés és értékelés a tanodában egy lehetséges megközelítés Mérés és értékelés a tanodában egy lehetséges megközelítés Baráth Szabolcs Fejes József Balázs Kasik László Lencse Máté 2016 Javaslat tanodák számára a mérési és értékelési kultúrájuk megújításához Tartalom

Részletesebben

Antreter Ferenc. Termelési-logisztikai rendszerek tervezése és teljesítményének mérése

Antreter Ferenc. Termelési-logisztikai rendszerek tervezése és teljesítményének mérése Antreter Ferenc Termelési-logisztikai rendszerek tervezése és teljesítményének mérése Doktori értekezés Témavezetők: Dr. Várlaki Péter egyetemi tanár Széchenyi István Egyetem, Műszaki Tudományi Kar, Logisztikai

Részletesebben

1. Az informatikai eszközök használata

1. Az informatikai eszközök használata 5 6. évfolyam A tanulók az informatikai eszközök használata során megismerik a számítógépet, annak főbb egységeit, a perifériákat. Kezdetben tanári segítséggel, később önállóan használják a legfontosabb

Részletesebben

Működési kockázati önértékelések veszteségeloszlás-alapú modellezése

Működési kockázati önértékelések veszteségeloszlás-alapú modellezése 506 HITELINTÉZETI SZEMLE HAJNAL BÉLA KÁLLAI ZOLTÁN NAGY GÁBOR Működési kockázati önértékelések veszteségeloszlás-alapú modellezése Tanulmányunkban a működési kockázatok önértékelésen alapuló modellezését

Részletesebben

Tarantella Secure Global Desktop Enterprise Edition

Tarantella Secure Global Desktop Enterprise Edition Tarantella Secure Global Desktop Enterprise Edition A Secure Global Desktop termékcsalád Az iparilag bizonyított szoftver termékek és szolgáltatások közé tartozó Secure Global Desktop termékcsalád biztonságos,

Részletesebben