Object Process Methodology: Difference between revisions

Content deleted Content added
Remove a couple more sentences copy/pasted from same book
starting work on this, removing and replacing with quotes content copied from Dov Dori's 2016 book Model-Based Systems Engineering with OPM and SysML. Copyrighted content: Do NOT restore
Line 19:
Object Process Methodology (OPM) is a conceptual modeling language and methodology for capturing knowledge and designing systems. Based on a minimal universal [[Ontology (computer science)|ontology]] of [[stateful]] [[Object (computer science)|object]]s and [[Process theory|process]]es that transform them, OPM can be used to formally specify the function, structure, and behavior of artificial and natural systems in a large variety of domains. Catering to human cognitive abilities, an OPM model represents the system under design or study bimodally in both graphics and text for improved representation, understanding, communication, and learning.
 
In OPM, an ''object'' is a thinganything that exists,does or mightdoes not exist, physically or informatically. Objects are [[stateful]]—they may have states, such that at each point in time, the object is at one of its states or in transition between states. A ''process'' is a thing that transforms an object by creating or consuming it, or by changing its state.
 
OPM is bimodal; it is expressed both visually/graphically in Object-Process Diagrams (OPD) and verbally/textually in Object-Process Language (OPL), a set of automatically generated sentences in a subset of English. A patented software package called OPCAT, for generating OPD and OPL, is freely available.<ref name="OPCAT">{{cite web |url=http://esml.iem.technion.ac.il/opcat-installation/ |title=Enterprise Systems Modeling Laboratory » OPCAT installation |website=technion.ac.il |access-date=3 May 2017}}</ref>
 
==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:
Around that time, in 1991, [[Dov Dori]], who then joined [[Technion – Israel Institute of Technology]] as faculty, realized that just as the procedural approach to software was not necessarily the most adequate one, neither was the "pure" OO approach, which puts objects as the sole "first class" citizens, with "methods" (or "services", or "operations") being their second-class subordinate procedures.{{Citation needed|date=May 2017}} When he and colleagues from [[University of Washington]] were trying to model a system for automated transformation of [[engineering drawing]]s to [[CAD model]]s, he realized that not all the boxes in their model were really objects; some were things that happen to objects.<ref>{{cite journal |last1=Dori |first1=Dov |last2=Tombre |first2=Karl |title=From engineering drawings to 3D CAD models: are we ready now? |journal=Computer-Aided Design |date=1995 |volume=27 |issue=4 |pages=243–254 |url=http://dori2.technion.ac.il/opm/documents/articles/article172.pdf|doi=10.1016/0010-4485(95)91134-7 |hdl=10068/41847 }}</ref> When he circled those things, a bipartite graph emerged, in which the nodes representing objects—the things that exist—were mediated by those circled nodes, which were identified as processes—the things that transform the objects. Dori published the first paper on OPM in 1995.<ref name="ReferenceA"/>
{{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, the "methods war" culminated in the adoption of the [[Unified Modeling Language]] (UML), by the [[Object Management Group]] (OMG), making it 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.
 
In 1997, the "methods war" culminated in the adoption of the [[Unified Modeling Language]] (UML), by the [[Object Management Group]] (OMG), making itbecame 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.
UML 1.X had nine types of diagrams. Following a 2001 initiative of the [[International Council on Systems Engineering]] (INCOSE), in 2003 OMG issued the UML for Systems Engineering Request for Proposals, and in 2006 OMG adopted SysML ([[Systems Modeling Language]]) 1.0 specification, which is based on UML 2. Since then, SysML has become the de facto standard for systems engineering.
 
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, ranging from the [[Semantic Web]] to defense and to molecular biology.<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> The recognition that models can and should become the central artifact in system lifecycles has been gaining momentum in recent years, giving rise to [[model-based systems engineering]] (MBSE) as an evolving field in the area of systems engineering.<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}}</ref>
 
In August 2014, after five years of work by ISO TC184/SC5,the ISO adopted OPM as ISO/PAS 19450.<ref name="ISO19450" />
SysML and OPM have been serving as the two MBSE languages, but since SysML was adopted as a standard about eight years before OPM and has been backed by top-notch vendors, its adoption is currently more widespread. However, OPM is rapidly gaining acceptance in academia and industry.{{citation needed|date=January 2020}}
 
In August 2014, after five years of work by ISO TC184/SC5, ISO adopted OPM as ISO/PAS 19450.<ref name="ISO19450" />
 
A second book on OPM, which also covers SysML, was published in 2016.<ref name="Model-Based">{{cite book |last=Dori |first=Dov |author-link=Dov Dori |title=Model-Based Systems Engineering with OPM and SysML |date=2016 |publisher=[[Springer-Verlag]] |___location=New York |isbn=9781493932955 |oclc=959032986 |doi=10.1007/978-1-4939-3295-5|s2cid=32425215 }}</ref>