MdeTutorial
Generative Programming and Component Engineering
GPCE Tutorial #1 (GP1)
"Effective Model Driven Engineering to Create Domain Specific Languages" by Bruce Trask and Angel Roman, MDE Systems Inc.
Date: Oct 22, morning
Abstract
Model Driven Engineering (MDE) brings together multiple technologies and critical
innovations and formalizes them into the next wave of software development methods.
This tutorial will cover the basics of MDE and how they work synergistically with
Generative Software Development (GSD) techniques and Component Frameworks (CFs).
The three main MDE categories include the development of Domain Specific Languages,
Domain Specific Editors (including Domain Specific Visual Languages) and, Domain
Specific Transformation Engines or Generators. Expressed in terms of language
development technology, these mirror the development of the Abstract Syntax, Concrete
Syntax and Semantics of a new Domain Specific Languages (DSLs). This tutorial will
cover the basic effective patterns, principles and practices for developing these MDE and
GSD software artifacts. Additionally, as a powerful example of these concepts in action,
this tutorial will cover the exact details of how to leverage the Eclipse Modeling
Framework (EMF), the Eclipse Graphical Editor Framework (GEF), and the Eclipse
Graphical Modeling Framework (GMF), to support the development of powerful DSLs
and their tools. These three frameworks provides a unique and integrated platform in
which to learn the basics of MDE and GSD in full application. Conversely, MDE and
GSD provide an effective context in which to learn how to apply the power of these
integrated Eclipse Frameworks developed to support MDE and GP.
Duration
Half day tutorial.
Level / required experience
The tutorial level is intermediate. Familiarity with General Programming and Modeling concepts.
Target audience
The benefits of the technology are so far reaching that we feel the intended audience
spans technical managers, developers and CTOs. In general the target audience includes
researchers and practitioners who are working on complex problems related to the design
and implementation of any complex domain and would like to understand the benefits of
applying MDE techniques towards GSD and leverage existing tools and frameworks (i.e.
Language Workbenches) to develop MDE solutions. The first half will be less technical
than the second half where we cover the details of MDE and GSD in action in complete
detail showing patterns and code. Attendees will come away with an appreciation for
how they can effectively raise the level of abstraction in their domains without sacrificing
the semantic rigor and precision needed for correct and robust systems.
Outline
* Model Driven Engineering (MDE) and Generative Programming (GSD) Core Concepts (90 minutes)
* MDE and GSD Basics – “Programming with Models”
* MDE and GSD Patterns
* MDE and GSD Principles
* MDE and GSD Practices
* The Anatomy of MDE and GSD
* The Meta Model
* Survey of Meta Modeling Techniques
* Applying Generative Approaches to Meta Modeling
* Editors
* Survey of Editor Techniques
* Creating Domain Specific Visual Languages
* Transformation Engines/Generators
* Survey of Existing Generative Techniques
* Template based techniques
* Abstract Syntax Tree/Visitor approaches
* Capturing Commonalities and Variabilities in the Meta Model
* Capturing Commonalities and Variabilities in the Editor
* Capturing Commonalities and Variabilities in the Generators
* Applying MDE to Today’s Systems using Eclipse
* Tackling today’s system’s complexities
* Increasing correctness, quality and performance
* MDE and GSD In Action - Basics of Language Workbenches Tutorial – using Eclipse’s EMF, GEF and GMF (90 minutes)
* Meta Modeling Environments
* Defining an Ecore Meta Model
* Creating a Model Programmatically
* Persistence
* Event Notification
* Concrete Syntax/Editor development environment
* Editor Anatomy
* MVC pattern and its relation to Domain Specific Modeling
* Canvas
* Tools
* Palettes
* Creating an Domain Specific Editors
* Generative/Synthesis Engine
* Java Emitter Templates
* Builders
* GMF
* A concrete example in full will be used throughout the above section to illustrate each concept
Bio speakers
Bruce Trask has been working on complex Distributed Real-Time Embedded systems for
over 20 years specializing in MDE, GSD and Component Frameworks and Enginnering.
He has developed commercial quality MDE tools, Component Architectures and
Frameworks as well as Generative Engines for many complex domains. He has been
teaching C++, Object Orientation, Design Patterns, UML, CORBA and Framework
courses for over 10 years. He has lead multiple study groups in the New York, New
Jersey, Connecticut area on various topics ranging from design patterns to middleware.
He is a regular speaker/presenter at software industry conferences all year long. He has
devlivered tutorials at the OMG. Bruce Trask is the CEO of MDE Systems.
Angel Roman is the Chief Software Architect of MDE Systems and an expert on the
Eclipse Development environment and its application frameworks. He has presented at
various industry conferences on topics such as Software Defined Radios and MDE
Technologies.
Bruce and Angel have an experience published in Software Product Lines, 10th
International Conference, SPLC 2006, Baltimore, Maryland, USA, August 21-24, 2006,
Proceedings. IEEE Computer Society 2006, ISBN 0-7695-2599-7.