Difference between revisions of "What is a Model?"

From SEBoK
Jump to navigation Jump to search
Line 17: Line 17:
 
The [[Abstract Syntax (glossary)|abstract syntax (glossary)]] specifies the model constructs, and the rules for constructing the model from its constructs. In the case of natural language such as English, the constructs may include kinds of words such as verbs, nouns, adjectives and prepositions, and the rules specify how these words can be used together to form proper sentences.  The abstract syntax for a mathematical model may specify constructs to define mathematical functions, variables, and their relationship. The abstract syntax for a logical model may specify constructs to define logical entities and their relationships. A well formed model is a model that conforms to the rules of construction, just like a well formed sentence must conform to the grammatical rules of the natural language.
 
The [[Abstract Syntax (glossary)|abstract syntax (glossary)]] specifies the model constructs, and the rules for constructing the model from its constructs. In the case of natural language such as English, the constructs may include kinds of words such as verbs, nouns, adjectives and prepositions, and the rules specify how these words can be used together to form proper sentences.  The abstract syntax for a mathematical model may specify constructs to define mathematical functions, variables, and their relationship. The abstract syntax for a logical model may specify constructs to define logical entities and their relationships. A well formed model is a model that conforms to the rules of construction, just like a well formed sentence must conform to the grammatical rules of the natural language.
  
The [[Concrete syntax|concrete syntax (glossary)]] specifies the symbols used to express the model constructs. For example, natural language such as English can be expressed in text or Morse code. A modeling language may be expressed using graphical symbols and/or text statements. For example, a functional flow model may be expressed using graphical symbols consisting of a combination of graphical nodes and arcs annotated with text, where as a simulation modeling language may be expressed using a programming language text syntax such as the C programming language.
+
The [[Concrete Syntax (glossary)|concrete syntax (glossary)]] specifies the symbols used to express the model constructs. For example, natural language such as English can be expressed in text or Morse code. A modeling language may be expressed using graphical symbols and/or text statements. For example, a functional flow model may be expressed using graphical symbols consisting of a combination of graphical nodes and arcs annotated with text, where as a simulation modeling language may be expressed using a programming language text syntax such as the C programming language.
  
 
The [[Semantics (glossary)|semantics (glossary)]] of a language define the meaning of the constructs. For example, an English word does not have explicit meaning until the word is defined. Similarly, a construct that is expressed as a symbol, such as a box or arrow on a flow chart, does not have meaning until it is defined. The language must give meaning to the concept of a verb or noun, and must give specific meaning to a specific word that is a verb or noun. The definition can be accomplished by providing a natural language definition, or by mapping the construct to a formalism whose meaning is defined. As an example, a graphical symbol that expresses sin(x) and cos(x) is defined using a well defined mathematical formalism for the sine and cosine function. If the position of a pendulum is defined in terms of sin(theta) and cos(theta), the meaning of the pendulum position is understood in terms of these formalisms.
 
The [[Semantics (glossary)|semantics (glossary)]] of a language define the meaning of the constructs. For example, an English word does not have explicit meaning until the word is defined. Similarly, a construct that is expressed as a symbol, such as a box or arrow on a flow chart, does not have meaning until it is defined. The language must give meaning to the concept of a verb or noun, and must give specific meaning to a specific word that is a verb or noun. The definition can be accomplished by providing a natural language definition, or by mapping the construct to a formalism whose meaning is defined. As an example, a graphical symbol that expresses sin(x) and cos(x) is defined using a well defined mathematical formalism for the sine and cosine function. If the position of a pendulum is defined in terms of sin(theta) and cos(theta), the meaning of the pendulum position is understood in terms of these formalisms.

Revision as of 01:09, 29 July 2011

This section provides foundational concepts, including what is a model and a modeling language, and their relationship to a modeling tool and model-based systems engineering (mbse) .

Definition of a Model

There are many definitions of model (glossary), some of which are included below. These definitions refer to a model as a representation of selected aspects of a domain of interest (glossary) to the modeler.

  • Model: A physical, mathematical, or otherwise logical representation of a system, entity, phenomenon, or process. Source: DoD 1998, 5000.59 -M . [1]
  • Model: A representation of one or more concepts that may be realized in the physical world. Source: A Practical Guide to SysML. [2]
  • Model: A simplified representation of a system at some particular point in time or space intended to promote understanding of the real system. Source:| Modeling & Simulation: An Introduction. [3]
  • Model: An abstraction of a system, aimed at understanding, communicating, explaining, or designing aspects of interest of that system. Source: Object-Process Methodology – A Holistic Systems Paradigm [4]
  • Model: A selective representation of some system whose form and content are chosen based on a specific set of concerns. The model is related to the system by an explicit or implicit mapping. Source: MDA Foundation Model.[5]

In the context of systems engineering, a model that represents a system and its environment is of particular importance to help analyze, specify, design, and verify systems, and share this information with other stakeholders. A variety of system models are used to represent different types of systems for different modeling purposes.

A model can have different forms as indicated in the first definition above, including a physical, mathematical, or logical representation. A physical model can be a mockup that represents an actual system such as a model airplane. A mathematical model may represent possible flight trajectories in terms of its acceleration, speed, position and orientation. A logical model may represent logical relationships that describe potential causes of airplane failure, such as how an engine failure can result in a loss of power, and cause the airplane to lose altitude, or how the parts of the system are interconnected. It is apparent that many different models may be required to represent a system of interest.

Modeling Language

A physical model is a concrete representation of an actual system that you can touch and feel. Other models may be more abstract representations of a system or entity. These models rely on a modeling language to express their meaning as explained in On Ontology, ontologies, Conceptualizations,Modeling Languages, and (Meta)Models. The modeling language is generally intended to be both human-interpretable and computer-interpretable, and is specified in terms of its syntax and semantics.

The abstract syntax specifies the model constructs, and the rules for constructing the model from its constructs. In the case of natural language such as English, the constructs may include kinds of words such as verbs, nouns, adjectives and prepositions, and the rules specify how these words can be used together to form proper sentences. The abstract syntax for a mathematical model may specify constructs to define mathematical functions, variables, and their relationship. The abstract syntax for a logical model may specify constructs to define logical entities and their relationships. A well formed model is a model that conforms to the rules of construction, just like a well formed sentence must conform to the grammatical rules of the natural language.

The concrete syntax specifies the symbols used to express the model constructs. For example, natural language such as English can be expressed in text or Morse code. A modeling language may be expressed using graphical symbols and/or text statements. For example, a functional flow model may be expressed using graphical symbols consisting of a combination of graphical nodes and arcs annotated with text, where as a simulation modeling language may be expressed using a programming language text syntax such as the C programming language.

The semantics of a language define the meaning of the constructs. For example, an English word does not have explicit meaning until the word is defined. Similarly, a construct that is expressed as a symbol, such as a box or arrow on a flow chart, does not have meaning until it is defined. The language must give meaning to the concept of a verb or noun, and must give specific meaning to a specific word that is a verb or noun. The definition can be accomplished by providing a natural language definition, or by mapping the construct to a formalism whose meaning is defined. As an example, a graphical symbol that expresses sin(x) and cos(x) is defined using a well defined mathematical formalism for the sine and cosine function. If the position of a pendulum is defined in terms of sin(theta) and cos(theta), the meaning of the pendulum position is understood in terms of these formalisms.

Modeling Tools

Models are created by a modeler using modeling tools . For physical models, the modeling tools may include drills, lathes, and hammers. For more abstract models, the modeling tool can be a set of tools that is generally a piece of software running on a computer that provides the ability to express the modeling constructs using a particular modeling language. A word processor can be viewed as a tool used to build text descriptions using natural language. In a similar way, modeling tools are used to build models using modeling languages. The tool often provides a tool pallet to select the symbols, and a content area to construct the model from the graphical symbols or other concrete syntax. The modeling tool should be able to check the model to evaluate whether it conforms to the rules of the language, and enforce those rules to help the modeler create a well formed model (glossary) similar to the way a word processor checks the text to see that it conforms to the grammar rules for the natural language.

Some modeling tools are commercially available products, while other tools may be created or customized to provide unique modeling solutions. Modeling tools are often used as part of a broader set of engineering tools, sometimes called a systems development environment (glossary). There is increased emphasis on tool support for standard modeling languages that enable models and modeling information to be interchanged among different tools.

Relationship of Model to Model-based Systems Engineering

The INCOSE Systems Engineering Vision 2020 defines model-based systems engineering (mbse) as “the formalized application of modeling to support system requirements, design, analysis, verification and validation activities beginning in the conceptual design phase and continuing throughout development and later life cycle phases.” In MBSE, the models of the system are primary artifacts of the systems engineering process, and are managed, controlled, and integrated with other parts of the system technical baseline. This contrasts with the traditional document centric approach to systems engineering, where text based documentation and specifications are managed and controlled. Leveraging a model-based approach to systems engineering is intended to result in significant improvements in system specification and design quality, lower risk and cost of system development by surfacing issues early in the design process, enhanced productivity through reuse of system artifacts, and improved communications among the system development team.

In addition to creating the models, the MBSE approach must include methods for model management , which aims to ensure that the models are properly controlled, and methods for model validation , which aims to ensure that the models accurately represent the systems being modeled.

The jointly sponsored INCOSE / Object Management Group (OMG) [[| MBSE Wiki ]] provides additional information on the INCOSE MBSE Initiative.

Brief History of System Modeling Languages and Methods

Many system modeling methods and associated modeling languages have been developed and deployed to support various aspects of system analysis, design and implementation. Functional modeling languages include the Data Flow Diagram DFD, Yourdon and Constantine, 1976, IDEF0 IDEF Family of Methods, 2001, and Enhanced Functional Flow Block Diagram (EFFBD). Other behavioral modeling techniques include the classical state transition diagram, Statecharts Harel, 1987, and Process Flow diagram. Structural modeling techniques include Data Structure Diagram Jackson, 1975, Entity Relationship Diagram Chen, 1976, and Object Modeling Technique Rumbaugh et al., 1991, which combines object diagrams, DFD, and Statecharts.

Some of the recent system modeling methods and languages evolved from these roots, and are highlighted in A Survey of Model-Based Systems Engineering (MBSE) Methodologies. This survey identifies several candidate MBSE methodologies that can be applied to support an MBSE approach. The Types of Modeling Standards (glossary) refers to several standard system modeling languages and other modeling standards that support MBSE.

References

Citations

[1] DoD Directive 5000.59. DoD Modeling and Simulation (M&S) Management. January 4, 1994.

[2] Friedenthal, S., A. Moore, and R. Steiner. 2009. A practical guide to SysML: The systems modeling language. Morgan Kaufman. Needham, MA, USA: OMG Press.

[3] Modeling & Simulation: An Introduction. Available at http://www.systems-thinking.org/modsim/modsim.htm

[4] Dori, D. 2002. Object-Process Methodology: A Holistics System Paradigm. Springer.

[5] Object Management Group. MDA Foundation Model. OMG document number ORMSC/2010-09-06.

Primary References

Guizzardi, G. 2007. On Ontology, Ontologies, Conceptualizations, Modeling Languages, and (Meta)Models. Proceeding of the 2007 conference on Databases and Information Systems IV. Available at http://portal.acm.org/citation.cfm?id=1565425.

Estefan, J, 2008. Survey of Model-Based Systems Engineering (MBSE) Methodologies. INCOSE-TD-2007-003-02 dated 5/23/2008. Available at http://www.incose.org/ProductsPubs/pdf/techdata/MTTC/MBSE_Methodology_Survey_2008-0610_RevB-JAE2.pdf

INCOSE 2007. Systems Engineering Vision 2020. INCOSE-TP-2004-004-02 September, 2007. Available at http://www.incose.org/ProductsPubs/products/sevision2020.aspx

Additional References

Chen, P.P. 1976. The Entity Relationship Model – Toward a Unifying View of Data. ACM Transaction on Data Base Systems 1(1), pp. 9-36.

Downs, E. Clare, P. and Coe I. 1992. Structured Systems Analysis and Design Method: Application and Context. Prentice-Hal International (UK), Hertfordshire.

Eisner, H. 1988. Computer-Aided Systems Engineering. Prentice Hall, Englewood Cliffs, New Jersey 07632

Harel, D. 1987. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming 8, pp. 231–274.

Jackson, M. A. 1975. Principles of Program Design, Academic Press.

Kossiakoff, A, and Sweet, W. 2003. Systems Engineering Principles and Practice. Wiley (Chapter 14)

MBSE Wiki. Available at http://www.omgwiki.org/MBSE/doku.php

Object Management Group. MDA Foundation Model. OMG document number ORMSC/2010-09-06.

Oliver, D, and Kelliber, T, and Keegan, J. 1997. Engineering Complex Systems with Models and Objects. McGraw Hill

Wikipedia. Functional flow block diagram (FFBD. Available at. http://en.wikipedia.org/wiki/Functional_flow_block_diagram

Wikipedia. Model. Available at http://en.wikipedia.org/wiki/Model

Wikipedia. System Model. Available at http://en.wikipedia.org/wiki/System_model


Article Discussion

[Go to discussion page]

<- Previous Article | Parent Article | Next Article ->