Object Process Methodology: Difference between revisions

Content deleted Content added
m lay-out
No edit summary
Line 1:
==Overview==
This entry elaborates on the modeling language Object Process Methodology.
Little will be spent on the history of the language, continued by explanation of its theory and use.
 
 
==Definitions==
'''Object Process Methodology''' is an approach to blueprint (commonly) [[information system]]ssystems by depicting them using object models and process models.
 
An '''object model''' describes the integrity of an object within the analyzed system.
 
A '''process model''' describes the flow of processes within a specific part of the analyzed system.
 
 
==History==
OPM was founded by Dov Dori, researcher at the Technion-Israel Institute of Technology. Dori published his book "Object-Process Methodology - A Holistics System Paradigm" in 2002, published by Springer.
Dori published his book "Object-Process Methodology - A Holistics System Paradigm" in 2002, published by Springer.
 
The common language [[UML]] for modeling mainly software systems was in need of a new and simplified approach to model not only software systems, but information systems as well. This is why OPM was created. OPM intends to answer to the growing complexity in software systems and focusses on lifecycle support as well.
OPM intends to answer to the growing complexity in software systems and focusses on lifecycle support as well.
 
 
==Elements==
OPM has uses two types of elements: '''entities''' and '''links'''. Entities are used to express 'physical' elements in a system.
Entities are used to express 'physical' elements in a system.
 
The entities used in OPM are '''objects''', '''states''' and '''processes'''.
An object is a thing existing in the system which exists for a set time.
A state is a situation an object can be in.
A process is a thing that transforms an object (alters the state of the object).
 
The links used in OPM are '''structural links''' and '''procedural links'''.
A structural link forms a relation between two objects and is persistent.
A procedural link is used to link an object to a process and indicates a change in the state of the object.
Line 35 ⟶ 23:
 
==Links==
The table below indicates the aggregation of the different links and gives a short explanation per link.
 
[[Image:OPM-Links.gif]]
===Structural link===
''(yet to elaborate on)''
General structural links: unidirectional tagged structural link, Bidirectional tagged structural link.
 
Fundamental structural links: aggregation-participation, exhibition-characterization, generalization-specialization, classification-instantiation.
 
==Cardinality==
OPM knows cardinality constraining, meaning a way to indicate to what extent 2 objects can relate to each other. In OPM these constraints are called participation constraints.
Example: 1 man can marry 1 woman. The constraining makes this a 1 to 1 relation.
Constraining can be formulated like:
 
1 tot 1
===Procedural link===
 
''(yet to elaborate on)''
1 to many
Enabling links: agent link, instrument link
 
Transforming links: consumption/result link, effect link
1 to fixed number
Other links: event link, condition link, exception link, invocation link
 
many to many
 
fixed number to fixed number
 
Optional (expressed as: ?)
 
 
Line 54 ⟶ 50:
 
The OPD treats complexity by using three refinement and abstraction mechanisms:
 
- Zooming in and out
-Zooming Foldingin and Unfoldingout
 
- State expression and suppression
Folding and Unfolding
 
State expression and suppression
 
 
Having only one diagram, this methodology knows no multiplicity in depicting objects and processes, which improves exchangeability between different diagrams and even different methods.
 
A helpful tool to create OPD's is OPCat2.
 
==Object Process Language==
Another feature of the Object Process Methodology is the '''Object Process Language'''.
An OPD can be translated in sentences, telling the storyline of the diagram.
The power of OPL lies in the fact that it is readable by humans but also interpretable by computers, thus making it an inter-exchangeable language.
 
 
==Object-Process Case Tool==
Modeling through OPM is possible with a specialized tool called Object-Process Case Tool. The latest version of this tool is called OPCat2 and can be downloaded from www.objectprocess.org.
 
The application has several strong features, which are listed below.
 
Syntax checking
The creator of an OPD is immediately warned when an illegal OPD construction is being crated. The application refers to the issue and explains the error.
 
OPL generator
Modeling an OPD automatically creates the corresponding natural text, formatted in OPL. This way, the creator can use the generated OPL additionally to check his work during the composition of the model.
 
Exchangeability with UML
The application ahs the possibility to export an OPD to many UML diagrams, namely:
 
Use Case Diagram
 
Sequence Diagram
 
Statechart
 
Class Diagram
 
Deployment Diagram
 
Activity Diagram
 
 
==Object Process Diagram example: Marriage==
The example below demonstrates the modeling of the concept marriage in an OPD.
 
[[Image:OPD-Marriage.gif]]
 
 
This example indicates how the states of the objects man and woman can transform from being single to being married by the process called marrying.
 
The result/consumption link takes the status single of the objects man and woman through the process marrying to the state married.
 
The process forms the object couple, which consists of the objects man and woman.
 
The object couple has the object wedding date as a characterization through a exhibition-characterization link.
 
John is a man and Jane is a woman, due to the generalization-specialization link.
 
 
==Object Process Language example: Marriage==
As a result of the previous example, the object-process case tool created the OPL data that corresponds with the OPD. The OPL is given below.
 
[[Image:OPL-Marriage.gif]]
 
 
The examples explains itself. The colors of the text correspond with the elements in the OPD example.
 
==Exchangeability==
Opcat2 has the possibility to transform an OPD to several UML diagrams and thus makes OPM exchangeable with UML.
 
==Object Process Methodology Meta-Model==
The model below represents the meta-model of an OPD.
The simplicity of the model reflects the simplicity of the OPD itself.
 
[[Image:OPM-Metamodel.gif]]
==Note==
''This entry is currently under construction''