Korszerű fejlesztő környezetek Ráth István Tartalom A szoftverfejlesztés evolúciója Szakterület-specifikus nyelvek és előnyeik Verifikáció és validáció a rendszertervezésben Modern fejlesztőkörnyezetek szolgáltatásai Az Eclipse platform A VIATRA keretrendszer 2 A fejlesztés evolúciója Ad-hoc megoldások esetleges? Kód könyvtárak tervezhető kód Termékcsaládok prediktív komponens Újrahasznosítás 3 1
Evolúció a -vezérelt fejlesztésben független Visszafejtés (RE), ezés független platform specifikus Öröklött kód Kész 4 Evolúció a -vezérelt fejlesztésben PIM Modellezés (re-engineering) Szakterületi ek platform Szakterületi ek generátor Öröklött kód Kész 5 Mire jók a szakterület-specifikus nyelvek? Kiegészítik a teljes tervezési és dokumentálási folyamatot Magas szintű támogatást nyújtanak minden fázishoz Csökkentik a komplexitást A tervezésbe bekapcsolhatóak a szakterület nem informatikus szakértői is Csökkentik a hibázási lehetőségek számát Javítják a végeredmény minőségét 6 2
Evolúció II: Verifikáció és validáció rendszer ek automatikus származtatás MT annotáció Modelltranszformációk matematikai ek analízis teszt generálás riport tesztek tesztelés 7 Modern rendszerfejlesztési munkafolyamat Rendszer ek ek Analízis ek Teszt ek Analízis eszközök Alkalmazás Tesztkörnyezet 8 Modern fejlesztő környezetek szolgáltatásai Hagyományos programozási környezet kiterjesztése Automatikus javaslatok (IntelliSense), automatizált kód átalakítások (refactoring) Modell-bázisú fejlesztést támogató eszközök UML integráció Domain-specifikus ezési nyelvek integrációja Kódgenerálás Modell transzformáció Verifikáció és validáció Tesztelés, riport generálás Modell transzformációk Menedzsment Csoportmunka támogatás, projekt követés, feladat kiosztás 9 3
Eclipse Eredetileg IBM fejlesztés (2m USD) Nyílt fejlesztőrendszer (Java, C/C++, ) Nyílt forráskód Kiterjeszthető komponens-alapú keretrendszer (plugin) Alkalmazás-fejlesztési platform Kliens és szerver oldali technológia Erős ipari háttér IBM fizetős technológiáinak alapja (Rational termékcsalád) Borland, BEA, ComputerAssociates, Intel, Nokia, Motorola, SAP, Sybase, Wind River, Oracle, 10 Eclipse szolgáltatások Kiváló Java/C/C++/PHP/ fejlesztőeszköz Csapatmunka: CVS, SVN integráció Modell-bázisú infrastruktúra EMF: Eclipse Modeling Framework ingyenes nyílt forrású bővíthető testreszabható UML2: szabványos UML2 eszközök támogatása GMF: grafikus szerkesztők automatikus generálása GMT: akadémiai szintű (BME-MIT is részt vesz benne a VIATRÁval) Tesztelés TPTP: Test & Performance Tools Project Menedzsment Mylyn: feladat-orientált UI BIRT: Business Intelligence and Reporting Tool 11 Eclipse architektúra Fejlesztési célplatformok Beépített fejlesztői eszközök Contributed plugins Rich Client JDT PDE CDT RCP IDE Eclipse Runtime Alapszolgál tatások OSGi framework Alkalmazás futtató keretrendszer 12 4
Példa: GMF alapú szerkesztők generálása Develop Graphical Definition *.gmfgraph Create GMF Project Develop Tooling Definition Create Generator Model *.gmfgen *.ecore Domain Model(s) *.gmftool Develop Mapping Definition Adjust Generation Parameters *.gmfmap 13 Az Eclipse jövője Főbb fejlesztési irányok: Domain-specifikus ezési nyelvek, transzformációk Tool integráció (SOA, Web services) Menedzsment aspektusok (minőségbiztosítás, feladat követés, ticketing) rendszerek (akár Java alapon is) Szerver-oldali megoldások (Equinox) Ipari igények alapján fejlesztik, akadémiai partnerek bevonásával Ingyenes és nyílt, professzionális célra is szabadon használható 14 Tool chain Modeling Model integration Code generation + Compilers V&V Model bus Tool platform 15 5
Tool chain SOA-TP ALF Modeling CORONA Model integration COSMOS Code generation + Compilers V&V BIRT TPTP MDDi Model bus VIATRA2 Tool platform ECF Eclipse, Equinox 16 A VIATRA keretrendszer VIsual Automated model TRAsformations általános transzformációs keretrendszer a MT, mint szoftver technológia teljes életciklusát támogatja Cél: ezési nyelvek közötti és nyelveken belüli automatikus, programvezérelt átalakítás Megvalósítás: egy domain-specifikus nyelv mögé rejtett formális matematikai módszereket transzparensen felhasználó, Eclipse-be integrált szoftvercsomag Akadémai verzió: Eclipse GMT Ipari verzió: OptXWare Egyetem erkölcsi támogatásával létrejött spin-off 17 A VIATRA matematikai háttere - gráftranszformáció Baloldal Él Él Hely Tranz. tokenek Token Chomsky nyelvtanok általánosítása (szöveges minta gráfminta) Alkalmazás: a bal oldalt a jobb oldalra cseréli gráfmintaillesztés akciók: törlés + létrehozás Hely Hely Jobboldal Él Él Tranz. Hely tokenek Token 18 6
A VIATRA szolgáltatásai model bus : Precíz metaezés Modell alapú integráció bővíthető importer készlettel (UML2, XML, BPEL, WSDL, ) Nyelvközi és nyelven belüli transzformációk Nyelvközi: Business Process Execution Language Symbolic Analysis Laboratory Nyelven belüli: hibaszimuláció Kódgenerálás Terv: platform-specifikus transzformációk Az adott feladatra optimalizált, lefordított megoldások 19 A VIATRA ai V&V (Model checking) Bell-LaPadula biztonsági ellenőrzés (BPEL Promela) (IBM Faculty Award) Workflow analízis (BPEL Symbolic Analysis Laboratory) SOA Teljesítmény és rendelkezésre állás analízis Konfiguráció generálás Service analízis és Deployment (UML2.1 WSDL) Következő előadás témája: beágyazott rendszerek PIM2PSM generálás, validáció Middleware kód generálás Domain-specifikus nyelvek (ViatraDSM) Szimuláció Kényszer-vezérelt szerkesztés támogatása Grafikus felületek -alapú fejlesztése (UiPIM / SwingGEN) SENSORIA, SA Forum DECOS 20 Összefoglalás Eclipse (http://eclipse.org) ipari erősségű, rohamosan terjedő, szabadon használható technológia nagy tömegű komfortszolgáltatással VIATRA (http://eclipse.org/gmt) Nagyhatékonyságú transzformációs eszköz Élvonalbeli technológia (egyike azoknak, amelyeket az IBM System Research Journal mint jelentős eszközöket említ) Tapasztalataink Eclipse-alapú fejlesztések, oktatás Meta tervezés Meta technológia: DSM környezetek kialakítása Modelltranszformációs technológia fejlesztése Modelltranszformációk gyakorlati ai Gyakorlatias leírás: VIATRA - visual automated transformations for formal verification and validation of UML models. Csertan, G. Huszerl, G. Majzik, I. Pap, Z. Pataricza, A. Varro, D. IEEE Automated Software Engineering, 2002. 21 Proceedings. ASE 2002 7