4urIT Made with Xara 4urIT - address future IT challenges today! Managing complexity requires to find the right level of abstraction. But, what is the right level of abstraction? Modeling is a good way to identify this level. Use your favorite general purpose modeling language and build a model which just expresses the problem space. What you get is a meta model - a model which describes the concepts of relevance to your domain. Try the model and make a few examples (instances of the model) to verify your work. Once you have the meta model you have cone a first step towards a domain specific language - actually the result is the semantic model of the language. Add a concrete syntax to your model. Such a concrete syntax can be textual or graphical. A DSL workbench simplifies this and also provides additional support like a generated context sensitive editor - an editor just tailored to the domain of interest. A Domain Specific Language (DSL) is a computer language which is specific to a particular problem. It's only purpose is to provide the right level of abstraction required to model the inherent complexity of the domain in focus. The art is to focus on those aspects which are required and ignore the rest.