TutorialGPCE2

Generative Programming and Component Engineering

Building Domain Specific Languages with Eclipse and openArchitectureWare

Markus Völter, Independent Consultant

Arno Haase, Independent Software Architect

Sunday, October 22nd, from 13:30 to 17:00

Abstract

DSLs are an important aspect of Model-Driven Software Development. Since DSLs are specific to a certain domain, it is the domain architect's task to define and implement DSLs so that application developers can use the DSLs to configure or otherwise describe systems. In this tutorial, participants will learn how to:

* Define metamodels that form the basis for a DSL * Define a graphical syntax for the DSL * Verify the correctness of models wrt. to the metamodel that underlies them * Write transformations that transform models into executable code

To do all this, we will use tools and technologies from the Eclipse platform. These include EMF for metamodelling, GMF for building graphical editors as well as openArchitectureWare for verifying and transforming models, and to generate code. The focus will be on the graphical editor and code generation. The tutorial will be highly interactive with only a minimum of slides, many live presentations show the tools at work.

Level: Intermediate

Required Knowledge

Attendees must have a solid understanding of object-orientation and architectural concepts as well as working knowledge of Java. A basic understanding of Model-Driven Software Development is helpful. Working knowledge in the use of Eclipse is very useful (since all our tooling will be based on Eclipse).

Speaker profiles

Markus works as a consultant for software technology and engineering. He focuses on software architecture, middleware and model-driven development. Markus is the co-author of several books on these topics. He is a regular speaker at conferences.

Arno works as an independent software architect. He has been working in the industry for fifteen years. During the last years, he has specialized in introducing model-driven approaches both at the project and the organization level.