Domain-Specific Modeling tool Domain-Specific Modeling top 2 logo Domain-Specific Modeling top3 image
English Deutsch Japanese

MetaCase Newsletter 2009/3

September 2009

Worst Practices for Domain-Specific Modeling

While interest in creating Domain-Specific Modeling (DSM) languages is surging, more guidance is needed on how to do it right. Along with heeding best practices, learning what not to do-including how to handle common pitfalls and recognize troublesome areas-can help first-time developers. 

MetaCase have consulted on hundreds of modeling languages over the years. From this experience Steven Kelly and Risto Pohjonen identified 20 worst practices. Their analysis is based on a sample of 76 DSM cases spanning 15 years, four continents, several tools, around 100 language creators, and projects with from 3 to over 300 modelers. The results are published in IEEE Software, July/August 2009. 

Among the worst practices, the three most common were:

  1. Deriving language concepts from the code rather than the problem domain, leading to languages that don't raise the level of abstraction. 
  2. Failing to consider the real-life usage of the language when building it, making model creation and maintenance hard work. 
  3. Not updating the language anymore after successful adoption, letting it stagnate and become out of sync with the real world.

You can read the full article here, compliments of MetaCase.


In this issue:


IEEE Software special issue on DSM: UML v DSM, industry cases

IEEE Software has dedicated their July/August issue to Domain-Specific Modeling. The issue explores how mature domain-specific techniques address issues of efficiency, integration, maintainability, and reliability. Among the articles one interesting study compares DSM and UML: 

"Are Domain-Specific Models Easier to Maintain Than UML Models?" shows that it is significantly faster and easier to update models in a DSM language than UML models. Controlled tests with 64 developers show that updating models in UML takes about twice as long as for DSM - and that's just for the modeling. With DSM, the full code could be generated instantly from the updated models, whereas with UML the code would still have to be updated largely by hand, making the overall figure even larger. 

Other papers in the special issue include cases from various domains: home automation, medical, business support, telecommunications and product lines. The introduction to the Domain-Specific Modeling issue is available to download at no cost from http://doi.ieeecomputersociety.org/10.1109/MS.2009.92 and other articles are available/can be purchased from the IEEE Computer Society Digital Library
(http://www2.computer.org/portal/web/csdl/abs/mags/so/2009/04/mso200904toc.htm).


DSM tutorials this autumn

Domain-Specific Languages and Model-Driven Development have moved from scattered successes, through industry hype, to increasingly widespread practical use. The main questions are no longer what or why, but where and how. MetaCase provides tutorials teaching how DSM can best be used, where to apply it, how to create domain-specific modeling languages and code generators, and how to integrate generated code with legacy or manually-written code. 

Tutorials, varying in length from a couple of hours to half a day, are given at: 

In addition to public tutorials MetaCase also provides on-site training for creating and using Domain-Specific Modeling languages and generators. A 2 day program is customized to fit the individual company needs.


From the forums: calculating values to display in a symbol

When you have a question, the MetaEdit+ Web Forums 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 1000 times in the last year. Topics range from beginner questions to advanced techniques and practices - and you always get answers, often from the MetaEdit+ developers themselves! 

This issue's highlighted topic comes from KG who asks about accessing properties with MERL generator script. 

***

Hi everybody! 

I having problem to retrieve some properties from an object. 

Let's say I have three objects 

Object 1 has properties: name, type and time. 
Object 2 has properties: accuracy, max and min. 
Object 3 has properties: Object 1, Object 2 and isTriggered. 

In my graph I create Object 3 and I also create new object 1 & 2 for object 3. 

In my generator I want to access Object 3 properties. My problem is that I don't know how to get the Object 1&2 properties. I only get the type and the first property for object 1&2.
________ 

Hi, 

How about the following generator script: 

Report 'Object3 properties' 
foreach .object3 

    do :object1 { 
        do :() { id ' ' type newline} 
    } 
    do :object2 { 
        do :() { id ' ' type newline} 
    } 
    :isTriggered ' ' type 

endreport 

object1 (as a first property of object3) is handled with lines 4-6, object2 with lines 7-9 and line 10 produces the Object3's 'isTriggered' value + property type.

*** 

See other topics from the MetaEdit+ Web Forum here.


Free Webinars: Domain-Specific Modeling with MetaEdit+

The 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: 

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!


Upcoming events - see you there!

Meet our experts and see a demonstration of Domain-Specific Modeling with MetaEdit+ at any of the following events:

Software Architect, 29 September - 1 October, London, UK 

DSM&MDA Seminar, 1 October, Helsinki, Finland 

ITARC E-Summit: Model-Oriented Architecture, 6 October (webinar) 

Practical Product Lines, 20-21 October, Amsterdam, the Netherlands

DSM workshop, 25-26 October, Orlando, Florida, USA

OOPSLA 2009, 25-29 October, Orlando, Florida, USA

Embedded Technology 2009, 18-20 November, Yokohama, Japan


Contact information

MetaCase International · Ylistonmaentie 31 · FI-40500 Jyvaskyla · Finland
MetaCase USA · 5605 North MacArthur Blvd. · 11th Floor · Irving, TX 75038