BCS SPA2015

Software Practice Advancement Conference

SPA Conference session: How to implement Domain-Specific Modeling Languages: Hands-on

One-line description:How to implement Domain-Specific Modeling Languages: Hands-on
 
Session format: Long tutorial [read about the different session types]
 
Abstract:A horrible lie exists in our industry today: it says that defining a graphical DSL is difficult and time-consuming. In this tutorial, we will lay bare this fallacy and demonstrate how simple and quick it is to create domain-specific languages and their generators. Using a hands-on approach you will define several modeling languages and generators within a few hours, learning principles and best practices proven in industrial experience.

The tutorial teaches practical, repeatable steps to invent and implement DSL. The language definition process reveals the characteristics of DSLs that enable generating working code from models:
- DSL is based on the concepts of problem domain rather than code
- Scope of the language narrowed down to a particular domain
- Language minimizes the effort needed to create, update and check the models
- Language supports communication with users and customers
 
Audience background:Experience on using at least one modeling tool (e.g. UML, SysML or domain-specific ones like Simulink block diagrams). Experience on language creation is not required.
 
Benefits of participating:Participants will learn how to define domain-specific modeling languages, including proven practices. Since the tutorial is hands-on too, the teached principles will be also applied during the session.
 
Materials provided:Tutorial material includes slides and description of the domain to be tackled in the hands-on part. 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 and participants should bring their own laptop for the class (win, mac, linux).
 
Process:This tutorial is an interactive tutorial where participants will define a modelling language for a narrow domain. After introduction organizers will provide a sample case (from common and known application domains) and moderate the hands-on work. Hands-on part can be done individually or as a pair.
 
Detailed timetable:1. Introduction (30 min)
2. Hands-on part defining languages: concepts, rules, notation (120 min)
3. Demonstration of other examples (45 min)
4. Hands-on part defining generators (60 min)
5. Demonstration of other generators (30 min)
6. Summary, Q&A (14 min)
 
Outputs:Output will be the user defined languages, generators and sample models.
 
History:While in hands-on tutorials the contribution from participants has an important role, similar tutorials using hands-on style has been given earlier too, most recently at OOP 2015, and earlier in Code Generation Conference a shorter session (3h) was considered among the best sessions of the conference.
 
Presenters
1. Juha-Pekka Tolvanen
MetaCase
2. 3.