show all comments


Testing web applications: Experiences on using Domain-Specific Modeling

June 18, 2012 16:42:29 +0300 (EEST)

I’ve had during this spring a nice opportunity to be involved in creating modeling languages for testing web applications (WebAppML). While Stephan Schulz from Conformiq did all the fun part on defining different language versions, my role was mainly on discussing about alternative language structures. Stephan also implemented generators for test case generation that integrates WebAppML and MetaEdit+ with Conformiq’s testing tools.

Using WebAppML in MetaEdit+: testing shopping card

A good part of this work is that the user feedback and results are also publicly available (talk at ETSI MBT Workshop, Bangalore, last week). In particular I would like to raise (again) the obvious outcome:

“100% of the participants felt that WebAppML significantly speeds up their work”. This will always happen when we can raise the level of abstraction closer to the problem domain. Obviously WebAppML raises the level of abstraction.

I also like some other findings of the survey:

“100% of the participants prefer MetaEdit+ as a modeling tool”. I know that new MetaEdit+ 5.0 makes the modeling experience in many parts, in particular the reuse emphasized in this testing language too, even more enjoyable.

The slides describing the language and its user feedback is available from the ETSI test conference site at


12th Workshop on Domain-Specific Modeling: Papers and demonstrations are welcomed

June 12, 2012 16:25:35 +0300 (EEST)

With the growing interest in Domain-Specific Modeling, I’m proud to be involved in organizing the workshop on DSM at the coming SPLASHCon, 22 October in Tucson, Arizona.

1st day at 11th DSM workshop

This year it will be already 12th workshop. I still remember the BoF session at OOPSLA 2000, but today domain-specific modeling languages have become widely applied and pretty fashionable topic (see events covering Domain-Specific Modeling Languages at:

The 12th workshop on DSM continues to keep the “work” in the workshop permitting the participants to leave with ideas for what to do next to improve the field. The call for papers and demonstrations is available at:


Video on implementing Language Workbench Challenge 2012

April 05, 2012 21:16:44 +0300 (EEST)

Last week Language Workbench Challenge 2012 allowed me to demonstrate the capabilities of MetaEdit+ to define and use domain-specific modeling languages and code generators. I've implemented the DSM solution for heating application development generating PLC code. My colleague Risto Pohjonen recorded and edited my show and below you can see the results.

The video below shows first the languages used and then how they were implemented. I've also run the generators integrating the generated code to the heating platform code in the PLC IDE. If you want to try the languages and generators yourself, you may download the repository (for version 5.0) or read how the implementation was done. Implementing the modeling languages took a day, and the various generators a bit more than 1 day.


Workshop on Graphical Modeling Language Development

January 24, 2012 12:56:45 +0200 (EET)

I’m co-organizing a workshop on developing graphical modeling languages. This workshop is highly relevant because good languages influence a lot on how well the models fill their purpose.

In the workshop we want to cover all aspects of modeling language development, including definition, testing, evaluation and maintenance. Along the growing interest in domain-specific languages we do not address only those languages that target developers but look also languages for test engineers, interaction specialists, persons responsible for configuration and deployment etc. With the above examples I should also add here language developers as a language users ;-)

Workshop is organized in Denmark as a part of ECMFA. See the full workshop description and call at


Putting the domain back to the language (part 4)

December 05, 2011 16:09:40 +0200 (EET)

While reading again Martin Fowler’s DSL book I realized that I never published any versions of my “Gothic Security Language” – unlike I promised. While Steven Kelly already gave several practical guidelines to improve the existing state diagram language I decided to start from the scratch in order to put the domain back to the language. In other words, create a language that is focused on the problem domain.

After looking the original descriptions, like:
“Miss Grant has a secret compartment in her bedroom that is normally locked and concealed. To open it she has to close the door, open the second draw in her chest, turn her bedside light on - and then the secret panel is unlocked for her to open.“

i wanted to raise the level of abstraction as high as I saw it possible. To do that I was thinking the customer of Gothic Security Inc as a language user who could then define own ways to use secret panels. This led me to immediately abandon the use of codes like ‘DIUL’, ‘PNLK’ or ‘D2OP’. Similarly I was ready to throw away concepts like ‘State’, ‘Command’, ‘Transition target’ etc. They are not mentioned in the system description above either. What is mentioned are the domain concepts like ‘Chest’, Door’, ‘Open’, ‘Light on’ etc. that I could use directly as candidate concepts in the language. Note that when using a metamodel-based tool, MetaEdit+ in my case, I could always add ‘States’ etc. if needed. But now Miss Grant’s system as described above doesn’t need them.

To identify language concepts I conducted a domain analysis: investigated what are similarity and variability among the control access systems of Gothic Security. Note that I did not conduct a domain analysis for the state machines but to the problem domain. The input for the analysis was the three customer systems (Miss Grant, Mr G, Mr C) but we could easily extend this to look future possible needs too. Naturally the more we would have example systems the better.

The feature model below describes some of the main variability among the three systems. A control system may have an alarm action and possibly an overriding lock. There must be, however, a number of events occurring in relation to the furniture in the room to open the secret panel.

feature model of Gothic Security Systems

Since most variability among the systems of Miss Grant, Mr. G and Mr C are on behavior the feature models can’t be applied more than for the preliminary analysis on some variation. The variation that is most visible for the user, like order of events and the ways how the operations with the furniture etc., can’t be recognized in feature models at all.

To properly conduct domain analysis we also need to specify different control structures and how the system reacts on events occurring in different order and how it triggers actions. These are the most visible parts how the different installations vary. While analyzing the system more we see variability like:

  • The order how events may occur vary
  • The number of times an event is repeated varies (e.g. lights can be set on and off many times, or door can be opened and closed multiple times).
  • The system can handle more than one door and the door can be located anywhere in the house.

These kind of variations we can specify in the metamodel (aka in the language specification). Some things are not completely clear to finalize the domain analysis, like how alarm actually operates (activation time, muting, shutting down) since it is difficult to find variability if there is only one case ;-) I thus focused on specifying the language to capture functionality used in Miss Grant’s system since the other systems have the similar functionality giving enough data for domain analysis.

The 2 min video below shows the language in use: how the system for Miss Grant is defined. As you can see we do not have anymore a general state machine but a Gothic Security Language. The language is now domain-specific; it raises the level of abstraction, prevents errors on creating illegal systems, and makes development faster.

The language is a result of domain analysis: creating the language from the problem domain rather than creating it from the code framework side. Now the domain is treated as the first class citizen in the language. I believe this language is more fun to use!


Comparing Language Workbenches 2012: assignment published

November 25, 2011 16:42:34 +0200 (EET)

The assignment for Language Workbench Challenge 2012 has been published. The assignment aims to support demonstrating the capabilities of various language workbenches, also known as DSL tools, DSM tools, metaCASE tool, metamodeling tools, metasystems and now lately as language workbenches.

I found the assignment for 2012 particularly interesting as it requires integration of various domain-specific languages, and support for rich notations. While experimenting today the latest beta of coming MetaEdit+ 5.0, I’ve implemented one of the languages, namely Piping and Instrumentation Language (see below). The actual language does not look particularly fancy, but on the other hand the whole purpose of domain-specific languages is to support notations that are already familiar and known to work.

Piping and Instrumentation Diagram supported in MetaEdit+

The implemented language (and editor in MetaEdit+) covers the concepts given in the assignment, visualize the pipes and instruments as people expect, as well as ensures the correctness of the design via the rules set in the metamodel or in model checking reports. The assignment seems to be promising also some late updates and it is then interesting to see how the various tools handle language and related model evolution.


Papers on the industrial use of modeling wanted!

November 16, 2011 15:02:27 +0200 (EET)

European modeling conference ECMFA (European Conference on Modeling, Foundations and Application) runs next year in Denmark (2-5 July). There are two main tracks in the conference: one targeting research and the other applications. Being a program committee chair for the applications track, I’m really hoping to get many papers on industrial use of modeling. See submission guidelines for details.

Keynotes at ECMFA 2012 will be given by Henrik Lönn from Volvo Technology and Ed Seidewitz from Model Driven Solutions. The program includes also sessions for workshops, tutorials, tools and posters.

Thanks to Antonio Vallecillo from Malaga University, we also have a special issue of the Software and Systems Modeling journal coming to publish the extended versions of the best papers of the conference. See the complete call here.


Language Workbench Competition: from scratch to implemented languages and generators

November 09, 2011 14:00:59 +0200 (EET)

For me the value of Language Workbench Competition is to see how different tools can implement domain-specific languages and code generators. I found particularly nice that the organizers want to make things concrete by asking participants to implement an assignment and then show how tools performed.

To my great surprise Steven Kelly was the only person - and MetaEdit+ the only tool - at LWC 2011 which actually implemented the domain-specific modeling languages, generators and model-to-model transformations expected by the assignment. I see it quite strong testimonial on the power of MetaEdit+.

You can follow the implementation of the assignment from the scratch by viewing the video.


A nice comparison of metamodeling languages

October 14, 2011 10:54:20 +0300 (EEST)

The 11th Workshop on Domain-Specific Modeling starts next week (Sunday). As in the past the proceedings are available online. Among the papers my favorite is “Towards a Comparative Analysis of Meta-Metamodels” by Heiko Kern, Axel Hummel and Stefan Kühne for several reasons. The paper:

  • is among the few that describes many different metamodeling languages (metametamodels)
  • covers wide range of tools (ARIS, EMF Ecore, GME, MetaEdit+, MS DSL Tools and MS Visio)
  • is based on deep knowledge and experience on various metametamodels

The last point is particularly important since the comparison is not based on plain conceptual work as authors have actually implemented various bridges between the metametamodels and related tools, like between ARIS and EMF, MetaEdit+ and EMF and Visio and EMF.

I strongly recommend reading it for everybody interested in defining modeling languages.


Who should define your modeling language and code generators: Poll results

September 23, 2011 16:24:29 +0300 (EEST)

During the panel at Code Generation 2011 themed “Build or Buy: Who should develop your DSL and generators?” I had an opportunity as a panel chair to ask a view from the audience. A simple raise-your-hand poll seemed feasible for 44 persons. The question was shown to the audience and the totally unscientific research part can be listened here (2 min).

The poll showed that far the biggest group of people was those wanting to define their own modeling languages and code generators. No surprise being a poll at Code Generation conference.

Poll results at Code Generation 2011

The truth is that I was expecting to see more self-made man attitude. The opinion of the panel audience did not much differ from what we’ve seen earlier. For example, randomly selected software industry technology managers in Germany speaking Europe gave similar results. That study, made as a part of our market research, was much better conducted (random selection of participants, no influence from others, one-to-one call, n > 100 etc.). Perhaps the similarities among the opinions (shown side by side below) say something about the popularity of the choices or that there are not big differences among the Code Generation 2011 participants and rest of the world…

Results from two studies

It was not discussed in the panel, but when looking from the perspective of metamodel-based tools all the options are still open and most importantly can be changed if needed.


Industry experiences on modeling with DSLs

September 19, 2011 16:36:59 +0300 (EEST)

This year the industry conference on product lines, High-Tech Product Lines, has three talks that directly address Domain-Specific Modeling. Markus Völter presents the concepts, tools and experiences. Jos Warmer and Simon Ball describe a case on an insurance product line. This is particularly interesting for me since I’ve been involved in this domain too - actually we reported one insurance product modeling case in the book (20 pages in DSM book).

I’ll present experiences from four different companies and domains focusing mostly on ROI. First we'll look the investment side: How much effort it took from the companies to define the modeling languages and generators? This is followed by looking the outcome: was it worth? Did the development productivity or quality increase or did the time-to-market improve? I tried to pick cases which have a domain that is easy to grasp and that there is also public data available to backup my talk.

See the whole conference program at Hope to meet you in Veldhoven.

Previous Next (130 total)