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:
- Deriving language concepts from the code rather than the problem domain, leading to languages that don't raise the level of abstraction.
- Failing to consider the real-life usage of the language when building it, making model creation and maintenance hard work.
- 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:
- Worst Practices for Domain-Specific Modeling
- IEEE Software special issue on DSM
- Tutorials on DSM
- From the forums: calculating values to display in a symbol
- Webinars on creating Domain-Specific Modeling languages with MetaEdit+
- Upcoming events
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:
- 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!
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


