Following the same direction of MDD and addressing specific problem domains, there is the
Domain-Specific Modeling (DSM) (Kelly & Tolvanen, 2008). In DSM the application’s models
are built by using Domain Specific Languages (DSLs) (Sadilek, 2008), which can be defined
through metamodels that represent the knowledge of a particular domain. The use of DSLs for
modeling, rather than general purpose languages like the Unified Modeling Language (UML),
allows the expression of solutions in the language and abstraction level of the problem
domain. This reduces efforts in translating the concepts of that domain into concepts of the
computational solution (Chavarriaga & Macías, 2009). Thus, in DSM the models become more specific and complete, and resources such as frameworks, design patterns and components are
included in the modeling in order to generate more code with better quality.