« Software Factory: The ABC of DSM | Main | Orcas is now Visual Studio 2008 »

Software Factory: Meta-Model - The "Eats, Shoots & Leaves" of DSM

Life is all about using the right punctuations in your language. Between "Spare him, not kill him" and "Spare him not, kill him" there's as much difference as between life and death, albeit the same bunch of words.

It's the grammar which matters in your language. Adopt the right rules of grammar to convey the right message, or you’ll end up trying to teach stone-age men to read Shakespeare.

In its simplest form, a Meta-Model is the grammar that defines your business. Like any kid who can speak perfect English, a Meta-Model can be defined by anyone who knows the grammar of their business – typically any business user. A Meta-Model is a model to define the model. A Meta-Model definition tool (like the one provided by Microsoft DSL Tool kit) lets you define the rules of the business.

Consider the business of a restaurant with concepts such as – Menu, Recipe, Caterer, Buffet and Happy Hours. The Factory architect works with the business domain expert to define the Meta-Model.

The ideal Meta-Model  consists of Shapes that represent each of the domain concepts, Connectors that define all possible relationships between those concepts ("a specific Menu always relates to Happy-Hours"), Business Rules to be enforced over these concepts ("Happy-Hours is always between 12 noon and 5 PM"), specific Attributes of each of the concepts ("the Buffet has a pre-defined choice of soups"), Actions to be taken during or after the creation of an instance of a model (events, generation of artifacts).

So it’s like everything your mother tongue is composed of. Except that it speaks the language of business. The Factory architect defines all these elements comprising the language of his business and deploys them, so that the business user can use them to draw models representing business processes and other domain specific activities.

Creating an appropriate Meta-Model is the fundamental of effective Domain-Specific Modeling strategy. Like a good compiler optimizes your source code in the best possible way, a good Meta-Model mixes the scope and scale of business in the right proportion to let the business create highly Self-Explanatory models.

A Self-Explanatory model is one which is readily understandable by a human reader, and is also easy enough for the code (or artifact) generation tools to parse and generate usable and extendable artifacts from the model.

In the next post, I'll discuss the different types of Meta-Models.

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/apps/mt-tb.cgi/1712

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter