360 likes | 527 Views
Extensibility and Modularity for Model Driven Engineering Environments. Thomas Leveque , Jacky Estublier, German Vega. ADELE. Grenoble University France. Outline. Model Driven Engineering Environments CADSE Architecture CADSE Model CADSE Extensions Experiences & Conclusion. Developer.
E N D
Extensibility and Modularity forModel Driven Engineering Environments. Thomas Leveque, Jacky Estublier, German Vega ADELE Grenoble University France
Outline • Model Driven Engineering Environments • CADSE Architecture • CADSE Model • CADSE Extensions • Experiences & Conclusion
Developer Workspace Uses manages Workspace commit SharedRepository @Override publicvoid create() { super.create(); … } import
IDE Evolution Device model Web Service model Application Type DSDP(DeviceSoftDevPlatform) WTP(WebToolsPlatform) Application Type JDT(JavaDevTooling) Language TPTP(TestPerformancePlatform) Activity CDT(CDevTooling) Language Test model Java model C model Files and directories Extends
Environment Trends • Domain specific Environments • Language • Application type • Activity • Business • Model Driven Environments • Java model • Web App model • Test model
Domain • Business • Technical • Activity • Mixed • A Domain is an area in which a number of stakeholders is repeatedly performing similar activities.
Developer Model Driven Engineering Environments
Developer Extend Workspace with models Uses manages Workspace <xmi:A> <xmi:B name=“B”> </xmi> </xmi> <xmi:C> </xmi> commit SharedRepository import @Override publicvoid create() { super.create(); … }
Model Driven Engineering Environments • Manage abstractions of the software. • In form of a model • Derive a part or full software code from these models. • Modifications made on code and model may be reconciled (in the workspace). • Allow different actors to work with the “same” models in different workspaces. • Allow reusing part of model to construct new applications. • Main goal • Most of work is done on models to simplify software development
Outline • Model Driven Engineering Environments • CADSE Approach • CADSE Model • CADSE Extensions • Experiences & Conclusion
CADSE • Computer Aided Domain Specific Environment • Model Driven Engineering Environment • Domain specific • Allow manipulating an application model • Conform to a domain model • Extend generic environments • IDE • SCM • Model and code are always synchronized
ApplicationModel Developer Application artefacts CADSE: Model Driven Development Requirement CADSE CADSE Eclipse plugins @Override publicvoid create() throws MelusineException { super.create(); String packageName = getPackageNameAttribute(getItem()); String className = getClassNameAttribute(getItem()); // Create servlet Java file String servletContent = new ServletGenerator(). generate(packageName, className); } Solution
Developer Extend SCM with models Service DevCADSE Uses manages commit Workspace ModelRepository (MySQL DB) import @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } SubVersionRepository
Developer2 Extend SCM with models Service DevCADSE Uses manages commit Workspace ModelRepository (MySQL DB) import SubVersionRepository @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … }
Outline • Model Driven Engineering Environments • CADSE Approach • CADSE Model • CADSE Extensions • Experiences & Conclusion
CADSE Model defines Domain Model Editors Synchronization Evolution CADSE Model
CADSE Model : Domain Model • Concepts • Attributes • Relationships • Aggregation • Part • Composition • Require
CADSE Model : Model Editors • Creation wizard • List of pages • Modification pages • Actions • View • Filter model elements and actions • Define structure
CADSE Model : Synchronization • Artefact structure • Synchronization
CADSE Model : Evolution • Attribute • Mutable • Immutable • Final • Transient • Link Destination • Mutable • Immutable • Final • Effective • Branch • Coupled
Plan • Model Driven Engineering Environments • CADSE Approach • CADSE Model • CADSE Extensions • Experiences & Conclusion
Service Application Example +version Development activity Design activity Testing activity Deployment activity
InterDependencies extends Development Deployment extends Design extends Test Development activity Design activity Testing activity Deployment activity
CADSE Extensibility • A CADSE can extend another CADSE • Domain model extension • Add attributes and relationships • Model Editor extension • Add new editor, actions… • Synchronization extension • Add synchronizer • Evolution management • Define evolution control politics for added attributes and relationships
LifeCycle Development Design Deployment Test Development activity Design activity Testing activity Deployment activity
Developer2 Model elements migration Service DevCADSE + Service DeployCADSE Uses manages commit Workspace ModelRepository (MySQL DB) import SubVersionRepository @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … }
Outline • Model Driven Engineering Environments • CADSE Approach • CADSE Model • CADSE Extensions • Experiences & Conclusion
Experiences • First CADSE in 2001, CADSEg in 2006 • Many CADSEs • Melusine, APEL, OSGi, iPojo, Think, SAM • DOCOSOC, FOCAS and CADSEg • Reduce development effort • 80 % code is generated • Need improvement • Tree structure editors => Graph editors • CADSE extensibility => most appreciated feature
Conclusion • CADSEs meet all Environment requirements • Produced in a reasonable cost • Reuse of domains (CADSE) • Feasibility, usability, efficiency have been validated • Open Source project
References • CADSE web site • http://cadse.imag.fr • ADELE team web site • http://www-adele.imag.fr • ECBS/MBD paper • Extensibility and Modularity forModel Driven Engineering Environments