Modeling language: Difference between revisions

Content deleted Content added
MDE (talk | contribs)
No edit summary
Citation bot (talk | contribs)
Add: authors 1-1. Removed URL that duplicated identifier. Removed access-date with no URL. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 789/990
 
(237 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description| Notation expressing information under a rule set}}
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.
A '''modeling language''' is a notation for expressing [[data]], [[information]] or [[knowledge]] or [[system]]s in a [[structure]] that is defined by a consistent set of rules.
 
A modeling language can be graphical or textual.<ref>{{Cite conference |last1=He |first1=Xiao |last2=Ma |first2=Zhiyi |last3=Shao |first3=Weizhong |last4=Li |first4=Ge |title=31st Annual International Computer Software and Applications Conference - Vol. 1- (COMPSAC 2007) |date=July 2007 |chapter=A metamodel for the notation of graphical modeling languages |volume=1 |pages=219–224 |doi=10.1109/COMPSAC.2007.27|isbn=978-0-7695-2870-0 |citeseerx=10.1.1.526.5321 }}</ref> A graphical modeling language uses a [[diagramming technique]] with named symbols that represent concepts and lines that connect the symbols and represent relationships and various other graphical notation to represent constraints. A textual modeling language may use standardized keywords accompanied by parameters or natural language terms and phrases to make computer-interpretable expressions. An example of a graphical modeling language and a corresponding textual modeling language is [[EXPRESS (data modeling language)|EXPRESS]].
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 languages 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, the most notable languages are ones having the most extensive tool support. As of 2006 these include:
 
== Type of modeling languages ==
* [[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.
 
=== Graphical types ===
* [[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.
Example of graphical modeling languages in the field of computer science, project management and systems engineering:
* [[Behavior Trees]] are a formal, graphical modeling language used primarily in [[systems engineering|systems]] and [[software engineering]]. Commonly used to unambiguously represent the hundreds or even thousands of [[natural language]] requirements that are typically used to express the [[Project stakeholder|stakeholder]] needs for a large-scale software-integrated system.
* [[Business Process Modeling Notation]] (BPMN, and the [[XML]] form BPML) is an example of a [[Process Modeling]] language.
* [[C-K theory]] consists of a modeling language for design processes.
* [[DRAKON]] is a [[general-purpose modeling|general-purpose algorithmic modeling]] language for specifying software-intensive systems, a schematic representation of an algorithm or a stepwise process, and a family of [[programming language]]s.
* [[EXPRESS (data modeling language)|EXPRESS]] and EXPRESS-G (ISO 10303-11) is an international standard general-purpose [[data modeling]] language.
* [[Extended Enterprise Modeling Language]] (EEML) is commonly used for business process modeling across a number of layers.
* [[Flowchart]] is a schematic representation of an algorithm or a stepwise process.
* [[Fundamental Modeling Concepts]] (FMC) modeling language for software-intensive systems.
* [[IDEF]] is a family of [[modeling languages]], which include [[IDEF0]] for functional modeling, [[IDEF1X]] for information modeling, [[IDEF3]] for business process modeling, [[IDEF4]] for Object-Oriented Design and [[IDEF5]] for modeling ontologies.
* [[Jackson Structured Programming]] (JSP) is a method for structured programming based on correspondences between data stream structure and program structure.
* [[Lepus3|LePUS3]] is an [[Object-oriented programming|object-oriented]] visual Design Description Language and a [[formal specification]] language that is suitable primarily for modeling large object-oriented ([[Java (programming language)|Java]], [[C++]], [[C Sharp (programming language)|C#]]) programs and [[design patterns]].
* [[Lifecycle Modeling Language]] is an open-standard language for [[systems engineering]] that supports the full [[system lifecycle]]: conceptual, utilization, support and retirement stages.
* [[Object-Role Modeling]] (ORM) in the field of software engineering is a method for conceptual modeling, and can be used as a tool for information and rules analysis.
* [[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.
* [[Southbeach Notation]] is a visual modeling language used to describe situations in terms of agents that are considered useful or harmful from the modeler's perspective. The notation shows how the agents interact with each other and whether this interaction improves or worsens the situation.
* [[Specification and Description Language]] (SDL) is a specification language targeted at the unambiguous specification and description of the behavior of reactive and distributed systems.
* [[SysML]] is a [[Domain-Specific Modeling]] language for [[systems engineering]] that is defined as a UML profile (customization).
* [[Unified Modeling Language]] (UML) is a [[general-purpose modeling]] language that is an industry standard for specifying software-intensive systems. UML 2.0, the current version, supports thirteen different diagram techniques, and has widespread tool support.
* FLINT — language which allows a high-level description of normative systems.<ref>{{Citation |last1=Breteler |first1=Jeroen |title=The FLINT Ontology: An Actor-Based Model of Legal Relations |date=2023-09-11 |work=Studies on the Semantic Web |editor-last=Acosta |editor-first=Maribel |publisher=IOS Press |doi=10.3233/ssw230016 |isbn=978-1-64368-424-6 |last2=van Gessel |first2=Thom |last3=Biagioni |first3=Giulia |last4=van Doesburg |first4=Robert |editor2-last=Peroni |editor2-first=Silvio |editor3-last=Vahdati |editor3-first=Sahar |editor4-last=Gentile |editor4-first=Anna-Lisa|doi-access=free }}</ref>
* [[service-oriented modeling#Service-oriented modeling framework|Service-oriented modeling framework (SOMF)]] is a holistic language for designing enterprise and application level architecture models in the space of enterprise architecture, virtualization, service-oriented architecture (SOA), cloud computing, and more.<ref name="Bell">{{cite book |last=Bell |first=Michael|title=Service-Oriented Modeling: Service Analysis, Design, and Architecture|url=https://archive.org/details/serviceorientedm0000bell |url-access=registration |year= 2008 |publisher=Wiley & Sons|isbn=978-0-470-14111-3 |chapter=Introduction to Service-Oriented Modeling}}</ref>
* [[Architecture description language]] (ADL) is a language used to describe and represent the [[systems architecture]] of a [[system]].
* [[Architecture Analysis & Design Language]] (AADL) is a modeling language that supports early and repeated analyses of a system's architecture with respect to performance-critical properties through an extendable notation, a tool framework, and precisely defined semantics.
 
Examples of graphical modeling languages in other fields of science.
* [[IDEF]] is a family of modeling languages, the most notable of which include IDEF0, for functional modeling, and IDEF1 for information modeling.
* [[EAST-ADL]] is a [[Domain-Specific Modeling]] language dedicated to automotive system design.
* [[Energy Systems Language]] (ESL), a language that aims to model ecological energetics & global economics.
*[[IEC 61499]] defines [[Domain-Specific Modeling]] language dedicated to distribute industrial process measurement and control systems.
 
=== Textual types ===
* [[SysML]] is a modeling language, based on UML, that addresses the need of [[System Engineering]].
Information models can also be expressed in formalized natural languages, such as Gellish.<ref>* Andries van Renssen, [https://repository.tudelft.nl/islandora/object/uuid%3Ade26132b-6f03-41b9-b882-c74b7e34a07d Gellish, A Generic Extensible Ontological Language], Delft University of Technology, 2005.</ref> Gellish has natural language variants such as [[Gellish English|Gellish Formal English]] and Gellish Formal Dutch ([[:nl:Gellish Nederlands|Gellish Formeel Nederlands]]), etc. Gellish Formal English is an information representation language or semantic modeling language that is defined in the Gellish English Dictionary-Taxonomy, which has the form of a Taxonomy-Ontology (similarly for Dutch). Gellish Formal English is not only suitable to express knowledge, requirements and dictionaries, taxonomies and ontologies, but also information about individual things. All that information is expressed in one language and therefore it can all be integrated, independent of the question whether it is stored in central or distributed or in federated databases. Information models in Gellish Formal English consists of collections of Gellish Formal English expressions, that use natural language terms and formalized phrases. For example, a geographic information model might consist of a number of Gellish Formal English expressions, such as:
 
- the Eiffel tower <is located in> Paris
* [[ATL]] (The [[ATLAS Transformation Language]] 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.
- Paris <is classified as a> city
 
whereas information requirements and knowledge can be expressed for example as follows:
* [[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]].
 
- tower <shall be located in a> geographical area
- city <is a kind of> geographical area
 
Such Gellish Formal English expressions use names of concepts (such as "city") and phrases that represent relation types (such as {{angbr|is located in}} and {{angbr|is classified as a}}) that should be selected from the Gellish English Dictionary-Taxonomy (or of your own ___domain dictionary). The Gellish English Dictionary-Taxonomy enables the creation of semantically rich information models, because the dictionary contains more than 600 standard relation types and contains definitions of more than 40000 concepts. An information model in Gellish can express facts or make statements, queries and answers.
==See also==
 
=== More specific types ===
* [[Model Driven Engineering]] (MDE)
In the field of [[computer science]] recently more specific types of modeling languages have emerged.
* [[Meta-model]]
 
* [[Metamodeling]] or [[Meta-modeling]]
==== Algebraic ====
* [[Model Driven Architecture]] (MDA is an OMG Trademark), (MDE is not an OMG Trademark)
[[Algebraic modeling language|Algebraic Modeling Languages]] (AML) are high-level programming languages for describing and solving high complexity problems for large scale mathematical computation (i.e. large scale optimization type problems). One particular advantage of AMLs like [[AIMMS]], [[AMPL]], [[General Algebraic Modeling System|GAMS]], [[Gekko (optimization software)|Gekko]], [[FICO Xpress|Mosel]], [[OPL Development Studio|OPL]], [[MiniZinc]], and [[OptimJ]] is the similarity of its syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the ___domain of optimization, which is supported by certain language elements like sets, indices, algebraic expressions, powerful sparse index and data handling variables, constraints with arbitrary names. The algebraic formulation of a model does not contain any hints how to process it.
* [[Model Integrated Computing]] (MIC)
 
* [[Domain Specific Language]] (DSL)
==== Behavioral ====
* [[Domain-specific modelling]] (DSM)
 
Behavioral languages are designed to describe the observable behavior of complex systems consisting of components that
execute concurrently. These languages focus on the description of key concepts such as: concurrency, nondeterminism, synchronization, and communication. The semantic foundations of Behavioral languages are [[process calculus]] or [[process algebra]].
 
==== Discipline-specific ====
A [[Service-oriented modeling#Discipline-specific modeling|discipline-specific modeling (DspM)]] language is focused on deliverables affiliated with a specific software development life cycle stage. Therefore, such language offers a distinct vocabulary, syntax, and notation for each stage, such as discovery, analysis, design, architecture, contraction, etc. For example, for the analysis phase of a project, the modeler employs specific analysis notation to deliver an analysis proposition diagram. During the design phase, however, logical design notation is used to depict the relationship between software entities. In addition, the discipline-specific modeling language best practices does not preclude practitioners from combining the various notations in a single diagram.
 
==== Domain-specific ====
[[Domain-specific modeling]] (DSM) is a software engineering methodology for designing and developing systems, most often IT systems such as computer software. It involves the systematic use of a graphical [[___domain-specific language]] (DSL) to represent the various facets of a system. DSM languages tend to support higher-level abstractions than General-purpose modeling languages, so they require less effort and fewer low-level details to specify a given system.
 
==== Framework-specific ====
A [[framework-specific modeling language]] (FSML) is a kind of ___domain-specific modeling language which is designed for an object-oriented application framework. FSMLs define framework-provided abstractions as FSML concepts and decompose the abstractions into features. The features represent implementation steps or choices.
 
A FSML concept can be configured by selecting features and providing values for features. Such a concept configuration represents how the concept should be implemented in the code. In other words, concept configuration describes how the framework should be completed in order to create the implementation of the concept.
 
==== Information and knowledge modeling ====
[[Linked data]] and [[ontology engineering]] require 'host languages' to represent [[Entity–relationship model|entities and the relations between them]], [[Constraint (mathematics)|constraints]] between the properties of entities and relations, and [[metadata]] [[attribute (computing)|attributes]]. [[JSON-LD]] and [[Resource Description Framework|RDF]] are two major (and semantically almost equivalent) languages in this context, primarily because they support [[Resource Description Framework#Statement reification and context|statement reification and contextualisation]] which are essential properties to support the [[higher-order logic]] needed to reason about models. [[Model transformation]] is a common example of such reasoning.
 
==== Object-oriented ====
A language for [[object-oriented modeling]] (OOM) is a notation for modeling a system as object-oriented. An organization may use OOM to document and describe the system architecture and design to both developers and stakeholders. Because a modeling language is visual and at a higher-level of abstraction than code, using models encourages the generation of a shared vision that may prevent problems of differing interpretation later in development. Often software modeling tools are used to construct these models, which may then be capable of automatic translation to code.
 
==== Virtual reality ====
[[VRML|Virtual Reality Modeling Language]] (VRML), before 1995 known as the Virtual Reality Markup Language is a standard file format for representing 3-dimensional (3D) interactive vector graphics, designed particularly with the World Wide Web in mind.
 
==== Others ====
* [[Architecture Description Language]]
* [[Face Modeling Language]]
* [[Generative Modelling Language]]
* [[Java Modeling Language]]
* [[Promela]]
* [[Rebeca Modeling Language]]
* [[Service Modeling Language]]
* [[Web Services Modeling Language]]
* [[X3D]]
 
== Applications ==
Various kinds of modeling languages are applied in different 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.
 
The more mature modeling languages are precise, consistent and executable. [[Technical Drawing#Applications|Informal diagramming]] techniques applied with drawing tools are expected to produce useful pictorial representations of system requirements, structures and behaviors, which can be useful for communication, design, and problem solving but cannot be used programmatically.<ref>{{Cite book|last1=Baltes|first1=Sebastian|last2=Diehl|first2=Stephan|title=Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering |chapter=Sketches and diagrams in practice |date=2014-11-11|chapter-url=https://doi.org/10.1145/2635868.2635891|series=FSE 2014|___location=Hong Kong, China|publisher=Association for Computing Machinery|pages=530–541|doi=10.1145/2635868.2635891|isbn=978-1-4503-3056-5|arxiv=1706.09172|s2cid=2436333 }}</ref>{{Rp|539}} Executable modeling languages applied with proper tool support, however, are expected to automate system [[verification and validation]], [[simulation]] and [[Automatic programming|code generation]] from the same representations.
 
== Quality ==
A review of modelling languages is essential to be able to assign which languages are appropriate for different modelling settings. In the term settings we include stakeholders, ___domain and the knowledge connected. Assessing the '''language quality''' is a means that aims to achieve better models.
 
=== Framework for evaluation ===
Here language quality is stated in accordance with the [[SEQUAL framework]] for quality of models developed by Krogstie, Sindre and Lindland (2003), since this is a framework that connects the language quality to a framework for general model quality. Five areas are used in this framework to describe language quality and these are supposed to express both the [[wikt:conceptual|conceptual]] as well as the visual notation of the language. We will not go into a thorough explanation of the underlying quality framework of models but concentrate on the areas used to explain the language quality framework.
 
==== Domain appropriateness ====
The framework states the ability to represent the ___domain as ___domain appropriateness. The statement ''appropriateness'' can be a bit vague, but in this particular context it means ''able to express''. You should ideally only be able to express things that are in the ___domain but be powerful enough to include everything that is in the ___domain. This requirement might seem a bit strict, but the aim is to get a visually expressed model which includes everything relevant to the ___domain and excludes everything not appropriate for the ___domain. To achieve this, the language has to have a good distinction of which notations and [[syntax]]es that are advantageous to present.
 
==== Participant appropriateness ====
To evaluate the participant appropriateness we try to identify how well the language expresses the knowledge held by the stakeholders. This involves challenges since a stakeholder's knowledge is subjective. The knowledge of the stakeholder is both tacit and explicit. Both types of knowledge are of dynamic character. In this framework only the explicit type of knowledge is taken into account. The language should to a large extent express all the explicit knowledge of the stakeholders relevant to the ___domain.
 
==== Modeller appropriateness ====
Last paragraph stated that knowledge of the stakeholders should be presented in a good way. In addition it is imperative that the language should be able to express all possible explicit knowledge of the stakeholders. No knowledge should be left unexpressed due to lacks in the language.
 
==== Comprehensibility appropriateness ====
Comprehensibility appropriateness makes sure that the social actors understand the model due to a consistent use of the language. To achieve this the framework includes a set of criteria. The general importance that these express is that the language should be flexible, easy to organize and easy to distinguish different parts of the language internally as well as from other languages. In addition to this, the goal should be as simple as possible and that each symbol in the language has a unique representation.
 
This is in connection to also to the structure of the development requirements.
.
 
==== Tool appropriateness ====
To ensure that the ___domain actually modelled is usable for analyzing and further processing, the language has to ensure that it is possible to reason in an automatic way. To achieve this it has to include formal syntax and semantics. Another advantage by formalizing is the ability to discover errors in an early stage. It is not always that the language best fitted for the technical actors is the same as for the social actors.
 
==== Organizational appropriateness ====
The language used is appropriate for the organizational context, e.g. that the language is standardized within the organization, or that it is supported by tools that are chosen as standard in the organization.
 
== See also ==
{{Div col|colwidth=22em}}
* {{Annotated link |AltaRica}}
* {{Annotated link |Analogical models}}
* {{Annotated link |Anthropomorphism}}
* {{Annotated link |Data model}}
* {{Annotated link |Data modeling}}
* {{Annotated link |Metamodeling}}
* [[Model-based testing]] (MBT)
* {{Annotated link |Model-driven architecture}}
* [[Object modeling language]]
* [[Model-driven engineering]] (MDE)
* [[QVT]] The OMG Queries/Views/Transformations Model Transformation Language
* {{Annotated link |Modeling perspective}}
* [[Unified Modeling Language]] UML
* {{Annotated link |Ontology language}}
* [[ATLAS Transformation Language]] ATL
* {{Annotated link |Pseudocode}}
* [[Meta-Object Facility]] MOF
* {{Annotated link |Scientific modelling}}
* [[XML Metadata Interchange]] XMI
* {{Annotated link |Service-oriented modeling}}
* [[Class-Responsibility-Collaboration card]] (CRC cards)
* {{Annotated link |Visual modeling}}
* [[Object-oriented analysis and design]] OOAD
* {{Annotated link |Visual language}}
* {{Annotated link |Visual programming language}}
{{Div col end}}
 
== References ==
{{Reflist}}
 
== Further reading ==
* [[John Krogstie]] (2003) [http://www.igi-global.com/chapter/evaluating-uml-using-generic-quality/30534 "Evaluating UML using a generic quality framework"] . SINTEF Telecom and Informatics and IDI, NTNU, Norway
* Krogstie and Sølvsberg (2003). ''Information Systems Engineering: Conceptual Modeling in a Quality Perspective''. Institute of computer and information sciences.\
* Anna Gunhild Nysetvold and [[John Krogstie]] (2005). [http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-363/paper15.pdf "Assessing business processing modeling languages using a generic quality framework"]. Institute of computer and information sciences.
 
== External links ==
{{Commons category|Modeling languages}}
* [http://www.fmc-modeling.org/ Fundamental Modeling Concepts]
* [http://modeling-languages.com/ Software Modeling Languages Portal]
* [http://www-verimag.imag.fr/~async/bip.php BIP -- Incremental Component-based Construction of Real-time Systems]
* [http://www.gellish.net/ Gellish Formal English]
 
{{Computer science}}
{{Software engineering}}
{{Computer language}}
{{Authority control}}
 
[[Category:SoftwareSpecification engineeringlanguages]]
[[Category:ScientificModeling languages| modeling]]