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 Újrahasznosítás komponens 3
Evolúció a modell-vezérelt fejlesztésben Platform független modell Visszafejtés (RE), modellezés Platform független modell CORBA modell J2EE modell Beágyazott platform modell Platform specifikus modell CORBA alkalmazás J2EE alkalmazás Beágyazott alkalmazás Öröklött kód Kész alkalmazás 4
Evolúció a modell-vezérelt fejlesztésben PIM Modellezés (re-engineering) Szakterületi modellek CORBA modell J2EE modell Szakterületi modellek Beágyazott platform modell Platform generátor modell CORBA alkalmazás J2EE alkalmazás Beágyazott alkalmazás Öröklött kód Kész alkalmazás 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
Evolúció II: Verifikáció és validáció rendszer modellek automatikus származtatás MT annotáció Modelltranszformációk matematikai modellek analízis alkalmazás teszt generálás riport tesztek tesztelés 7
Modern rendszerfejlesztési munkafolyamat Rendszer modellek Platform modellek Analízis modellek Teszt modellek 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 modellezé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
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 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 ingyenes nyílt forrású bővíthető testreszabható 11
Eclipse architektúra Fejlesztési célplatformok Beépített fejlesztői eszközök Rich Client Platform Contributed plugins JDT PDE CDT RCP IDE Eclipse Runtime Platform Alapszolgál tatások OSGi framework Alkalmazás futtató keretrendszer 12
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 modellezési nyelvek, modell transzformációk Tool integráció (SOA, Web services) Menedzsment aspektusok (minőségbiztosítás, feladat követés, ticketing) Beágyazott 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 Toolchain chain Modeling Model integration Code generation + Compilers V&V Model bus Tool platform 15
Tool Toolchain 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 modelltranszformációs keretrendszer a MT, mint szoftver technológia teljes életciklusát támogatja Cél: modellezé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 Hely Token Él tokenek Tranz. 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 Él Hely Hely Él Tranz. Él tokenek Jobboldal Hely Token 18
A VIATRA szolgáltatásai model bus : Precíz metamodellezés Modell alapú integráció bővíthető importer készlettel (UML2, XML, BPEL, WSDL, ) Nyelvközi és nyelven belüli modell 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 alkalmazásai 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 modell-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ú modelltranszformá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 Metamodell tervezés Metamodell technológia: DSM környezetek kialakítása Modelltranszformációs technológia fejlesztése Modelltranszformációk gyakorlati alkalmazásai 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