Content deleted Content added
Rescuing 1 sources and tagging 0 as dead. #IABot (v1.5.2) |
No edit summary Tags: references removed Visual edit Mobile edit Mobile web edit |
||
Line 1:
'''Domain-specific modeling''' ('''DSM''') is a [[software engineering]] [[Methodology (software engineering)|methodology]] for designing and developing systems, such as [[computer software]]. It involves systematic use of a
Domain-specific modeling languages tend to support higher-level [[Abstraction (computer science)|abstractions]] than [[general-purpose modeling]] languages, so they require less effort and fewer low-level details to specify a given system.
== Overview ==
Domain-specific modeling often also includes the idea of [[Automatic programming|code generation]]: [[Automation|automating]] the creation of executable [[source code]] directly from the ___domain-specific language models. Being free from the manual creation and maintenance of source code means ___domain-specific language can significantly improve developer productivity.<ref name="dsmKelly">Kelly, S. and Tolvanen, J.-P., (2008) ''Domain-Specific Modeling: Enabling Full Code Generation,'' John Wiley & Sons, New Jersey. {{ISBN|978-0-470-03666-2}} [http://dsmbook.com]</ref> The reliability
Domain-specific language differs from earlier code generation attempts in the [[Computer-aided software engineering|CASE]] tools of the 1980s or [[Unified Modeling Language|UML]] tools of the 1990s. In both of these, the code generators and modeling languages were built by tool vendors.
Having the modeling language and generator built by the organization that will use them allows a tight fit with their exact ___domain and needs. It also reduces the time needed for developers to learn the modeling language, since it can use familiar terms and concepts. Finally, since only one organization's requirements need be taken into account, it is easier for the modeling language to evolve in response to changes in the ___domain.
Line 15:
=== Defining ___domain-specific language languages ===
To define a language, one needs a language to write the definition in. The language of a model is often called a
Derived meta-metamodels include [[Entity-relationship model|entity relationship diagrams]], [[formal languages]], [[extended Backus-Naur form]] (EBNF), [[Ontology language (computer science)|ontology languages]], [[XML schema]], and [[Meta-Object Facility]] (MOF). The strengths of these languages tend to be in the familiarity and standardization of the original language.
The ethos of ___domain-specific modeling favors the creation of a new language for a specific task, and so there are unsurprisingly new languages designed as meta-metamodels. The most widely used family of such languages is that of OPRR,<ref name="oprrWelke">R.J. Welke. The CASE Repository: More than another database application. In W.W. Cotterman and J.A. Senn, editors, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University. [http://www.dsmforum.org/papers/CASE_Repository.html]
</ref>GOPRR,and GOPPRR, which focus on supporting things found in modeling languages with the minimum effort.
=== Tool support for ___domain-specific language languages ===
Line 29:
Using a ___domain-specific language environment can significantly lower the cost of obtaining tool support for a ___domain-specific language, since a well-designed ___domain-specific language 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 ___domain-specific language environment provides a modeling tool tailored for the target ___domain.
Most existing ___domain-specific language takes place with ___domain-specific language environments, either commercial such as [[MetaEdit+]] or [[Actifsource]], open source such as [[Generic Eclipse Modeling System|GEMS]], or academic such as [[Generic Modeling Environment|GME]]. The increasing popularity of ___domain-specific language has led to ___domain-specific language frameworks being added to existing IDEs, e.g.
== Domain-specific language and UML ==
Line 49:
==References==
== External links ==
*
*
*
*
[[Category:Programming language topics]]
|