Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Bevezető.

Slides:



Advertisements
Hasonló előadás

Advertisements

A társadalmi tényezők hatása a tanulásra
Programozás III STRING-XML.
Flex: csak rugalmasan! Kiss-Tóth Marcell Magyarországi Web Konferencia március 18.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
IBM Software Group © 2006 IBM Corporation Hatékonyság és üzleti intelligencia Egységesített felület meglévő alkalmazásainkhoz Szabó János Technikai szakértő.
Erőállóképesség mérése Találjanak teszteket az irodalomban
MATEMATIKA Év eleji felmérés 3. évfolyam
Humánkineziológia szak
Adminisztratív kérdések
A webes tesztelés jövője
2 Forrás: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000.
Az új történelem érettségiről és eredményeiről augusztus Kaposi József.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Domain specifikus nyelvek Eclipse Modeling.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Eclipse architektúra.
Adatbányászati technikák (VISZM185)
Domain tesztelés bemutatása PHP tesztelés
Utófeszített vasbeton lemez statikai számítása Részletes számítás
Weben publikált térképek a földrajzi kutatásokban Ádám Eszter Geográfus MSc hallgató.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
A tételek eljuttatása az iskolákba
Bevezetés a Java programozásba
Vizuális modellezés Uml és osztálydiagram UML eszközök
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
Programozási technológia 1
Egyszerű webes alkalmazás fejlesztése
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
Objektum Vezérelt Szoftverek Analízise Ferenc Rudolf és Beszédes Árpád Szegedi Tudományegyetem FrontEndART.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
A közép- és emelt szintű vizsga tanári értékelése
szakmérnök hallgatók számára
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Logikai szita Izsó Tímea 9.B.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Eclipse alapú technológiák Plug-in fejlesztés teszteléssel Balogh.
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
Domain-specifikus nyelvek a fejlesztésben Ráth István
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
A gyakorlatok munkakörnyezete
Programozás III UNIT TEST. És tényleg: Honnan lehet tudni, hogy működik-e vagy sem?
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
Java web programozás 11..
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Gazda Gergő Flexo szeminárium - Budapest, október Gazda Gergő Flexo szeminárium - Budapest, október Hatékony rendelés-feldolgozás, adminisztráció.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1 Az igazság ideát van? Montskó Éva, mtv. 2 Célcsoport Az alábbi célcsoportokra vonatkozóan mutatjuk be az adatokat: 4-12 évesek,1.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Gyurkó György. Az OO programozás és tervezés története 1960-as évek: SIMULA (véletlen folyamatokat szimuláló programok írása) az OO nyelvek őse 1970-es.
Java web programozás 5..
2. Operációs rendszerek.
DLL használata és készítése Feladat
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
Előadás másolata:

Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Bevezető

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 2 Adminisztráció  Órák −Heti 1 előadás −Heti 1 labor – IL405  Követelmények −Házi feladat – aláírás + vizsgajegy (lehet) −Vizsga: szóbeli

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 3 Laborok  Heti 1 alkalom −Csütörtök  Megjelenés nem kötelező, de ajánlott!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 4 Házi feladat  Feladat −Eclipse plugin készítés −Témalista a weben – jövő héten −Nehézségtől függő értékelés −Csapatmunka lehetséges (2-3 főig, behatárolt részfeladatok!)  Ütemezés −4. hét vége: pontos specifikáció −Utolsó tanítási hét: beadás −Vizsgaidőszakban nincs házi feladat beadás!!!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 5 Házi feladat  Saját ötlet is lehet −Az előadóval egyeztetve −Részletesebben specifikálva −Eredeti ötlet sok pluszpontot jelent −Ha gyakorlatban is használható eredménye lesz, az még többet

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 6 Kis ZH !  Név nélkül - papíron  5 perc  Feladatok −Értékeld pár szóban a Java jártasságod! −Milyen Java fejlesztőrendszereket ismertél meg eddig, mennyire (1-5) −Milyen más programozási nyelveket/eszközöket ismersz? −Mondanak Neked valamit az alábbi szavak (1-5)? ●J2EE, J2ME, EMF, GEF, JDT, CDT, JUnit, AOP, RCP, meta- modell, DSM, GMF, Cosmos

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 7 Modern fejlesztési folyamat  Modell-alapú  Több platform/több alkalmazás réteg  Csoportmunka  Több nyelvű −Több programozási nyelv −Több dokumentum-leíró nyelv −Több természetes nyelv (i18n)  Nagy méretű projektek

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 8 Tipikus részfeladatok ma  Modell szerkesztés  Kód szerkesztés  Fordítás, futtatás, debug  Automatizált tesztek  Adatbázis tervezés/implementálás  Weboldalak készítése  Dokumentáció!!!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 9 Tipikus eszközök régen  Minden részhez külön eszköz  Sokszor parancssori/szöveges tool  Sok taszkváltás  Nehézkes integráció  Nehéz mindent kézben tartani  => rossz hatékonyság!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 10 Trendek  Kezdetek (1980-as évek elejéig-közepéig) −Parancssori eszközök ●Egy-egy kis feladat végrehajtása (pl. fordítás) ●A fejlesztéshez sok ilyen eszköz kell ●Felszabdalja a fejlesztési folyamatot (kód szerkesztés -> fordítás -> debug -> … más-más programmal) ●A fejlesztő „kezdetleges integrációt” tud csak végezni (make)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 11 Trendek  1980-as évek vége −Hagyományos toolok ●Már van IDE kezdemény (Turbo Pascal…) ●Csak egy gyártóhoz kapcsolódik ●Csak egy fejlesztési részfolyamathoz (pl. kódolás) −„4GL” (negyedik generációs eszközök) ●Speciális alkalmazások (pl. ügyviteli rendszerek) gyors fejlesztése (pl. Magic) ●Csak egy adott futtató környezetben működő alkalmazások

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 12 Trendek  1990-es évek −Több különböző keretrendszer egy grafikus platformra ●Win32  Borland – Visual Control Library (Delphi, C Builder)  MS – MS Foundation Classes (Visual Studio) ●Linux  QT – QT Designer  KDE – KDevelop  Kylix (Borland) ●Nehézkes az átjárás a toolok és platformok között

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 13 Trendek  1990-es évek −Java megjelenése ●Platform független (?) ●Objektum-orientált ●Egységes keretrendszer −Integrált fejlesztőeszközök nélkül reménytelen az ipari méretű alkalmazás fejlesztés ●Bonyolult platform (több száz osztály…) ●XML telepítési leírók (nem emberi editálásra optimalizálva…)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 14 Trendek  2000 után −Sok komponensből álló keretrendszerek ●Erős platform támogatás webes fejlesztéshez (.NET, J2EE) ●Integrációs interfészek – bővíthetőség −Gyorsan változó platformok ●Dinamikus változás a fejlesztőeszközökben is! ●Jelentős kapacitást igényel a fejlesztőeszközök folyamatos frissítése  Felértékelődik a nyílt forráskód szerepe

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 15 Napjainkban – Integrált fejlesztőrendszerek (IDE)  Közös keret az eszközöknek  Egy gyártó tool-jait fogja össze (pl. Borland Dephi, MS Visual Studio)  Kényelmes, hatékony  Külső eszközökkel nem vagy nehezen bővíthető   Sok egyforma fejlesztési projekt esetén jó

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 16 Napjainkban Nyílt fejlesztőrendszerek  Jól definiált keretrendszer  Nyílt specifikáció  Könnyen bővíthető  Gyártó független  (általában) platform-független  (optimális esetben) programozási nyelv független  Optimális a gyorsan változó igényekhez

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 17 Napjainkban Nyílt fejlesztőrendszerek  Integrált ÉS nyílt −Hasonló felület az eszközökhöz −Egyszerűen használhatunk többféle toolt egy projektben −Testre szabhatjuk – meglévő bővítményekkel −Testre szabhatjuk – saját bővítményekkel − A nyílt forráskódú közösség számára hatalmas lehetőségek

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 18 Néhány népszerű eszköz  MS Visual Studio.NET −Integrált, nem nyílt… −Szinte csak MS technológiákat támogat  Borland eszközök (Delphi, C Builder…) −Integrált, nem nyílt −Saját architektúra (a fejlesztéshez) −Több tanulást kíván  Oracle Application Builder −Integrált, nem nyílt −Java alapú −Főleg Oracle támogatás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 19 Néhány népszerű eszköz  Netbeans −Nyílt −Java-centrikus −Bővíthető −Ipari háttér (SUN)  Eclipse −Nyílt −Több nyelvet támogat (Java, C/C++, PHP,…) −Erős ipari háttér (IBM, BEA, …)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 20 Miért indul ez a tárgy?  A tendenciák a nyílt fejlesztőrendszerek előretörését mutatják (lásd később)  Szükség van saját kiegészítések készítésére −Saját fejlesztések támogatására −Saját megoldások számára fejlesztőkörnyezet kialakítása −Üzleti céllal hiányzó funkciók implementálása  Az országban is egyre nagyobb igény Eclipse programozókra!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 21 Miért Eclipse?  Erős ipari támogatottság −IBM, BEA, Oracle (részben)…  Sok sikeres fejlesztés a világban (amiből lehet tanulni)  Átgondolt architektúra  Több programozási nyelv támogatása  Több platform támogatása

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 22 Miért Eclipse?  Szükség lehet Eclipse alapú alkalmazások fejlesztésére (Rich Client Platform) −Erős alapszolgáltatások grafikus alkalmazásokhoz −Egységes keretrendszer lehet több alkalmazás integrálására −Pl. az új Lotus Workspace

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 23 Tematika  Nyílt fejlesztőrendszerek?  Eclipse −Alaptechnológia −Core komponenesek −Plugin fejlesztés alapok −Plugin tesztelés −Grafikus felület −Domain specifikus nyelvek és modellek −Editorok −Rich Client Platform  Kitekintés: NetBeans

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 24 Információforrások  −Minden a projekt fő csapásirányairól −Linkek más fontos Eclipse oldalakhoz  Tárgy segédanyagai −Előadás fóliák −Néhány elektronikus könyv (a laborgépeken) −Kölcsönözhető Eclipse könyvek (az előadónál)  Tárgy oldal: − −Hamarosan indul

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 25 Eclipse – egy kis történelem  1994 IBM VisualAge for SmallTalk  1996 IBM VisualAge for Java −A fejlesztőrendszer még mindig Smalltalk-ban implementálva −A Java implementáció túl lassú lenne (GUI) −Fejlesztés: SWT (még lesz róla szó) – natív GUI  2001 Eclipse projekt -> legyen minden tool Java alapú (IBM)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 26 Eclipse – egy kis történelem  Ma: Eclipse Europe (Java 6.0)  Nagy tool-gyártók is mögötte állnak −IBM (Websphere, Rational) −BEA −Borland (Java toolok) −JBoss  Kiforrottnak tekinthető

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 27 Eclipse – hogy induljunk el?  Töltsük le! −A keretrendszer ingyenes (SDK-t kell letölteni) −Sok platformra elérhető (Win32, Linux,…) − ●Letöltések ●Cikkek ●Help ●Discussion group ●Információk a tool projektekről −Mi a 3.3 verziót fogjuk használni

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 28 Eclipse – hogy induljunk el?  Telepítsük! −A telepítéshez Java SDK (!) kell −J2SDK vagy újabb kell a tárgy során −A Java telepítése után a keretrendszer is telepíthető −Első indításkor meg kell adni a workspace helyét (következik)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 29 Eclipse – telepítés  Workspace −Egy könyvtár a merevlemezen −A felhasználó adatait tartalmazza – projektek, mappák, fájlok −Minden induláskor rákérdez a rendszer – ez kikapcsolható

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 30 Első házi feladat  Eclipse 3.3 telepítése − segíteni fog a félév során

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 31 Eclipse – toolok  „Alapkiméret” −JDT – Java Development Tools ●Java nyelvű fejlesztés ●Kód szerkesztés, debug, futtatás −Help ●Súgó ●Moduláris, bővíthető −Team support ●Csoportmunka támogatás ●CVS (Cuncurrent Versioning System) támogatás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 32 Eclipse – toolok  „Alapkiméret” −PDE – Plugin Development Environment ●Eclipse kiegészítések (pluginek) fejlesztése ●Java nyelven ●Súgó és példák

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 33 Eclipse – toolok  Programozási nyelvek −CDT (C Development Tools) ●C/C++ fejlesztéshez ●Hasonló funkcionalitás, mint a JDT esetén ●Külső c fordító és make is használható −PHP ●Webes fejlesztés PHP segítségével −…

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 34 Eclipse – toolok  GUI fejlesztés −Visual Editor ●Java GUI fejlesztés vizuális szerkesztővel ●Swing, SWT, AWT támogatás −AUIML – IBM ●Platform független GUI tervezés ●AUIML = Abstract User Interface Markup Language −Reflective UI Editor ●Hasnonló az előzőhöz

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 35 Eclipse – toolok  Webes fejlesztés −JBoss IDE ●JBoss alkalmazás szerver (J2EE) alatti fejlesztés ●HTML, JSP editor ●Enterprise Java Bean-ek támogatása… −Lomboz J2EE ●Általános J2EE toolkit ●Több gyártó szervereinek támogatása

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 36 Eclipse – toolok  Webes fejlesztés −WTP (Web Tools Platform) ●Összegzi az előző eszközök tanulságait ●J2EE platformra történő fejlesztés támogatása (elsődlegesen) ●Több kisebb plugin összessége ●Jelenleg fejlesztés alatt (az első változatok már használhatóak) ●Kiválthatja (?) a fizetős J2EE toolokat

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 37 Eclipse – toolok  Modellezés −EMF – Eclipse Modeling Framework ●Saját modellezési nyelvek kezelése, modellek menedzselése −GEF – Graphical Editing Framework ●Grafikus editorok fejlesztése Eclipse alá −GMT – Generative Model Transformations ●Modell-transzformációk fejlesztésének támogatása

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 38 Eclipse – kereskedelmi változatok  IBM −Rational Application Developer ●Alkalmazás-fejlesztés Java alatt −Rational Software Modeler ●UML 2.0 modellező eszköz −Rational Software Architect ●az előző kettő összessége −Websphere Business Integration Modeler ●Üzleti folyamat modellezés

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 39 Eclipse – kereskedelmi változatok  BEA −A teljes termékskálát Eclipse alá portolják (folyamatban…)  Borland −Together - UML tool  Oracle −BPEL editor (üzleti folyamat automatizálás)  Számtalan fizetős plugin…

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 40 Eclipse architektúra  Platform független −Windows, Linux, AIX, HP-UX,…  Nyelvfüggetlen −Java, C, C++, PHP, Perl −Az eszköz és kiegészítései Java nyelven!  Több feladatra alkalmas −Kódolás, tesztelés, modellezés, …

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 41 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 42 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins rendszerindítás plugin katalógus Erőforrás-kezelés (platformfüggetlenül) UI elemek (SWT,JFace) Update támogatás Help támogatás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 43 Eclipse Runtime Platform  Plug-in registry (katalógus) −Pluginok nyilvántartása −Függőségek kezelése −Plugin betöltés menedzselése ●„lazy loading” – egy plugin csak akkor töltődik be, ha szükség van rá ●Csökkenti a rendszerindulás idejét

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 44 Eclipse Runtime Platform  Erőforrás-kezelés −Fájlok, könyvtárak elérése −A platform elrejtésével −Workspace kezelése ●A benne levő elemek elérése relatív úton ●A fájlok változásának kezelése (refresh) −Fájlkódolás és content type kezelése −„linked resources” ●Erőforrások a projekt fájlrendszerén kívül

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 45 Eclipse Runtime Platform  GUI elemek −SWT – Standard Widgeting Toolkit ●Platform-függő ●Natív GUI elemek (egszerűek) ●Eseménykezelés −JFace ●Platform-független ●Összetett GUI komponensek ●SWT-re épül −Később részletesen tárgyaljuk őket

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 46 Eclipse Runtime Platform  Update támogatás −A platform sok pluginból áll ●Mindegyik változhat ●Akár egymástól függetlenül is ●Függőségek vannak közöttük −Automatikus frissítési szolgáltatásra van szükség ●Függőségek figyelése ●Új verziók felderítése, letöltése, telepítése

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 47 Eclipse Runtime Platform  Update támogatás −Működés ●Minden feature (plugin-ok halmaza) definiálhat „update site”-okat ●Ezek weben elérhetőek ●A keretrendszer ellenőrizni tudja a legújabb verziókat (Help menü -> SW Updates -> Find & Install) ●Az új változatok letöltődnek, a függőségekkel együtt ●Telepítés után használhatóak

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 48 Eclipse Runtime Platform  Help támogatás −Az Eclipse Help rendszer moduláris −Minden plugin publikálhat bele tartalmat −Context-sensitive help −Egyszerű XML + HTML formátum −A dokumentáció akár a weben is lehet −Dinamikus help ●A tartalmat futási időben generáljuk

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 49 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins megosztott nézetek perspektívák tulajdonság-nézet (preferences) keresőmotor debug-támogatás Ant támogatás CVS támogatás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 50 IDE  Megosztott nézetek −Nézetek (views) szabadon definiálhatóak −Többnyire statikus információ megjelenítésére −Több plugin is használhat egy nézetet ●Az aktív erőforrásoktól függően −Egy nézet egyszerre csak egy példányban van jelen −Példák ●Erőforrás-fa, tulajdonságok nézet, üzenetek nézet

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 51 IDE  Keresőmotor (search) −Egy kiválasztott erőforrásra kiadják a search parancsot −Megjelenik a keresés ablak ●Erőforrás-típusonként változhat ●Saját kiegészítés lehet ●Gondoskodik az eredmények megjelenítéséről is

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 52 IDE  Compare views −Több szöveges tartalom megjelenítése, összehsonlítása −Saját merge osztály definiálható −Saját viewer definiálható az összehasonlításhoz (2/3 párhuzamos fájl) −Struktúra-alapú összehasonlítás is lehetséges ●Fa-jellegű szerkezetek esetén hasznos

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 53 IDE  Debug támogatás −Lehetőség speciális debug célok definiálására ●Erőforrások megadása  Memória  Regiszterek  Stack frame-ek ●Kiértékelendő kifejezések megadása ●Változók és értékük megfigyelése −Parancsok definiálása ●Indítás, léptetés, …

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 54 IDE  Ant támogatás −Ant ●„A make Java alapú megfelelője”  Batch build tool ●XML-alapú konfigurációs fájlok −Programból futtatható make-fájlok −Eclipse-specifikus make taszkok (pl. erőforrás frissítés) −Saját taszkok definiálhatók (speciális build)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 55 IDE  Csoportmunka támogatás −CVS – Concurrent Versioning System ●A kliens be van építve a platformba  Megosztott projektek kezelése, szinkronizációja −Saját repository providerek készíthetők (más verziókezelők támogatására) ●Szinkonizáció implementálása ●Projekt-megosztás varázsló ●Erőforrás módosítások figyelése

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 56 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins Java objektum modell AST Java forrás editor Debug támogatás (Java) JUnit teszt támogatás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 57 Java Development Tooling  Java Objektum Modell – Mire jó? −Forráskód manipuláció ●Refactoring ●Automatikus kód transzformáció ●Kódgenerálás (!) −Forráskód analízis ●Komplexitási mérőszámok kiolvasása −Hátrány: metóduson belülre nem lát (jelenleg) ●A metódus törzse plain textként nyerhető ki

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 58 Java Development Tooling  Java Objektum Modell −Egy Java program elemeit tárolja −Mind bináris mind forrás-fájlokat kezel −Hierarchikus felépítésű −Lehetőség van lekérdezésre és manipulációra is −Könnyen megvalósíthatóak vele forráskód- manipulációk is

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 59 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins Plugin Development Environment Saját plugin-ek fejlesztésére Támogatás a futtatáshoz Támogatás a plugin definíció elkészítéséhez Támogatás a plugin publikáláshoz

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 60 Plugin development environment  Miből áll egy plugin? −Egy könyvtár (amiben a többi elem van) −Egy plugin leíró (plugin.xml) −Egy plugin manifest (manifest.mf) −A szükséges Java library-k (.jar)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 61 Plugin development environment  Plugin.xml −Deklarálja a plugin nevét −Verziószámát −Szerzőjét −Függőségeit −Az implementált kiegészítéseket −A felkínált kiegészítési lehetőségeket −A plugin osztály nevét

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 62 Plugin development environment  Plugin függőségek −Megadja, hogy a plugin futásához mely más pluginok kellenek −És ezeknek mely verziója szükséges

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 63 Plugin development environment  Kiegészítési lehetőségek (extension points) −Az Eclipse filozófiájának lényege, hogy bármely funkció kiegészíthető −A lehetséges helyek az extension point-ok −Ezek definiálnak egy xml sémát ●Ebben a formában várják a kiegészítések leírását ●Megköthetik, hogy a kiegészítő osztálynak mely interfészt kell implementálnia

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 64 Plugin development environment  Kiegészítések (extensions) −Egy extension point-hoz kapcsolódik −Új viselkedést ad a rendszerhez −A plugin-xml-ben lehet megadni a leírását ●Az extension point sémájának megfelelően −Egy ponthoz általában tetszőleges számú kiegészítés csatlakozhat egy időben

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 65 Plugin development environment  Kiegészítések (extensions) −Egy extension point-hoz kapcsolódik −Új viselkedést ad a rendszerhez −A plugin-xml-ben lehet megadni a leírását ●Az extension point sémájának megfelelően −Egy ponthoz általában tetszőleges számú kiegészítés csatlakozhat egy időben

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 66 Plugin development environment  Manifest.mf −Eclipse 3.0-tól ajánlott −Részben átveszi a plugin.xml funkcióját −Meta-adatokat tartalmaz a pluginról ●Név, verzió, exportált csomagok… −Illeszkedik az OSGi Alliance ajánlásához ● ●OSGi = Open Services Gateway initiative

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 67 Plugin development environment  Plugin fejlesztés −Elvileg az eddigiek elkészíthetők kézzel is −De plugin projektként kényelmesebb −Támogatás a definícióhoz (plugin.xml, manifest) −Támogatás a teszteléshez ●Futtatás külön Eclipse workbench-ben (runtime workbench) ●Nem zavarja az éles környezetet ●Debug is lehetséges

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 68 Plugin development environment  Feaure-k −Egy vagy több plugin gyűjtésére −Egyszerre aktiválhatóak, letilthatóak −„branding” ●Cégjelzés ●Update lehetőség −feature.xml – a feature leírására (a plugin.xml analógiájára)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 69 Plugin development environment  Fragment-ek −Utólagos kiegészítés egy telepített pluginhoz −Összefésülésre kerül a szülő pluginnal −„service pack” jelleg ●Pl. új nyelv hozzáadása a GUI-hoz −Saját manifeszt (hasonló a plugin.xml-hez)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 70 Plugin development environment  Update site-ok −Külön projekt az update site-ok létrehozására ●Feature-k tárolása, publikálása ●Automatikus letöltés kezelése −Megadható mely feature-k mely verziói érhetőek el −Szimpla statikus weboldal, mely bármely szerverre felmásolható −Lehetőség van copyright, egyebek megadására

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 71 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins C/C++ Development Tools C/C++ fejlesztés támogatása külső fordító és debug támogatás Make támogatás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 72 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins Saját pluginok – szabad a pálya!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 73 Eclipse architektúra Eclipse Runtime Platform Integrated Dev. Env. JDT RCP PDECDT Contributed plugins Rich client platform alkalmazások, melyek az Eclipse Runtime Platformra épülnek

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 74 RCP  Kliens alkalmazások készítésére  Melyek az Eclipse alapszolgáltatásait használják  De nem az IDE-ben futnak  Konvencionális pluginként implementálhatóak  Más pluginokat is használhatnak

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 75 Fejlesztés teszteléssel

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 76 JUnit  Regressziós teszt keretrendszer  Erich Gamma és Kent Beck írta  Unit tesztelésre használatos Java-ban  Nyílt forráskódú  IBM CPL licensz alatt elérhető

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 77 JUnit  Web:  Az Eclipse tartalmazza a JUnit-ot −GUI-t is kínál a tesztek futtatásához  Eclipse-n kívül is futtathatóak a tesztek

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 78 Eclipse - JUnit  A JUnit beállítása a Preferences ablakban lehetséges  Általában jók az alapbeállítások  Szűrőket lehet megadni, hogy mely csomagok és osztályok jelenjenek meg a stack trace-ben

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 79 TestCase - teszteset  Több tesztet is futtathat  A TestCase osztályból származik  Definiálja, hogy mely tagváltozók tartalmazzák a teszt állapotát az osztályon belül  Inicializálás a setUp metódussal  Takarítás a tearDown metódussal

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 80 TestCase készítése  Csináljunk egy új osztályt a project-ben  Adjuk hozzá a junit.jar-t a függőségekhez

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 81 TestCase létrehozása  Kiválasztjuk a csomagot, ahova a tesztet rakni szeretnénk  A new menüből válasszuk a JUnit Test Case-t.  Elnevezzük, stb.  Egy megfelelő osztály létrejön

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 82 Példa: TestCase package com.espirity.course.testing; import junit.framework.TestCase; public class FirstTestCase extends TestCase { public FirstTestCase(String arg0) { super(arg0); } public static void main(String[] args) { } protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); }

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 83 TestCase létrehozása  Minden „test”-tel kezdődő metódus tesztként lesz kezelve az osztályban −Sok teszt metódusunk lehet  Minden teszt metódus többféle „assert” metódust használhat, hogy a tesztelés alatt álló osztályok állapotát vizsgálja −Az assert metódusok öröklöttek

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 84 TestCase létrehozása  Assert −assertEqual(x,y) −assertFalse(boolean) −assertTrue(boolean) −assertNull(Object) −assertNotNull(Object) −asserSame(Object,Object) −assertNotSame(Object,Object)

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 85 Példa: TestCase package testing; import junit.framework.TestCase; public class FirstTestCase extends TestCase { public FirstTestCase(String arg0) { super(arg0); } public static void main(String[] args) {} protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testCompareSucceed() { assertEquals(0, 0); //this assertion will succeed } public void testCompareFail() { assertEquals(0, 1); //this assertion will fail }}

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 86 TestCase futtatása  Válasszuk ki az osztályt  Run -> Run as - > JUnit Test  Lefutnak a tesztek  Az eredmény a JUnit view-ban jelenik meg.

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 87 JUnit view  Információk −Piros/zöld a teszt eredménye hiba/ok −Látható a meghiúsult tesztek neve −Látható a hiba trace −Látható a lefutott tesztek száma −Látható a hibák száma

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 88 TestSuite  Több TestCase vagy Suite futtatása  A TestSuite osztályból örököltetjük  Létrehozás varázslóval… −File->New->Other…->Java->JUnit −A varázslóban válasszuk a JUnit Test Suite opciót −Megadhatjuk a résztevő Case-eket

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 89 Összefoglalás - Eclipse  Nyíilt, moduláris keretrendszer −Több programozási nyelv támogatása −Tool integrációs platform −Szabadon bővíthető, testre szabható −Rugalmas  Rich Client Platform −Általános platform Java kliens alkalmazások számára −Erős alap-infrastruktúra a saját munka elkezdéséhez