European Conference on Modeling Foundations and Applications 
Birmingham, UK

Tutorial, 7th June 2011

Creating Domain-Specific Modelling Languages that work: Hands-on

Tutorial description

A horrible lie exists in our industry today: it says that defining a graphical DSL is difficult and time intensive. In this tutorial, we will lay bare this fallacy and demonstrate how simple and quick it is to create domain-specific modelling languages and their generators. Through a hands-on approach, we define a modelling language and related generators in a few hours. More than just a technical exercise, we will show how this reflects industry experiences in various domains, including telecom, consumer electronics and home automation.

Participants will learn hands-on the practical, repeatable steps to design and implement DSLs. We will focus on modelling languages that enable true model-driven engineering, in which working code is generated from models: 

  • The language is based on the concepts of the problem domain, not the solution domain 
  • The scope of the language is narrowed down to a particular domain 
  • The language minimizes the effort needed to create, update and check the models 
  • The language supports communication with users and customers

At the end of the tutorial participants will have implemented several versions of the language - each time raising the level of abstraction.

Schedule

7th June
09:00 Introducing Domain-Specific Modelling
  • Where to apply - and why 

  • Real life examples from various domains

  • Industry cases

09:40 Building modelling languages 
  • Identifying language concepts 

  • Defining metamodel 

  • Group work 

12:30 Lunch 
14:00 Group work continues 
  • Language rules 

  • Notation 

  • Model reuse 

  • Language evolution

16:30 Building code generators
  • Patterns for generators by type of output 

  • Adding a Domain Framework 

  • Generator examples (C, Java, Python, ASM)

17:40 Questions & discussion 
18:00 End

Tutorial goals

Participants will learn how to define modeling languages that enable full code generation from models. In addition to demonstrating industrial cases, during collaborative group work session participants will apply the principles of language and generator creation in practice: We seek in good design abstractions, capture them to a metamodel and define the language including constrains and concrete syntax. At the end of the session participants will try the language they created to model some applications.

Required equipment

Participants should have experience on using at least one modeling and/or code generation tool. Experience on using some metamodeling tools is not needed.

For the hands-on part it is recommended that everyone has a personal laptop, but it is also possible to work in pairs. Language creation can be done in any technology or tool that is available for the participants. For the rest organizers will provide tools for language creation (MetaEdit+, supporting the following operating systems: Windows XP/Vista/7, Mac OS X Snow Leopard (or Panther/Tiger with X11 support installed), Linux (any contemporary basic distribution should work, but Ubuntu and SuSE are the recommended ones).

Target audience

Tutorial is targeted for people defining modelling languages and code generators and is suitable for Practitioners, Managers and Educators.

Presenter

Juha-Pekka Tolvanen is the CEO of MetaCase. He has been involved in model-driven approaches, metamodeling, and domain-specific modeling languages and tools since 1991. He has acted as a consultant worldwide on modeling language and code generator development. Juha-Pekka has authored a book on Domain-Specific Modeling (Wiley 2008) and written over sixty articles for software development magazines and conferences. He holds a Ph.D. in computer science and he is an adjunct professor at the University of Jyvaskyla, Finland.