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
For the hands-on part it is recommended that everyone has a personal laptop, but it is also possible to work in pairs. Supported platforms: Windows, Mac OS X, Linux (any contemporary distribution). The required software will be made available at the conference.
Target Audience: Developers, Architects
Prerequisites: Experience on using at least one modeling tool. Experience on language creation is not required.
You will learn:
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.
This tutorial is an interactive tutorial where participants will define a modelling language for a narrow domain. Organizers will provide a sample case (from common and known application domains) and moderate the groups for making sure they make progress, without leading them in any particular direction.
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.
Tutorial material includes slides and description of the domain to be tackled in the hands-on part.