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


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.


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.


* 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.