Content deleted Content added
MBSE OPM course web videos on Youtube |
Citation bot (talk | contribs) Altered journal. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 934/990 |
||
(46 intermediate revisions by 19 users not shown) | |||
Line 1:
{{Short description|Modelling language and methodology for capturing knowledge and designing systems}}
{{Multiple issues|
{{
{{
}}
[[File:OplNEW.jpg|thumb|320px|Graphical contents OPL: an example of the OPM language]]
{{InfoMaps}}
'''
OPM was conceived and developed by [[Dov Dori]]. The ideas underlying OPM were published for the first time in 1995.<ref name="ReferenceA">{{cite journal|last=Dori|first=Dov|
In 2002, the first book on OPM<ref name="Object-Process Methodology – A Holistic Systems Paradigm"/> was published, and on December 15, 2015, after six years of work by ISO TC184/SC5, [[International Organization for Standardization|ISO]] adopted OPM as ISO/PAS 19450.<ref name="ISO19450" /> A second book on OPM was published in 2016.<ref name="Model-Based"/>
Line 16:
== Overview ==
Object
In OPM, an ''object'' is
OPM is bimodal; it is expressed both visually/graphically in
==History==
{{Blockquote
|text=The shift to the [[Object-oriented programming|object-oriented]] (OO) paradigm for computer [[programming language]]s, which occurred in the 1980s and 1990s, was followed by the idea that programming should be preceded by [[object-oriented analysis and design]] of the programs, and, more generally, the systems those programs represent and serve. Thus, in the early 1990s, over 30 object-oriented analysis and design methods and notations flourished, leading to what was known as the "methods war".<ref>Booch, G. "Time for a ceasefire in the methods war". ''Journal of Object-Oriented Programming'', July/August 1993.</ref>
|author=[[Dov Dori]]
|title="Preface"
|source=''Model-Based Systems Engineering with OPM and SysML'' (2017)
}}
Around that time, in 1991, [[Dov Dori]], who then joined [[Technion – Israel Institute of Technology]] as faculty said in his 2016 book ''Model-Based Systems Engineering with OPM and SysML'' that he:
{{Blockquote
|text=realized that just as the procedural approach to software was inadequate, so was the “pure” OO approach, which puts objects as the sole “first class” citizens, with “methods” (or “services”) being their second-class subordinate procedures.
|author=[[Dov Dori]]
|title="Preface"
|source=''Model-Based Systems Engineering with OPM and SysML'' (2017)
}}
Dori published the first paper on OPM in 1995.<ref name="ReferenceA"/>
In 1997, [[Unified Modeling Language]] (UML), by the [[Object Management Group]] (OMG), became the de facto standard for software design. UML 1.1 was submitted to the OMG in August 1997 and adopted by the OMG in November 1997.
The first book on OPM, ''Object-Process Methodology: a Holistic Systems Paradigm'', was published in 2002,<ref name="Object-Process Methodology – A Holistic Systems Paradigm">{{cite book |last=Dori |first=Dov |author-link=Dov Dori |title=Object-Process Methodology: A Holistic Systems Paradigm |date=2002 |publisher=[[Springer-Verlag]] |___location=Berlin, Heidelberg, New York |isbn=978-3540654711 |doi=10.1007/978-3-642-56209-9 |s2cid=13600128 }}</ref> and OPM has since been applied in many domains.<ref>{{cite book |last1=Perelman |first1=Valeria |last2=Somekh |first2=Judith |last3=Dori |first3=Dov |title=Model verification framework with application to molecular biology |series=TMS-Devs '11 |date=2011 |publisher=Society for Computer Simulation International |pages=140–145 |url=http://dl.acm.org/citation.cfm?id=2048494 |ref=MolecularBiology}}</ref><ref>{{cite journal |last1=Fischer |first1=Amit |last2=Nolan |first2=Mike |last3=Friedenthal |first3=Sanford |last4=Loeffler |first4=Michael |last5=Sampson |first5=Mark |last6=Bajaj |first6=Manas |last7=VanZandt |first7=Lonnie |last8=Hovey |first8=Krista |last9=Palmer |first9=John |last10=Hart |first10=Laura |title=3.1.1 Model Lifecycle Management for MBSE |journal=Incose International Symposium |date=2014 |volume=24 |pages=207–229 |doi=10.1002/j.2334-5837.2014.tb03145.x|s2cid=106677531 }}</ref>
In August 2014,
A second book on OPM, which also covers SysML, was published in 2016.<ref name="Model-Based">{{cite book |last=Dori |first=Dov |
==Design==
[[File:Opm methodology phases.png|alt=Opm methodology phases|thumb|OPM methodology phases]]
Object-Process Methodology (OPM) is a systems modeling paradigm that integrates two aspects inherent in any system: its structure and its behavior. Structure is represented via objects and structural relations among them, such as aggregation-participation (whole-part relation) and generalization-specialization ("is-a" relation). Behavior is represented by processes and how they transform objects: How they create or consume objects, or how they change the states of an object
OPM offers a way to model systems of almost any ___domain, be it artificial or natural
===Modeling===
OPM
; Object
OPD is the one and only kind of diagram of OPM. This uniqueness of diagram kind is a major contributor to OPM's simplicity, and it is in sharp contrast to UML, which has 14 kinds of diagrams, and to SysML, which has nine such kinds.<ref name="SysMLvsOPM">{{cite book |last1=Grobshtein |first1=Yariv |last2=Perelman |first2=Valeriya |last3=Safra |first3=Eliyahu |last4=Dori |first4=Dov |title=Systems Modeling Languages: OPM Versus SysML |date=2007 |publisher=IEEE |___location=Haifa, Israel |isbn=978-1-4244-0770-5 |pages=102–109 |url=https://ieeexplore.ieee.org/document/424372 |
; Object
Each OPD construct (i.e., two or more things connected by one or more links) is translated to a sentence in OPL—a subset of natural English. The power of OPL lies in the fact that it is readable by humans but also interpretable by computers
; OPM model animated simulation
Line 60 ⟶ 69:
In his foreword to Dori's book ''Model-Based Systems Engineering with OPM and SysML'', [[Edward F. Crawley]] said:
<blockquote>OPM semantics was originally geared towards systems engineering, as it can model information, hardware, people, and regulation. However, in recent years OPM started to serve also researchers in molecular biology, yielding new published findings related to the mRNA lifecycle. This is a clear indication of the universality of the object-and-process ontology.<ref name="Model-Based"/>{{rp|vi}}<ref>See also: {{cite web |url=http://esml.iem.technion.ac.il/wp-content/uploads/2011/07/Supplement-1.pdf |title=The mRNA Lifecycle |website=technion.ac.il |
==Basics==
[[File:OPMEntities.png|thumb|upright=1.5|OPM entities: object, object state and process]]
OPM has two main parts: the language and the methodology. The language is bimodal—it is expressed in two complementary ways (modalities): the visual, graphical part—a set of one or more
The top-level OPD is the system diagram (SD), which provides the context for the system's function. For man-made systems this function is expected to benefit a person or a group of people—the beneficiary. The function is the main process in SD, which also contains the objects involved in this process: the beneficiary, the operand (the object upon which the process operates), and possibly the attribute whose value the process changes.
Line 72 ⟶ 81:
===Entities===
Entities are the building blocks of OPM. They include objects and processes, collectively called things, and object states.
; Object :
; Object state : An object state is a particular situation classification of an object at some point during its lifetime. At every point in time, the object is in one of its states or in transition between two of its states—from its input state to its output state.
; Process : A process is an expression of the pattern of transformation of objects in the system. A process does not exist in isolation; it is always associated with and occurs or happens to one or more objects. A process transforms objects by creating them, consuming them, or changing their state. Thus, processes complement objects by providing the dynamic, behavioral aspect of the system. In OPL text, the process name shall appear in bold face with capitalization of each word.
Line 82 ⟶ 91:
; Procedural link : A procedural link defines procedural relation. A procedural relation shall specify how the system operates to attain its function, designating time dependent or conditional triggering of processes, which transform objects.
; Event and condition : The Event-Condition-Action paradigm provides the OPM operational semantics and flow of control. An event is a point in time at which an object is created (or appears to be created from the system's perspective) or an object enters a specified state. At runtime, this process triggering initiates evaluation of the process precondition. Thus, starting a process execution has two prerequisites: (1) a triggering event, and (2) satisfaction of a precondition.
Once the event triggers a process, the event ceases to exist
==Syntax and semantics==
===Things===
To apply OPM in a useful manner, the modeler has to make the essential distinction between objects and processes, as a prerequisite for successful system analysis and design. By default, a noun shall identify an object.
===Thing generic attributes===
OPM things have
# ''Perseverance''
# ''Essence''
# ''Affiliation''
OPM thing generic attributes have the following default values:
Line 104 ⟶ 113:
===Object states===
[[File:OPM Things.png|thumb|upright=1.5|OPM things and object states]]
; Stateful and stateless objects : Dov Dori explains in ''Model-Based Systems Engineering with OPM and SysML'' that "An object state is a possible situation in which an object may exist. An object state has meaning only in the context of the object to which it belongs." A stateless object shall be an object that has no specification of states. A stateful object shall be an object for which a set of permissible states are specified. In a runtime model, at any point in time, any stateful object instance is at a particular permissible state or in transition between two states.
; Attribute values : An attribute is an object that characterizes a thing. An attribute value is a specialization of state in the sense that a value is a state of an attribute: an object has an attribute, which is a different object, to which that value is assigned for some period of time during the existence of the object exhibiting that attribute.
; Object state representation : A state is graphically defined by a labelled, rounded-corner rectangle placed inside the owning object. It can not live without an object. In OPL text, the state name shall appear in bold face without capitalization.
; Initial, default, and final states
; Initial, final, and default state representation : A state that is initial is graphically defined by a state representation with thick contour. A state that is final is graphically defined by a state representation with double contour. A state that is default is graphically defined by a state representation with an open arrow pointing diagonally from the left. The corresponding OPL sentences shall include explicit indicators for an initial, final or default state.
Line 119 ⟶ 128:
# ''Control link'', which is a procedural (transforming or enabling) link with a control modifier—the letter e (for event) or c (for condition), which adds semantics of a control element. The letter e signifies an event for triggering the linked process, while the letter c signifies a condition for execution of the linked process, or connection of two processes denoting invocation, or exception.
; Procedural link uniqueness OPM principle :A process needs to transform at least one object. Hence, a process shall be connected via a transforming link to at least one object or object state. At any particular extent of abstraction, an object or any one of its states shall have exactly one role as a model element with respect to a process to which it links: the object may be a transformee or an enabler. Additionally, it can be a trigger for an event (if it has the control modifier e), or a conditioning object (if it has the control modifier c), or both
; State-specified procedural links :
; Transforming links :
# ''Consumption link'':
# ''Effect link'':
# ''Result link'':
[[File:OPM State-specified transforming links.png|thumb|upright=1.5|OPM state-specified transforming links]]
; Enabling links : An enabling link is a procedural link specifying an enabler for a process—an object that must be present for that process to occur, but the existence and state of that object after the process is complete are the same as just before the process began. The two kinds of enabling links are:
# ''Agent and agent link'': A human or a group of humans capable of intelligent decision-making, who enable a process by interacting with the system to enable or control the process throughout execution
# ''Instrument and instrument link'': An inanimate or otherwise non-decision-making enabler of a process that cannot start or take place without the existence and availability of the instrument
; State-specified transforming links :
# ''State-specified consumption link'': A consumption link that originates from a particular state of the consumee, meaning that the consumee must be in that state for it to be consumed by the process to which it is linked. Graphically, an arrow with a closed arrowhead pointing from the particular object state to the process, which consumes the object, defines the state-specified consumption link
# ''State-specified result link'': A result link that terminates at a specific state of the resultee, meaning that the resultee shall be in that resultant state upon its construction. Graphically, an arrow with a closed arrowhead pointing from the process to the particular object state defines the state-specified result link. The syntax OPL sentence is: Process yields qualified-state Object.
# ''State-specified effect links'':
Line 138 ⟶ 147:
#* Input-output-specified effect link: A pair of effect links, where the input link originates from a particular state of the affectee and the output link originates from that process and terminates at the output state of the same affectee. Graphically, a pair of arrows with a closed arrowhead from the input state of the affectee to the affecting process and a similar arrow from that process to the state of the affectee at process terminates defines the input-output-specified effect link. The syntax OPL sentence is: Process changes Object from input-state to output-state.
#* Input-specified effect link: A pair of effect links, where the input link originates from a particular state of the affectee and the output link originates from that process and terminates at the affectee without specifying a particular state. Graphically, a pair of arrows consisting of an arrow with a closed arrowhead from a particular state—the input state—of the affectee to the process, and a similar arrow from that process to the affectee but not to any one of its states defines the input-specified effect link. The syntax OPL sentence is: Process changes Object from input-state.
#* Output-specified effect link: A pair of effect links, where the input (source) link originates from an affectee, and the output link originates from the process and terminates at the output (destination, resultant) state of the same affectee. Graphically, a pair of arrows consisting of an arrow with a closed arrowhead from the affectee, but not from any one of its states, to the affecting process, and a similar arrow from that process to a particular state of that affectee— the output state— defines the output-specified effect link
[[File:OPM Basic transforming event links.png|thumb|upright=1.5|OPM basic transforming event links]]
; State-specified enabling links : Originate from a specific qualifying state and terminate at a process, meaning that the process may occur if and only if the object exists at the state from which the link originates.
# ''State-specified agent link'':
# ''State-specified instrument link'': An instrument link that originates from a specific qualifying state of the instrument. Graphically, a line with an empty circle ("white lollipop") at the terminal end extending from the qualifying state of the instrument object to the process it enables defines a state-specified instrument link. The syntax OPL sentence is: Processing requires qualifying-state instrument.
====Event-Condition-Action control====
; Preprocess object set and process precondition : In order for an OPM process to start executing once it has been triggered, it needs a set of objects comprising one or more consumes, some possibly at specific states, and/or affects, collectively called the preprocess object set
[[File:OPM Basic Enabling event links.png|thumb|upright=1.5|OPM basic enabling event links]]
; Post-process object set and process post-condition : A set of objects, comprising one or more results, some possibly at given states, and/or affects, collectively called the post-process object set, shall result from executing a process and carrying out the transformations associated with its execution
====Control links====
An event link and a condition link express an event and a condition, respectively. Control links occur either between an object and a process or between two processes.
; Event links :
# ''Basic transforming event links'': A consumption event link is a link between an object and a process, which an instance of the object activates
#* Consumption event link: Graphically, an arrow with a closed arrowhead pointing from the object to the process with the small letter e (for event). The syntax of a consumption event link OPL sentence is: Object triggers Process, which consumes Object.
#* Effect event link: Graphically, a bidirectional arrow with closed arrowheads at each end between the object and the process with a small letter e (for event). The syntax of an effect event link OPL sentence is: Object triggers Process, which affects Object.
# ''Basic enabling event links'':
#* Agent event link: An agent event link is an enabling link from an agent object to the process that it activates and enables. Graphically, a line with a filled circle ("black lollipop") at the terminal end extending from an agent object to the process it activates and enables with a small letter e (for event). The syntax of an agent event link OPL sentence is: Agent triggers and handles Process.
#* Instrument event link:
#''State-specified transforming event links'':
#* State-specified consumption event link: A state-specified consumption event link is a consumption link that originates from a specific state of an object and terminates at a process, which an instance of the object activates
#* Input-output-specified effect event link: An input-output-specified effect event link is an input-output-specified effect link with the additional meaning of activating the affecting process when the object enters the specified input state. Graphically, the input-output-specified effect link with a small letter e (for event). The syntax of an input-output specified effect event link OPL sentence is: Input-state Object triggers Process, which changes Object from input-state to output-state.
#* Input-specified effect event link: An input-specified effect event link is an input-specified effect link with the additional meaning of activating the affecting process when the object enters the specified input state. Graphically, the input-specified effect link with a small letter e (for event. The syntax of an input-specified effect event link OPL sentence is: Input-state Object triggers Process, which changes Object from input-state.
Line 172 ⟶ 181:
#* State-specified instrument event link: A state-specified instrument event link is a state-specified instrument link with the additional meaning of activating the process when the instrument enters the specified state. Graphically, the state-specified instrument link with a small letter e (for event). The syntax of a state-specified instrument event link OPL sentence is: Qualifying-state Instrument triggers Processing, which requires qualifying-state Instrument."
# ''Process invocation''
# ''Self-invocation link''
# ''Implicit invocation link'': Implicit invocation occurs upon sub-process termination within the context of an in-zoomed process, at which time the sub-process invokes the one(s) immediately below it. Graphically, there is no link between the invoking and the invoked sub-processes; their relative heights within the in-zoom context of their ancestor process implies this semantics.
; Condition links : A condition link is a procedural link between a source object or object state and a destination process that provides a bypass mechanism
# ''Condition consumption link'': A condition consumption link is a condition link from an object to a process, meaning that if in run-time an object instance exists, then the process precondition is satisfied, the process executes and consumes the object instance
# ''Condition effect link'':
# ''Condition agent link'':
# ''Condition instrument link'':
# ''Condition state-specified consumption link'': A condition state-specified consumption link is a condition consumption link that originates from a specified state of an object and terminates at a process, meaning that if an object instance exists in the specified state and the rest of the process precondition is satisfied, then the process executes and consumes the object instance
# ''Condition input-output-specified effect link'': A condition input-output-specified effect link is an input-output specified effect link with the additional meaning that if at run-time an object instance exists and it is in the process input state (and assuming that the rest of the process precondition is satisfied), then the process executes and affects the object instance
# ''Condition input-specified effect link'': A condition input specified effect link is an input-specified effect link with the additional meaning that if at run-time an object instance exists in the specified input state and the rest of the process precondition is satisfied, then the process executes and affects the object instance by changing its state from its input state to an unspecified state. However, if that object instance does not exist at the input state, then the process precondition evaluation fails and the control skips the process. Graphically, the condition input-specified effect link with the small letter c (for condition) near the arrowhead of the input link. The syntax of a condition input-specified effect link OPL sentence is: ''Process'' occurs if ''Object'' is input state, in which case ''Process'' changes ''Object'' from input-state, otherwise Process is skipped.
# ''Condition output-specified effect link'': A condition output-specified effect link is an output-specified effect link with the additional meaning that if at run-time an object instance exists and the rest of the process precondition is satisfied, then the process executes and affects the object instance by changing its state to the specified output-state. However, if that object instance does not exist, then the process precondition evaluation fails and the control skips the process. Graphically, the condition output-specified effect link with the small letter c (for condition) near the arrowhead of the input link. The syntax of the condition output-specified effect OPL sentence is: ''Process'' occurs if ''Object'' exists, in which case ''Process'' changes ''Object'' to ''output-state'', otherwise ''Process'' is skipped.
# ''Condition state-specified agent link'':
# ''Condition state-specified instrument link''
More information and examples can be found in ''Model-Based Systems Engineering with OPM and SysML'', Chapter 13 "The Dynamic System Aspect".<ref name="Model-Based"/>
Line 196 ⟶ 204:
; Unidirectional tagged structural link : Has a user-defined semantics regarding the nature of the relation from one thing to the other. Graphically, an arrow with an open arrowhead. Along the tagged structural link, the modeler should record a meaningful tag in the form of a textual phrase that expresses the nature of the structural relation between the connected objects (or processes) and makes sense when placed in the OPL sentence whose syntax follows.
; Unidirectional null-tagged structural link :
; Bidirectional tagged structural link : When the tags in both directions are meaningful and not just the inverse of each other, they may be recorded by two tags on either side of a single bidirectional tagged structural link
; Reciprocal tagged structural link : A
; Fundamental structural relations : The most prevalent structural relations among OPM things and are of particular significance for specifying and understanding systems. Each of the fundamental relations is elaborate or refine one OPM thing, the source thing, or refinee, into a collection of one or more OPM things, the destination thing or things, or refineables
; Aggregation-participation link : A refinee—the whole—aggregates one or more other refineables—the parts. Graphically, a black solid (filled in) triangle with its apex connecting by a line to the whole and the parts connecting by lines to the opposite horizontal base shall denote the aggregation-participation relation link.
; Exhibition-characterization link : A thing exhibits, or is characterized by, another thing. The exhibition-characterization relation binds a refinee—the exhibitor—with one or more refineables, which shall identify features that characterize the exhibitor Graphically, a smaller black triangle inside a larger empty triangle with that larger triangle's apex connecting by a line to the exhibitor and the features connecting to the opposite (horizontal) base defines the exhibition-characterization relation link.
; Generalization-specialization and inheritance : These are structural relations which provide for abstracting any number of objects or process classes into superclasses, and assigning attributes of superclasses to subordinate classes.
# ''Generalization-specialization link''
# ''Inheritance through specialization''
# ''Specialization restriction through discriminating attribute'': A subset of the possible values of an inherited attribute may restrict the specialization.
; Classification-instantiation and system execution
# ''Classification-instantiation link'': A source thing, which is an object class or a process class connect to one or more destination things, which are valued instances of the source thing's pattern, i.e. the features specified by the pattern acquire explicit values. This relation provides the modeler with an explicit mechanism for expressing the relationship between a class and its instances created by the provision of feature values. Graphically, a small black circle inside an otherwise empty larger triangle with apex connecting by a line to the class thing and the instance things connecting by lines to the opposite base defines the classification-instantiation relation link. The syntax is: Instance-thing is an instance of Class-thing.
# ''Instances of object class and process class''
; State-specified structural relations and links
# ''State-specified characterization relation and link'': An exhibition-characterization relation from a specialized object that exhibits a value for a discriminating attribute of that object, meaning that the specialized object shall have only that value. Graphically, the exhibition-characterization link triangular symbol, with its apex connecting to the specialized object and its opposite base connecting to the value, defines the state-specified characterization relation. The syntax is: Specialized-object exhibits value-name Attribute-Name.
# ''State-specified tagged structural relations and links'': A structural relation between a state of an object or value of an attribute and another object or its state or value, meaning that these two entities are associated with the tag expressing the semantics of the association. In case of a null tag (i.e., the tag is not specified), the corresponding default null tag is used. Three groups of state-specified tagged structural relations exist: (1) source state-specified tagged structural relation, (2) destination state-specified tagged structural relation, (3) source-and-destination state-specified tagged structural relation. Each of these groups includes the appropriate unidirectional, bidirectional, and reciprocal tagged structural relation, giving rise to seven kinds of state-specified tagged structural relation link and corresponding OPL sentences.
Line 243 ⟶ 251:
; Logical AND procedural links
The logical operators AND, XOR, and OR among procedural relations enable specification of elaborate process precondition and postcondition. Separate, non-touching links shall have the semantics of logical AND.
Here, unlocking the safe requires all three keys.
; Logical XOR and OR procedural links
The XOR operator shall mean that exactly one of the things in the span of the link fan exists, if the divergent link end has objects, or happens, if the divergent link end has processes. Graphically, a dashed arc across the links in the link fan with the arc focal point at the convergent end point of contact shall denote the XOR operator.
Line 253 ⟶ 261:
; State-specified XOR and OR link fans
[[File:Control-modified link fans.jpg|thumb|upright=1.5|Control-modified link fans]]
; Control-modified link fans
[[File:Link probabilities and probabilistic link fans.jpg|thumb|upright=1.5|Link probabilities and probabilistic link fans]]
; Link probabilities and probabilistic link fans
[[File:Execution path and path labels.jpg|thumb|upright=1.5|Execution path and path labels]]
; Execution path and path labels : A path label shall be a label along a procedural link, which, in the case that there is more than one option to follow upon process termination, prescribes that the link to follow will be the one having the same label as the one which we entered the process
==Modeling principles and model comprehension==
OPM provides abstracting and refining mechanisms to manage the expression of model clarity and completeness
; Stakeholder and system's beneficiary identification
; System diagram
The resulting top-level OPD is the system diagram (SD), which includes the stakeholder group, in particular the beneficiary group, and additional top-level environmental things, which provide the context for the system's operation. The SD should contain only the central and important things—those things indispensable for understanding the function and context of the system. The function is the main process in SD, which also contains the objects involved in this process: the beneficiary, the operand (the object upon which the process operates), and possibly the attribute of the operand whose value the process changes
; OPD tree
; Clarity and completeness trade-off
; Refinement-abstraction mechanisms
OPM shall provide abstracting and refining mechanisms to manage the expression of model clarity and completeness
; State expression and state suppression
The inverse of state suppression shall be state expression, i.e., refining the OPD by adding the information
concerning possible object states. The OPL corresponding to the OPD shall express only the states of the
Line 290 ⟶ 293:
; Unfolding and folding
; In-zooming and out-zooming
Line 297 ⟶ 300:
==Meta modeling==
[[File:OPM Model.jpg|thumb|upright=1.5|OPM model structure]]
; OPM model structure
[[File:OPM Model 2.jpg|thumb|upright=1.5|OPM model structure—OPL]]
; Model of OPD Construct and Basic Construct
[[File:OPD Metamodel.jpg|thumb|upright=1.5|OPD model]]
Line 319 ⟶ 318:
; OPM model of Thing generic properties
[[File:OPM model of Thing generic properties.jpg|thumb|upright=1.5|OPM model of Thing generic properties]]
OPM model of Thing generic properties, depicts Thing and its Perseverance, Essence, and Affiliation generic properties modelled as attribute refinees of an exhibition-characterization link. Perseverance is the discriminating attribute between Object and Process
; In-zooming and out-zooming models
Both new-diagram in-zooming and new-diagram out-zooming create a new OPD context from an existing OPD context. New-diagram in-zooming starts with an OPD of relatively less details and adds elaboration or refinement as a descendant OPD that applies to a specific thing in the less detailed OPD.
==Versions==
Line 346 ⟶ 337:
A previous OPCAT version, 3.1, with fewer capabilities, is also available from the same site. Both are coded in Java. The first OPCAT version, OPCAT 1.X, was written in Visual C++ in 1998.
In the beginning of 2016 a team of students under the management of Dori began working on the new generation of OPCAT which will be called OPCloud.<ref>{{cite web |last1=Enterprise Systems Modeling Laboratory |title=opcloud |url=https://www.opcloud.tech/}}</ref> As suggested by the name of the software, it will be a cloud-based application, and will enable users to create OPM models using a web-based application.<ref>{{cite web |last1=Dori |first1=Dov |last2=Jbara |first2=Ahmad |last3=Levi |first3=Natali |last4=Wengrowicz |first4=Niva |title=Object-Process Methodology, OPM ISO 19450 – OPCloud and the Evolution of OPM Modeling Tools |url=https://www.ppi-int.com/syen61-a1/ |website=Project Performance International |
==Standardization==
Line 352 ⟶ 343:
===ISO and OPM===
In June 2008, Richard Martin approached [[Dov Dori]] after his presentation at the [[International Council on Systems Engineering|INCOSE]] International Symposium in Utrecht, the Netherlands, to inquire about the possibility of creating an International Standard for OPM.
In May 2010, Dori presented a brief overview of OPM and his demonstration model at the ISO Technical Committee 184/Sub-Committee 5 (TC184/SC5) plenary meeting, which then adopted a resolution to create an OPM Study Group for the purpose of examining the potential for OPM to enhance the standards created by SC5.<ref>{{cite web |last1=Dori |first1=Dov |last2=Howes |first2=David |last3=Blekhman |first3=Alex |last4=Martin |first4=Richard |title=OPM as a Basis for Model - Based Enterprise Standards, Report of the ISO TC184/SC5 OPM Working Group to the Plenary ISO TC184/SC5Meeting, Tokyo 26, 2010 |url=http://esml.iem.technion.ac.il/wp-content/uploads/2011/05/OPM_WG_Report_to_TC184-SC5_Tokyo_March_26_2010.pdf |
The OPM Study Group began its work in October 2010 and issued an interim report for the 2011 SC5 Plenary.<ref name=":0">{{cite web |last1=Blekhman |first1=Alex |last2=Dori |first2=Dov |last3=Martin |first3=Richard |title=Model-Based Standards Authoring |url=http://esml.iem.technion.ac.il/wp-content/uploads/2011/07/Model-Based-Standards-Authoring-March-2011.pdf |
A final OPM Study Group Report and a draft for a metamodel for model-based standards authoring document were delivered at the 2012 SC5 Plenary.<ref>{{cite web |last1=SC 5 PLENARY MEETING |title=Meeting Report |url=http://esml.iem.technion.ac.il/wp-content/uploads/2011/05/ISO-TC184-SC5_N1185_2012_SC5_Plenary_Meeting_Report_-_Haifa_.pdf |
===ISO 19450 Document===
Line 369 ⟶ 360:
== OPM vs. SysML and UML ==
; OPM vs. SysML
SysML is defined as an extension of the [[Unified Modeling Language]] (UML) using [[profile (UML)|UML's profile mechanism]].<ref name="SysMLvsOPM"/>
; OPM vs. UML
The differences between OPM and UML are highly perceivable during the analysis and design stages. While UML is a multi-model, OPM supports a single unifying structure-behavior model. The crucial differences stem from the structure-oriented approach of UML, in which behavior is spread over thirteen diagram types, a fact that inevitably invokes the model multiplicity problem.<ref>{{cite journal | last1 = Peleg | first1 = M. | last2 = Dori | first2 = D. | year = 2000 | title = The Model Multiplicity Problem: Experimenting with Real-Time Specification Methods
==Generating SysML views from an OPM model==
While both languages aim at the same purpose of providing a means for general-purpose systems engineering, these languages take different approaches in realizing this goal. SysML is a profile of UML (Unified Modeling Language)
The OPM-to SysML translation is one-to-many in the sense that a single OPM element (entity or link) usually translates to several SysML elements that belong in different SysML diagram types. For example, an OPM process, which is defined as an entity that transforms (generates, consumes, or changes the state of) an object, can be mapped to any subset of the following SysML entities:
* Use case (in a
* Action (in an
* State transition trigger (in a
As OPM and SysML are two distinct and differently designed languages, not all the constructs in one language have equivalent constructs in the other language.
# The first type of diagram in UML that can be generated from an OPM diagram is the use case diagram which is intended for modeling the usage of a system. The main elements comprising the use case diagram are actors and use cases (the entities) along with the relationships (links) among them. Generation of a use case diagram from OPM is therefore based on environmental objects (the actors) and the processes (the use cases) linked to them. Figure 1 is an example of use case diagram generation of SD0. The figure shows the root OPM diagram (a), the corresponding OPL text (b), and the created use case diagram (c). Figure 2 shows a SD1 level of OPD from the same OPM model (a), and the generated use case diagram (b).
# The second type of diagram is the block definition diagram (BDD) which defines features of blocks (like properties and operations) and relationships between blocks, such as associations and generalizations. Generating a BDD is based upon the systemic objects of the OPM model and their relationships—mainly structural relations to other model elements.
# The third type of diagram is activity diagrams which are intended to specify flow. Key components included in the activity diagram are actions and routing flow elements. In our context, a separate Activity Diagram can be generated for each OPM process containing child subprocesses, i.e., a process which is in-zoomed in the OPM model. There are two kinds of user parameters that can be specified via the settings dialog. The first one deals with selection of the OPM processes: One option is to explicitly specify the required OPM processes by selection from a list. The alternative, which is the default option, is to start with the root OPD (SD) and go down the hierarchy. Here we reach the second parameter (that is independent of the first one), which is the required number of OPD levels (k) to go down the hierarchy. In order to give the user control over the level of abstraction, the diagrams are generated up to k levels down the hierarchy. Each level will result in the generation of an additional activity diagram, which is a child activity (subdiagram) contained in the enclosing higher-level activity. The default setting for this option is "all levels down" (i.e., "k = ∞").<ref>{{cite book |last1=Grobshtein |first1=Yariv |last2=Dori |first2=Dov |title=Creating SysML views from an OPM model |date=2009 |publisher=IEEE |___location=Haifa, Israel |isbn=978-1-4244-2967-7 |pages=36–44 |ref=SysMLfromOPM|doi=10.1109/MBSE.2009.5031718 |s2cid=6195904 }}</ref>
== See also ==
|