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.
  |