Modeling language: Difference between revisions

Content deleted Content added
See also: related orphaned article which should be integrated
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
 
(27 intermediate revisions by 20 users not shown)
Line 1:
{{Short description|Artificial languageNotation used to expressexpressing information under a rule set}}
A '''modeling language''' is anya notation for expressing [[artificial languagedata]] that can be used to express, [[information]] or [[knowledge]] or [[system]]s in a [[structure]] that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure.
 
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]].
== Overview ==
A modeling language can be graphical or textual.<ref>Xiao He (2007). [https://ieeexplore.ieee.org/abstract/document/4291008/ "A metamodel for the notation of graphical modeling languages".] In: ''Computer Software and Applications Conference, 2007. COMPSAC 2007 - Vol. 1. 31st Annual International'', Volume 1, Issue , 24–27 July 2007, pp 219-224.</ref>
 
* ''Graphical'' modeling languages use a [[diagramming technique|diagram technique]] with named symbols that represent concepts and lines that connect the symbols and represent relationships and various other graphical notation to represent constraints.
* ''Textual'' modeling languages 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]].
 
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 system]]s.
Line 28 ⟶ 22:
* [[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.
Line 36 ⟶ 30:
* [[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]] (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.
Line 46 ⟶ 41:
 
=== Textual types ===
Information models can also be expressed in formalized natural languages, such as Gellish.<ref>* Andries van Renssen, [httphttps://wwwrepository.gellishtudelft.netnl/downloadsislandora/fileobject/10uuid%3Ade26132b-phd6f03-gellish41b9-ab882-generic-extensible-ontological-language.htmlc74b7e34a07d Gellish, A Generic Extensible Ontological Language] {{webarchive|url=https://web.archive.org/web/20121130015036/http://www.gellish.net/downloads/file/10-phd-gellish-a-generic-extensible-ontological-language.html |date=2012-11-30 }}, 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
Line 62 ⟶ 57:
 
==== Algebraic ====
[[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_Gekko (optimization_softwareoptimization 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.
 
==== Behavioral ====
Line 70 ⟶ 65:
 
==== 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 ====
Line 84 ⟶ 79:
 
==== Object-oriented ====
SomeA organizationslanguage usefor them[[object-oriented extensivelymodeling]] in(OOM) combination withis a softwarenotation developmentfor methodologymodeling toa progresssystem fromas initialobject-oriented. specificationAn toorganization anmay implementationuse plan andOOM to communicatedocument thatand plandescribe tothe ansystem entirearchitecture teamand design to ofboth 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.
[[Object modeling language]]s are modeling languages based on a standardized set of symbols and ways of arranging them to model (part of) an object oriented software design or system design.
 
Some organizations use them extensively in combination with a software development methodology to progress from initial specification to an implementation plan and to communicate that plan to an entire team of 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 ====
Line 109 ⟶ 102:
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 journalbook|lastlast1=Baltes|firstfirst1=Sebastian|last2=Diehl|first2=Stephan|datetitle=2014-11-11Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering |titlechapter=Sketches and diagrams in practice |date=2014-11-11|chapter-url=https://doi.org/10.1145/2635868.2635891|journal=Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering|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 ==
Line 115 ⟶ 108:
 
=== 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 thoroughlythorough explanation of the underlying quality framework of models but concentrate on the areas used to explain the language quality framework.
 
==== Domain appropriateness ====
Line 140 ⟶ 133:
== See also ==
{{Div col|colwidth=22em}}
* [[{{Annotated link |AltaRica]]}}
* [[{{Annotated link |Analogical models]]}}
* [[{{Annotated link |Anthropomorphism]]}}
* {{Annotated link |Data model}}
* [[Metamodeling]]
* {{Annotated link |Data modeling}}
* [[{{Annotated link |Metamodeling]]}}
* [[Model-based testing]] (MBT)
* [[{{Annotated link |Model-driven architecture]]}}
* [[Model-driven engineering]] (MDE)
* [[{{Annotated link |Modeling perspective]]}}
* [[{{Annotated link |Ontology language]]}}
* {{Annotated link |Pseudocode}}
* [[Pseudo code]]
* [[{{Annotated link |Scientific modelling]]}}
* [[{{Annotated link |Service-oriented modeling]]}}
* [[{{Annotated link |Visual modeling]]}}
* [[Visual{{Annotated programminglink |Visual language]]}}
* {{Annotated link |Visual programming language}}
{{Div col end}}
 
Line 171 ⟶ 167:
* [http://www.gellish.net/ Gellish Formal English]
 
{{Computer science}}
{{Software engineering}}
{{Computer language}}
{{Authority control}}
 
[[Category:Specification languages]]