Modeling language

From Free net encyclopedia

In computer science and allied fields of information management and business process modeling, modeling languages enable software architects, business analysts, 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.

What distinguishes modeling languages from diagramming techniques, 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.

Although one secondary goal of modeling languages aims to support programming without programmers, historically software developers have become involved once the requirements specification is complete. Increased software complexity, particularly the ability to provide software support for concurrency requires knowledge of parallel computing and distributed systems.

A large number of modeling languages appear in the literature, however, the most notable languages are ones having the most 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.
  • Petri nets 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.
  • 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. 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 UML.


See also