MetaCase Newsletter 2015/2
Collaborative DSL development and use
Almost all software development activities require collaboration, and developing domain-specific languages is no exception. Language users provide feedback as the language is developed, and different parts of the language can be developed in parallel: for example, one developer can focus on the abstract syntax, another on the notation, a third on code generators, and a fourth on integration with the development process.
MetaEdit+ is made for collaborative work in both modeling and metamodeling. We have collected experiences from hundreds, if not thousands, of domain-specific languages and generators, and in particular on their creation process. Some of these cases are public too. Based on these experiences we share our practices on how teams can collaboratively develop and use domain-specific modeling languages, and what benefits this collaboration provides. The article is originally published in Methods & Tools and is available to download.
In this issue:
- Collaborative DSL development and use
- A complete DSM example at embedded.com
- Hands-on DSM tutorial at SPA 2015, London
- From the forums: Question about cross repository reuse of Graph
Webinar on creating Domain-Specific Modeling languages with MetaEdit
Creating DSM solution for voice control in home automation
Domain-Specific Modeling (DSM) raises the level of abstraction beyond current programming languages by specifying the solution directly using problem domain concepts. The final products are then generated from these high level specifications. This automation is possible because both the language and generators need fit the requirements of only one company and domain.
Embedded.com has published two extracts from the DSM Book as articles describing a DSM solution for home automation:
The articles describe a complete DSM solution developed for a manufacturer and solution provider of M2M (Machine-to-Machine) communication systems. The systems in question are used in a variety of industries including home automation, energy, telecommunications, and transport.
Part 1 focuses on the initial steps in creating a DSL for specifying home automation voice control systems. The actual process of creating the modeling language and its generators has been described as it happened, including the problems and challenges faced. Part 2 focuses on using the model and the language to generate the code needed for applications in such an environment. It shows the generator and its structure along with a sample of the generated optimized 8-bit assembler code.
Hands-on DSM tutorial at SPA 2015
A horrible lie exists in our industry today: it says that defining a graphical DSL is difficult and time-consuming. In the DSM tutorial at the SPA Conference 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:
- The DSL is based on the concepts of the problem domain rather than the code
- 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
The Software Practice Advancement (SPA) conference is held in London, UK, 28th May - 1 June 2015.
From the Forums: Question about cross repository reuse of Graph
When you have a question, the MetaEdit+ Web Forums have have proven to be a great way to get accurate answers quickly. At the same time, your question helps others for the future: some threads have been read over 20 000 times.
This issue's highlighted topic comes from Patrick who asks about cross repository reuse of Graph.
Q: I defined a set of graphs in one repository and I can of course create diagrams based on those graphs in other projects in this repository.
Is it possible to refer or export the graphs to another repository so that I
can use that same language in other repositories? I like to keep certain
projects apart from others and I think that using different repositories would
be the best way, but so far I haven't found a way to share the graph definition
A: Yes, you can export the language definition from one repository and import it to another with metamodel management tools. These are described in Workbench User's Guide in Chapter 7. Type Manager provides the functionality to choose which languages you would like to share and how.
(If you want to export models then please see User Guide on Graph Manager for more details)
See other topics from the MetaEdit+ Web Forums here.
Webinar on Domain-Specific Modeling with MetaEdit+
This 30-minute webinar will demonstrate how MetaEdit+ allows you to incrementally define your own modeling tool — without having to write a single line of code. As soon as you define a modeling language, or even a partial prototype, you and your team can start to use it in MetaEdit+. You will learn:
- How to define domain-specific languages with MetaEdit++
- How to define rich, dynamically changing notations
- How MetaEdit+ updates models on the fly as the modeling language changes
- How to test and debug the modeling language and generator
For the webinar you can use your computer's microphone and speakers — a headset is recommended. The schedule for the webinars and instructions are available on the webinar page.
Alongside the webinars, we're also offering company-specific webmeetings for DSM. These allow us to focus on your particular vertical, e.g. automotive, product line, UI, telecom or service specification. We can show you and your team DSM languages and cases from your vertical as well as discussing your company-specific requirements — all of course with no obligation. Book your own free one-to-one webmeeting now!