Misplaced Pages

Domain-specific modeling: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 22:34, 1 August 2006 editSteven Kelly (talk | contribs)176 edits Eclipse removed from See Also: not itself relevant for DSM (EMF etc. in links section)← Previous edit Revision as of 22:41, 1 August 2006 edit undoSteven Kelly (talk | contribs)176 edits Added MetaEdit+ back to links - we didn't put it there. NPOV does not favour open source over commercialNext edit →
Line 40: Line 40:
* GMF provides a set of open-source tools to build DSM editors. * GMF provides a set of open-source tools to build DSM editors.
* EMF provides partial support for DSM. * EMF provides partial support for DSM.
* DSM environment from MetaCase
* A web community dedicated to SysML, a DSM language for systems engineering applications with widespread modeling tool support.
* A web dedicated to ], a DSM language for modeling complex physical systems. * A web dedicated to ], a DSM language for modeling complex physical systems.
* A web community dedicated to SysML, a DSM language for systems engineering applications with widespread modeling tool support.
*Article "" *Article ""
*Article "" *Article ""

Revision as of 22:41, 1 August 2006

Domain-Specific Modelling (DSM) is the systematic use of a Domain Specific Language (DSL) to represent the various facets of an object or a system. DSM languages tend to support higher level abstractions than DSLs, and may or may not be executable.

Modeling tools that support executable DSM languages can automate the generation of executable source code from higher-level abstractions, which can significantly improve developer productivity. This is possible because each DSM language and code generator are defined for a particular domain by a domain expert.

One way to define a DSM language is to use a metalanguage like the OMG's Meta-Object Facility (MOF). The Eclipse community is supporting DSMs and MOF in its Eclipse Modeling Project (EMP). The Eclipse Modeling Framework (EMF) includes a pragmatic implementation of MOF, and the Graphical Modeling Framework (GMF) supports the development of DSM tools.

Getting tool support for new DSM languages

Many General-Purpose Modeling languages already have tool support available in the form of CASE tools. DSM languages tend to have too small a market size to support the construction of a bespoke CASE tool from scratch. Instead, most tool support for DSM languages is built based on existing DSM frameworks or through DSM environments.

A DSM environment may be thought of as a metamodeling tool, i.e., a modeling tool used to define a modeling tool or CASE tool. The resulting tool may either work within the DSM environment, or less commonly be produced as a separate stand-alone program. In the more common case, the DSM environment supports an additional layer of abstraction when compared to a traditional CASE tool.

Using a DSM environment can significantly lower the cost of obtaining tool support for a DSM language, since a well-designed DSM environment will automate the creation of program parts that are costly to build from scratch, such as domain-specific editors, browsers and components. The domain expert only needs to specify the domain specific constructs and rules, and the DSM environment provides a modeling tool tailored for the target domain.

DSM example

DSM languages can usually generate a range of abstraction levels for a particular domain. For example, a DSM language for mobile phones should allow users to specify high-level abstractions for the user interface, as well as lower-level abstractions for the implementation of logic gates. Likewise, a DSM language for financial services should permit users to specify high-level abstractions for clients, as well as lower-level abstractions for implementing stock and bond trading algorithms.

Comparison between DSM languages and UML

The Unified Modeling Language (UML) is a general-purpose modeling language for software-intensive systems that is designed to support mostly object oriented programming. Consequently, in contrast to DSM languages, UML is used for a wide variety of purposes across a broad range of domains.

However, the UML includes a profile mechanism that allows it to be constrained and customized for specific domains and platforms. UML profiles use stereotypes, tagged values and constraints to restrict and extend the scope of UML to a particular domain. Perhaps the best known example of customizing UML for a specific domain is SysML, a DSM language for systems engineering.

Formal languages and libraries

Formal languages provide a rigorous basis for defining DSM languages. DSM languages can also be defined using EBNF, Ontology languages, XML Schema, MOF, etc. Although no large library of DSM languages is yet available, a large library of DSLs is available in the Eclipse metamodel open source library.

See also

External links

Categories: