Domain-specific modeling: Difference between revisions

Content deleted Content added
m Replace magic links with templates per local RfC and MediaWiki RfC
per MOS:BOLDSYN
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 language]] to represent the various facets of a system.
 
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 (DSM) 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 of automatic generation compared to manual coding will also reduce the number of defects in the resulting programs thus improving quality.
 
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.{{fact|date=November 2012}} While it is possible for a tool vendor to create a ___domain-specific language and generators, it is more normal for ___domain-specific language to occur within one organization. One or a few expert developers creates the modeling language and generators, and the rest of the developers use them.