Applying Model Driven Engineering Technologies in the Creation of Domain Specific Modeling Languages
Instructor
|
Bruce Trask
Executive,
United States
|
|
Brief Bio
Bruce Trask has been developing real world complex Distributed Real-Time Embedded systems for over 24 years specializing in MDE as applied to these systems in the last 10 years. He has been involved with the entire lifecycle of most of the projects he has participated in from conception, through requirements, through development, testing, integration, fielding and support. He has also been teaching Modeling, MDE, Object Orientation, Design Patterns, UML, C++, CORBA and Framework courses for over 10 years. He is a regular speaker/presenter at international software industry conferences. He has delivered tutorials at the OMG. Bruce Trask is the CEO of MDE Systems Inc.
|
Abstract
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 basic patterns, principles and practices of MDE. The three main MDE categories include the development of Domain Specific Languages (DSL), Domain Specific Editors (and Views), 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 Language. This tutorial will cover the basic effective patterns, principles and practices for developing these MDE software artifacts. The tutorial will show how to apply these concepts as effective means with which to both raise levels of abstraction and domain specificity and thus increase power and value of tools and languages that allow developers to tackle the complexities of today’s software systems. It will also show how to effectively leverage abstraction without sacrificing the ability to robustly and precisely refine these abstractions to solve complex real world problems. To show these patterns and principles in action, this tutorial will cover the details of how to leverage MDE Language Workbenches and frameworks in support of robust software development.
Examples of General Purpose Programming Languages and Modeling tools failing to provide sufficient power in the face of increasing platform and system complexity abound. Model Driven Engineering has shown to be an effective means with which to both raise levels of abstraction and domain specificity and thus increase power and value of tools and languages that allow developers to tackle this complexity. With Model Driven Engineering one can effectively leverage abstraction without sacrificing the ability to robustly and precisely refine these abstractions to solve real world problems. These techniques are particularly applicable to many of today’s distributed applications some of which can be described as embedded, real-time, distributed, object-oriented, portable, heterogeneous, multithreaded, high performance, dynamic, resource-constrained, safety-critical, secure, networked, component based, faulttolerant and dynamic. Tackling these systems requires a maximum of tooling and language technology. As with any software solution, Model Driven Engineering itself however introduces new complexities. This tutorial will discuss what these are and how to address them in a way that allows Model Driven Engineering approaches to be the viable next wave for software development.
How to implement Domain-Specific Modeling Languages: Hands-on
Instructor
|
Juha-Pekka Tolvanen
Independent Researcher
Finland
|
|
Brief Bio
Juha-Pekka Tolvanen is the CEO of MetaCase and co-founder of the DSM Forum. He has been involved in model-driven development and tools, notably metamodeling and code generators, since 1991. He has acted as a consultant world-wide for modeling language development, authored a book on Domain-Specific Modeling (Wiley, 2008), and written over 70 articles for various software development magazines and conferences. Juha-Pekka holds a Ph.D. in computer science from the University of Jyväskylä, Finland (best national dissertation award 1999). He received his Master's degree (econ.) in 1990 and Licentiate degree in 1994. He is also an adjunct professor (docent on software development methods) at the University of Jyväskylä.
|
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
Keywords
Domain-Specific Language, Domain-Specific Modeling, Language Engineering, Metamodeling, Code Generation, Language Workbenches
Aims and Learning Objectives
Participants will learn how to define domain-specific modeling languages, including proven practices. Since the tutorial is hands-on, the teached principles will be also applied during the session.
Target Audience
Developers, architects, researchers
Prerequisite Knowledge of Audience
Experience on using at least one modeling tool. Experience on language creation is not required.
Detailed Outline
1. Introduction
2. Defining modeling languages (steps)
3. Example domain: identifying language concepts
4. Hands-on part creating 5 variant languages for a medical domain
5. Hands-on part defining generators
6. Comparing the resulting languages
7. Summary