320 likes | 429 Views
Domain Specific Engineering Environments. Jacky Estublier, German Vega, Philippe Lalanda, Thomas Leveque. ADELE. Grenoble University France. Outline. Environments CADSE Architecture CADSE Model CADSE Composition Experiences & Conclusion. Need abstraction of the software.
E N D
Domain Specific Engineering Environments. Jacky Estublier, German Vega, Philippe Lalanda, Thomas Leveque ADELE Grenoble University France
Outline • Environments • CADSE Architecture • CADSE Model • CADSE Composition • Experiences & Conclusion
Need abstraction of the software Software Complexity • Softwares become more and more complex • Centralized to Distributed • Static to Dynamic • Architecture • Quality of service • Adding Real Time constraints • Non functional properties management • … • Find a solution for all concerns is a wicked problem
Generic, not dedicated to a domain Environments • IDE • No Model • Extensibility • No evolution management • SCM • System Model • Evolution control
Tools dedicated to a domain Domain • Business • Technical • Activity • Mixed • A Domain is an area in which a number of stakeholders is repeatedly performing similar activities.
Cost issue and big challenge Development Environment • Requirements • Domain centricity • Abstraction • Separation of concern • Extensibility • Full-fledged • Standardized
Outline • Environments • CADSE Approach • CADSE Model • CADSE Composition • Experiences & Conclusion
Consistency issue Developer Model Driven Development Application Model Generation /Transformation @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); } IDE artefacts
Abstraction level issue Developer Model Driven Development Application Model Synchronisation @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); } IDE artefacts
Developer CADSE : a MDD tool
EngineeringModel Developer IDE artefacts CADSE: 3 abstraction levels Requirement PlatformModel CADSE @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
EngineeringModel CADSEg Developer IDE artefacts CADSE: a meta model approach Engineering Meta Model EngineeringDomain Expert Ecore MMM PlatformMeta Model PlatformModel CADSE SoftwareDomain Expert Platform MMM @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); } EnvironmentModels EnvironmentDomain Expert Platform MMM
Outline • Environments • CADSE Approach • CADSE Model • CADSE Composition • Experiences & Conclusion
CADSE Model Data model Interaction Model (View model) Mapping model Configuration model Build model Evolution model CADSE Model
CADSE Model : Data Model • Concepts, attributes • Relationships • Aggregation • Part • Composition • Require
CADSE Model : Interaction Model • Creation wizard • List of pages • Modification pages • Actions • View • Filter model elements and actions • Define structure
CADSE Model : pages • A page defines the attributes which can be edited.
CADSE Model : Mapping Model • Artefact structure • Synchronization
Plan • Environments • CADSE Approach • CADSE Model • CADSE Composition • Experiences & Conclusion
CADSE Extensibility • A CADSE can extend another CADSE • Data model extension • Add attributes and relationships • Interaction (editor, action…) • Mapping extension • Evolution management • Build
CADSE Service Composite CADSE Composite CADSE uses DATA Management CADSE Orchestration CADSE Data Orchestration CADSE
CADSE Service Composite CADSE : Specialization • Aspects on existing models • Adding attributes, relationships
Outline • Environments • CADSE Approach • CADSE Model • CADSE Composition • Experiences & Conclusion
Experiences • First CADSE in 2001, CADSEg in 2006 • Many CADSEs • Melusine, APEL, OSGi, iPojo, Think • DOCOSOC, FOCAS and CADSE • Reduce development effort • 80 % code is generated • Need improvement • Tree structure editors => Graph editors
Future works • Generation of graph editors (GMF) • Generator for NetBeans in understudy • Performance (> 10 000 model elements) • New mechanism (group) • Improve the different models, define new models
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 • APSEC papers • Management of composites in Software Engineering Environments • Domains Specific Engineering Environments