Roadmap: How to use DSM
DMS is a practice of generating software with use of modeling language specific to domain.
Main Description

Getting started

The idea of DSM is to generate full code of software on the base of abstract model of problem. Using practice can be easily integrated into classical Open Unified Process. Practice introduced DSM workshops which can be prepared by during work on architecture, and be a investigation if stakeholders, our team accept the concept. During rest of the phases we incrementaly build domain language, framework and code generator.
First we create very small and narrow meta-model and try to use it in company, it will be itself a proof of concept and check if it's possible to use the concept in specific domain. It's good idea to use working example during dsl workshops.
Then we create pilot product which embrace the wider part of selected domain, on this stage even if project fail we still take profit of deeper understandin our project domain.
From this point we try to use our new language in project, incrementaly improving it. New requirements may show up, and the domain will probably also change due to the changes in law. The key of effectivity is to keep the right proportions between domain language, framework and generator.

 Common pitfalls

Wrong domain
DSM cannot be used in every type of projects, There is a need of using it in solutions witch varies but are designed in the same narrow domain, like on board computers in car industry.

Inmature domain
Creating Domain Specific Modeling Language requires maturity of selected problem domain. Domain which is poorly recognied is very often problematic in defining domain specific language, which also causes problems in genating final code.

Wrong level of abstraction
Due to the lack of experience in practice and domain, we can define the language which will be on too high or too low level of abstraction. In both cases gathering informations from model by a generator will be a problem.