Modeling language: Difference between revisions

Content deleted Content added
YurikBot (talk | contribs)
m robot Adding: de:Modellierungssprache
Kobryn (talk | contribs)
m fixed errors and inconsistencies, added links, removed dead link
Line 1:
A '''modeling language''' is any [[language]] that supports the representation of a system by abstractions that are meaningful from the viewpoint (perspective) of a system stakeholder. The term is defined loosely, since it is applied broadly to many disciplines, including [[computer science]], [[information management]], [[business process modeling]], [[software engineering]], and [[systems engineering]]. Modeling languages can be used to specify system requirements, structures and behaviors. Modeling languages are intended to be used to precisely specify systems so that stakeholders (e.g., customers, operators, analysts, designers) can better understand the system being modeled.
In [[computer science]] and allied fields of [[information management]] and [[business process modeling]], '''modeling languages''' enable [[software architecture|software architect]]s, [[business analyst]]s, and others to specify the requirements of an organizational or software system on a 'top' or architectural level. These languages seek to diagrammatically render system requirements in a manner that management, user groups, and other stakeholders can understand, with a goal of eliciting feedback from these groups.
 
Although modeling languages are commonly composed of [[diagramming technique|diagram techniques]], the more mature modeling languages are expected to be more than the sum of their parts in terms of precision, consistency and executability. Informal diagramming techniques applied with drawing tools are expected to produce useful pictorial representations of system requirements, structures and behaviors, but not much else. Executable modeling langauges applied with proper tool support, however, are expected to automate system [[verification]], [[validation]], [[simulation]] and [[code generation]] from the same pictorial representations.
What distinguishes modeling languages from [[diagramming technique]]s, is in their ability to produce executable and testable software artifacts and simulations. Whereas a diagramming technique ends with a pictorial representation of user requirements, a modeling language enables the production of software artifacts from these representations. Tool support in modeling languages includes source code generators, debuggers, and means of simulating the behavior of these systems in action. Since the mid 1990's, tool support also started to include [[model checking]] and other means of [[software verification]].
 
AlthoughNot one secondary goal ofall modeling languageslangauges aimsare toexecutable, supportand programmingfor withoutthose programmersthat are, historicallythe softwareuse developersof havethem becomedoesn't involvednecessarily oncemean thethat requirementsprogrammers are specificationno islonger completerequired. On Increasedthe software complexitycontrary, particularlyexecutable themodeling abilitylanguages are intended to provideamplify softwarethe supportproductivity forof concurrencyskilled requiresprogrammers, knowledgeso ofthat they can address more challenging problems, such as [[parallel computing]] and [[distributed system]]s.
 
A large number of modeling languages appear in the literature,. however,Here thewe mostfocus notableon languagesindustry arestandards ones having the mostwith extensive tool support. As of 2006 these include:
 
* [[Unified Modeling Language]] (UML) incorporates a wide variety of diagramming techniques and topologies. Its extensive underlying tool support enables specifications written using one technique or 'view' to be transparently converted and rendered in another view, eventually resulting in executable artifacts.
 
* [[Unified Modeling Language]] (UML) is a [[general-purpose modeling]] language that is the industry standard for specifying software-intensive systems. UML 2.0, the current standard, supports thirteen different diagram techniques, and has widespread tool support.
* [[Petri net]]s use variations on exactly one diagramming technique and topology, namely the [[bipartite graph]]. The simplicity of its basic user interface easily enabled extensive tool support over the years, particularly in the areas of model checking, graphically-oriented simulation, and software verification.
 
* [[IDEF]] is a family of modeling languages, the most notable of which include IDEF0, for functional modeling, and IDEF1 for information modeling.
* [[SysML]] is a [[___domain-specific modeling]] language for [[systems engineering]] that is defined as a UML profile (customization).
 
* [[SysML]] is a modeling language, based on UML, that addresses the need of [[System Engineering]].
 
* [[ATLAS Transformation Language|ATL]] is also a modeling language (because an ATL program is a model conforming to a precise metamodel). However this is a '''Domain Specific Modeling Language''', intended for a precise task [[model transformation]]. This may be contrasted to the [[Unified Modeling Language]] which is a '''General Purpose Modeling Language'''. [[ATLAS Transformation Language|ATL]] is a model transformation language of the [[QVT]] family.
 
* [[SPEM]]: '''Software Process Engineering Metamodel'''. Developed by the Object Management Group [[OMG]], SPEM is a [[Meta-Object Facility]] Metamodel for defining processes and their components. This Metamodel is used to describe a concrete software development process or a family of related software development processes. However, Process enactment is outside the scope of SPEM. A typical tool based on SPEM will be for process authoring and customizing. The purpose of SPEM is to support the definition of software development processes specifically including those processes that involve or mandate the use of [[Unified Modeling Language|UML]].
 
* [[Energy Systems Language]]: Deveoped by [[Systems Ecology|Systems Ecologist]] [[Howard T. Odum]] for modeling the energetics of ecological systems. This language was extended to include economic systems and paved the way for the foundations of many disciplines including [[ecological economics]], [[Biophysical economics]], [[ecological engineering]] and many others.
 
==See also==
Line 26 ⟶ 17:
* [[Meta-modeling|Metamodeling]]
* [[Model-driven architecture|Model Driven Architecture]] (MDA is an OMG Trademark)
* [[General-purpose modeling]] GPM
* [[Model Integrated Computing]] (MIC)
* [[Domain-specific modelling]] (DSM)
* [[Model-based testing]] (MBT)