Content deleted Content added
Removed abbreviations as much as possible |
RandFreeman (talk | contribs) Importing Wikidata short description: "Software engineering methodology" |
||
(36 intermediate revisions by 28 users not shown) | |||
Line 1:
{{Short description|Software engineering methodology}}
'''Domain-specific modeling''' ('''DSM
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
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
Having the modeling language and generator built by the organization that will use them allows a tight fit with their exact ___domain and
Domain-specific
== Topics ==
=== Defining ___domain-specific
To define a language, one needs a language to write the definition in. The language of a model is often called a [[metamodeling|metamodel]], hence the language for defining a modeling language is a meta-metamodel. Meta-metamodels can be divided into two groups: those that are derived from or customizations of existing languages, and those that have been developed specifically as meta-metamodels.
Derived meta-metamodels include [[
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
</ref><ref name="oprrSmolander">Smolander, K., (1992) OPRR - A Model for Modeling Systems Development Methods. In: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Amsterdam, Netherlands, pp. 224-239.[
=== Tool support for ___domain-specific
Many [[General-Purpose Modeling]] languages already have tool support available in the form of [[Computer-aided software engineering|CASE]] tools. Domain-specific language 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 ___domain-specific language languages is built based on existing ___domain-specific language frameworks or through ___domain-specific language environments.
A ___domain-specific language 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 ___domain-specific language environment, or less commonly be produced as a separate stand-alone program. In the more common case, the ___domain-specific language environment supports an additional layer of [[Abstraction (computer science)|abstraction]] when compared to a traditional CASE tool.
Using a ___domain-specific language environment can significantly lower the cost of obtaining tool support for a ___domain-specific
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. [http://www.eclipse.org/modeling/ Eclipse Modeling Project] (EMP) with [[Eclipse Modeling Framework|EMF]] and [[Graphical Modeling Framework|GMF]], or in Microsoft's [https://web.archive.org/web/20060423095834/http://msdn.microsoft.com/vstudio/
== Domain-specific language and UML ==
Line 36 ⟶ 37:
UML includes a profile mechanism that allows it to be constrained and customized for specific domains and platforms. UML profiles use [[Stereotype (UML)|stereotypes]], stereotype attributes (known as tagged values before UML 2.0), 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 ___domain specific language for [[systems engineering]].
UML is a popular choice for various model-driven development approaches whereby technical artifacts such as source code, documentation, tests, and more are generated algorithmically from a ___domain model. For instance, application profiles of the legal document standard [[Akoma Ntoso]] can be developed by representing legal concepts and ontologies in UML class objects.<ref>{{Cite book |last=Flatt |first=Amelie |title=Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas |last2=Langner |first2=Arne |last3=Leps |first3=Olof |publisher=Sprinter Nature |year=2022 |isbn=978-3-031-14131-7 |edition=1st |___location=Heidelberg |language=en}}</ref>
==See also==▼
▲== See also ==
* [[Computer-aided software engineering]]
* [[Domain-driven design]]
Line 48 ⟶ 51:
* [[Service-oriented modeling#Discipline-specific modeling|Discipline-Specific Modeling]]
== References ==
{{Reflist}}
== External links ==
* [http://www.itarchitect.co.uk/articles/display.asp?id=161 Domain-specific modeling for generative software development] {{Webarchive|url=https://web.archive.org/web/20100131064439/http://www.itarchitect.co.uk/articles/display.asp?id=161 |date=2010-01-31 }}, Web-article by Martijn Iseger, 2010
* [https://web.archive.org/web/20151118021655/http://www.pocomatic.com/docs/whitepapers/dsm/ Domain Specific Modeling in IoC frameworks] Web-article by [[Ke Jin]], 2007
* [http://www.methodsandtools.com/archive/archive.php?id=26 Domain-Specific Modeling for Full Code Generation from Methods & Tools] Web-article by Juha-Pekka Tolvanen, 2005
* [http://www.methodsandtools.com/archive/archive.php?id=50 Creating a Domain-Specific Modeling Language for an Existing Framework] Web-article by Juha-Pekka Tolvanen, 2006
Line 59 ⟶ 62:
[[Category:Programming language topics]]
[[Category:Simulation programming languages]]
|