Modeling language

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Steven Kelly (talk | contribs) at 23:38, 1 August 2006 (Corrected DSM double redirect). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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.

Although modeling languages are commonly composed of 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 languages applied with proper tool support, however, are expected to automate system verification, validation, simulation and code generation from the same pictorial representations.

Not all modeling languages are executable, and for those that are, the use of them doesn't necessarily mean that programmers are no longer required. On the contrary, executable modeling languages are intended to amplify the productivity of skilled programmers, so that they can address more challenging problems, such as parallel computing and distributed systems.

A large number of modeling languages appear in the literature. Here we focus on industry standards with extensive tool support:

  • 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 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.
  • SysML is a Domain-Specific Modeling language for systems engineering that is defined as a UML profile (customization).

See also