Site Archive (Complete)
Architecture Blog: Domain Specific Modeling
Architecture & Design
PATTERN LANGUAGE

Modeling, Managing, Making it Right.

by Jonathan Erickson
IF YOU BUILD IT

... Will they Come?

by Arnon Rotem-Gal-Oz
May 24, 2006

Domain Specific Modeling

Domain Specific Modeling (DSM) is about distilling domain knowledge into a meta-modeling language (using a meta-meta-modeling language). The resulting language can be used to describe domain problems (with appropriate tooling). The idea is to take the resulting designs and, through the use of frameworks and code generation, create applications (with better results compared with traditional approaches).

For example MOF is used to describe UML 2.0. A class diagram (a domain-specific language for describing classes) is used to model C# or Java classes. Through the use of simple template you can actually generate the class definition code in the language of your choice. The raison d’ętre of DSMs, however, is not to create general-purpose constructs, but rather languages that can be used to generate application (or application fragments) in specific vertical domains (for example, creating a language that can be used to create/define telecom billing applications).

There is one general attempt at achieving the DSM dream--OMG's MDA initiative. (There are tools from several vendors that support this effort. I have experience with three of them: CodaGen, Rational Suite, and I-Logix Rhapsody). Using MDA, you define platform independent models (PIMs) which are made domain specific using a UML profile.

Another approach is to create real domain--specific languages. There are a few vendors with offerings in this field. Honeywell (DOME), MetaCase (Method Workbench & MetaEdit+), and an open source product called GME. For more on domain-specific modeling and MetaCase's approach, see "Domain-Specific Modeling" by Risto Pohjonen and Steven Kelly.

The newest player in this market is Microsoft with its Software Factories initiative. As is common with Microsoft, its goal is to bring the idea of DSLs to masses. For more on Microsoft's approach, see "Domain-Specific Languages & DSL Workbench" by Griffin Caprio.

Sometime ago I opined on the current state of Software Factories. The gist of that post is that distilling domain knowledge to the point of making it into a language is hard in general, and Microsoft's Software Factories initiative in particular is still far from really helping in that area. It is interesting to note that Guy Ron, MCS manager in Israel voiced similar thoughts in TechEd Israel (as reported by Roy Osherove ). Steven Kelly (CTO of MetaCase mentioned above) also blogged about that (here and here).

At the end of the day, DSLs and Domain Specific Modeling is a good direction for the industry to strive for. However, I stand by my opinion that DSLs are still far away from gaining general acceptance. One problem is proper tooling (which is getting better and better). The other, more significant problem is with synthesizing languages from a domain.

Posted by Arnon Rotem-Gal-Oz at 05:55 PM  Permalink




 
INFO-LINK


Related Sites: DotNetJunkies, SD Expo, SqlJunkies