dori model
dori model
dori model
Dov Dori
Background
Current object-oriented methods suffer from three major inter-related problems:
the encapsulation problem, the complexity management problem and the model
multiplicity problem.
The encapsulation problem is a direct consequence of the OO encapsulation
principle, which requires that any process be "owned" by some object, within which it
is defined. While being a helpful programming convention, a direct, unavoidable
consequence of this encapsulation requirement is lack of explicit process modeling.
Conforming to the OO encapsulation principle suppresses the dynamic aspect of the
system and imposes an unnatural modeling of the real world, because processes
usually involve more than one object class. Hence, while being a suitable
programming paradigm, this unnecessary encapsulation constraint has been a source
of endless confusion and awkward modeling of real life situations.
The complexity management problem is rooted in the fact that OO methods cope
with managing the complexity that is inherent in real-life systems by breaking it into
various models, one for each aspect or facet of the problem: structure (the object/class
model), dynamics (Statecharts), actors (use cases), etc. When the system is large and
complex, no good tools are available to seamlessly present parts of the system at
varying levels of complexity.
The closely related model multiplicity problem stems from the fact that the
fundamental OO object/class model, which is at the basis of all OO methods, is
inadequate for accommodating the functional and dynamic system aspects. OO
methods must employ a host of models to specify the various aspects of the system.
The currently accepted UML standard (Fowler, 1999; OMG, 2000) requires nine
different models, including class diagram, use case diagram, message trace diagram,
object message diagram, state diagram, module diagram, and platform diagram.
The model multiplicity problem refers to the need to comprehend and mentally
integrate a variety of models of the same system and constantly take care of
synchronizing among them.
This problem arises from the requirement to concurrently construct, maintain and
consult several models that represent various system aspects. Some of the confusion
caused by model multiplicity is expressed in the following excerpt (Kovitz, 1998) that
discusses the best mix of using UML class diagrams (the static model) and
collaboration diagrams (the dynamic model):
Object-Process Methodology
Object-Process Methodology - OPM (Dori, 1995; Dori, 2000) is a systems
development approach that responds to the challenges which problems with the
aforementioned OO methods raise. Using a single, integrated graphic and natural
language model, OPM caters to the natural train of thought developers normally
apply while trying to understand and build complex systems that involve humans,
hardware and software. In such systems, it is usually the case that structure and
behavior are intertwined so tightly, that any attempt to separate them is bound to
further complicate the already complex description.
OPM achieves model integration by incorporating the three major system aspects -
function, structure, and behavior - into a single model, in which both objects and
processes are adequately represented without suppressing each other. This approach
counters contemporary object-oriented systems development methods, notably UML,
which require several models to completely specify a system. OPM is therefore not
yet another OO analysis and design method, as it recognizes the fact that separating
structure from behavior while engaging in system modeling, which results in the
model multiplicity problem discussed above, is counter-intuitive and therefore
counter-productive.
effect link
Input link Output link
Figure 1 shows the underlying principle of how such bi-directional effect link is
generated. Arrows denote transformation links, which can be effect links,
consumption links and result links. Figure 1(a) shows how the process Retailing
affects the object Product by transforming it from state manufactured to state retailed.
In Figure 1(b), the states of Product are suppressed and then there is no point in
keeping the incoming and outgoing effect links separate. In Figure 1(c) these two
links are therefore merged into the (bi-directional) effect link.
Fundamental structural relations are the four structural relations which, due to their
frequent usage, are denoted by special (triangular) symbols. Characterization, for
example, is denoted by a black-on-white triangle, as shown in Figure 5 and translated
to the OPL sentence
End Customer features Satisfaction.
Credit Card Processing is represented in Figure 3 as a sub-process of Retailing. To
model the free text description of Figure 2, in Figure 5 we zoom into Credit Card
Processing, and in Figure 6 we provide the corresponding OPL paragraph. As before,
the combination of the OPD and OPL is almost self-explanatory.
Control structures
Figure 5 demonstrated two basic control structures: if-then and if-then-else. The
object Satisfaction and its states exemplify the if-then statement.
The OPL sentence is
Back-Charging occurs if Satisfaction is low.
The object Authorization and its states exemplify two if-then statements:
Capturing occurs if Authorization is granted.
Notifying occurs if Authorization is denied.
Since there are only two Authorization values, these two OPL sentences could be
combined into the following single OPL sentence:
Capturing occurs if Authorization is granted, else Notifying occurs.
A case statement is a generalization of these examples, where the number of states
is not limited to two. In Peleg and Dori (1998) we show how other control structures,
like loops and recursion, can also be explicitly modeled within OPDs.
Capturing, Notifying and Back-Charging that comprise Credit Card Processing and are
depicted within its zoomed-in enclosing ellipse. The enclosing high-level process acts
as a graphic shorthand notation that saves drawing many links from the enabling
object to each one of the enabled processes.
The distributive nature of relations exists not only for procedural relations but also
for structural ones. Thus, in Figure 8, the structural relation holds emanating from
Web-Server is common to both Transaction Amount and Credit Card Details.
Therefore, in Figure 9, instead of writing the two separate sentences
Web-Server stores Transaction Amount.
and
Web-Server stores Credit Card Details.
we write shortly, in one sentence:
Web-Server holds Transaction Amount and Credit Card Details.
It should be noted that this is a simplified model as it does not take into account
the distinction between the card issuing bank and the acquiring bank - the bank that
has a business relationship with a merchant and receives all credit card transactions
from that merchant. (Rosenberg, 1993).
Retailer handles Credit Card Processing.
Credit Card Processing Company handles Credit Card Processing.
Credit Card Processing requires Transaction Amount.
Credit Card Processing requires Credit Card Details.
Credit Card Processing affects End Customer.
Credit Card Processing zooms into Authorizing, Capturing, Notifying and Back-
Charging.
Authorizing yields Authorization.
Authorization can be granted or denied.
Notifying occurs if Authorization is denied.
Notifying yields Notification.
Capturing occurs if Authorization is granted.
Capturing affects Income.
Retailer earns Income.
End Customer exhibits Satisfaction.
Satisfaction can be high or low.
Back-Charging occurs if Satisfaction is low.
Back-Charging affects Income.
2 that reads:
Authorisation simply means that the card has not been reported stolen, and there is sufficient credit on
the card.
The OPL sentence pair that refers to a Boolean object are phrased so as to make
sense in a natural language. For the "Credit Card is Reported Stolen?" Boolean object,
the two OPL sentences, which appear in Figure 11, are as follows:
Legal Use Denying occurs if Card is Reported Stolen.
Credit Limit Checking occurs if Card is not Reported Stolen.
Merchant transmits the credit card data and sales amount with a request for authorization of the sale to
their acquiring bank. The acquiring bank that processes the transaction routes the authorization request
to the card-issuing bank. The credit card number identifies type of card, issuing bank, and the
cardholder's account. If the cardholder has enough credit in their account to cover the sale, the issuing
bank authorizes the transaction and generates an authorization code. This code is sent back to the
acquiring bank. The acquiring bank processing the transaction and then sends the approval or denial
code to the merchant's point of sale unit. Each point of sale device has a separate terminal ID for credit
card processors to be able to route data back to that particular unit.
Figure 7. A more detailed model of the authorization and capturing processes that
includes the interaction between the acquiring bank and the card issuing bank
Figure 12 and Figure 13 are the pair that specifies the Limit Checking & Decreasing
process.
Figure 12. Zooming into Credit Limit Checking
Limit Checking & Decreasing zooms into Comparing, Credit Limit Decreasing and
Continuing.
Comparing requires Transaction Amount and Credit.
Comparing determines whether Limit is greater than Amount.
Credit Limit Decreasing occurs if Limit is not greater than Amount.
Continuing occurs if Limit is greater than Amount.
Credit Limit Decreasing affects Credit Limit.
Credit Limit Decreasing establishes that Credit Limit is not Exceeded.
Figure 13. The OPL paragraph of the OPD in Figure 12
The equal treatment of people and machines has been criticized but Underwood
(1998) suggests that it may be realistic in terms of power relations and it prevents
issues from becoming invisible when their representation is transferred (translated) to
an actor of a different type. If, for example, some data collection functions are
transferred from police informers to computer programs it is still important to be able
to talk about the power relations and motives of the collectors and their allies.
Like ANT, OPM provides the system developer with facilities to account for
actors, which are the OPM enablers - agents and instruments. Unlike ANT, though,
agents are humans or organizations with intelligence and intent, while instruments are
any physical or informatical objects that are non-human and therefore are not
characterized by free will and intent. While it may be important to be able to talk
about the power relations and motives of the collectors and their allies in the above
example, the computer that stores that information is a mere instrument that cannot,
on its own, make any political use of the information is stores. In OPM, a clear
distinction is therefore made between the two enabling types. Moreover, while an
OPM process transforms (affects, consumes or generates) at least one object, enablers
do not change as a result of the occurrence of a process.
The interests of ANT actors are represented by scripts, usually imperative
statements such as "shut the door", "pay your taxes" or "calculate the gross pay".
Akrich and Latour (1992) give a comprehensive set of definitions of script-related
processes (such as inscription and conscription). These processes describe (amongst
other things) the translation of scripts among actors, often involving a change of
medium, for example from conditioned response in a human to lines of code in a
computer program.
ANT scripts are OPM processes in the sense that they specify what transformation
an object undergoes. Thus, the script "shut the door" is like the Door Shutting"
process in OPM, where some enabler (agent or instrument) changes the state of the
object Door from "open" to "closed". Likewise, the "pay your taxes" ANT script is
the "Tax Paying" OPM process, where an agent (the object Citizen) changes the state
of the object Tax from "unpaid" to "paid". Gross Pay Calculating" is the OPM
process of the ANT script "calculate the gross pay". Here, an instrument (the object
Computer) or an agent (the object Clerk) changes "Gross Pay" from "unknown" to
"calculated".
Scripts are imperative but don't have intentions; actors do. An actor can develop a
"program of action" (Akrich and Latour, 1992) perhaps with the intention of
maximising the number of actors following a particular script. Some actors may avoid
this by following an anti-program. A program of action can include the creation of
new actors suitably inscribed. The inscription is most effective if it becomes
irreversible, if the actor is, with respect to that script, a "black box" and the script
becomes inaccessible to other actors.
ANT helps us to understand the course of a project or enterprise. We can asks
questions such as "How did it come to turn out this way?" (through the changing
alliances of actors), "Who is influencing it?" (who has been doing what scripting?) or
"Why are some actors acting this way? " (what scripts are they carrying?). OPM goes
a long way in pinpointing cause and effect. Consider the OPD of Figure 10. One can
tell exactly why, for example, authorization for some transaction was denied.
Some of the more spectacular applications of ANT have been to the genealogy of
now well established scientific theories (Latour, 1987), the meaning of simple
technical devices (Latour, 1992) or the acceptance of a new product (Bijker, 1992).
More recently ANT has been applied to the development of information systems.
Monteiro and Hanseth (1996) claim that ANT allows a finer grained analysis of
information systems than some other interpretive approaches which can treat all
information systems as essentially similar.
To summarize this section, a comparison between OPM and ANT has revealed a
host of common features between the two approaches. OPM can be a prime vehicle to
express advanced ANT ideas and serve as a basis for developing and proving ANT
claims and hypotheses.
Summary
This paper has presented the Object-Process Methodology (OPM) as a viable
approach for precise and explicit specification of complex systems, such as
manufacturing, enterprise resource planning, electronic commerce and supply chain.
To demonstrate the relevance of OPM to electronic commerce we first analyzed a
broad, generic supply chain management system and its supporting electronic
commerce infrastructure. Gradually, we narrowed our focus to the electronic
commerce aspects of the system. In particular, we focused on the final stages of
electronic commerce that takes place between the retailer and the customer. Within
the retailing process we further focused on credit card based payment, which is a
broadly practiced electronic commerce activity. While noting that business-to-
business electronic commerce can also practice this method of payment, we restricted
the analysis to the interaction between the end customer and the retailer with the
involvement of the credit card processing company.
OPM appeals to the human intuition as it combines system structure and behavior
into a single model that caters to the natural train of thought humans apply while
trying to understand a complex system. As shown throughout the paper, the synergy
of combining structure and behavior using the formal graphic representation along
with a corresponding equivalent textual representation yields a system specification
tool with high expressive power. Due to these virtues of formality on one hand and
intuitiveness on the other hand, Object-Process Methodology is most suitable as an
infrastructure for Internet-based systems engineering environment, within which
inter-corporate business processes, such as ERP, and other electronic commerce
activities can be seamlessly defined and conducted.
References
Akrich, M. and Latour, B. (1992) A Summary of a Convenient Vocabulary for the Semiotics of Human
and Nonhuman Assemblies. in Bijker, Wiebe E, and Law, John (Eds) Shaping Technology / Building
Society, MIT Press, Cambridge, MA.
Beath, C.M. and Orlikowski, W.J. (1994). The Contradictory Structure of Systems Development
Methodologies. Information Systems Research 5(4), pp 350-377.
Booch, G., Jacobson, I., and Rumbaugh, J., (1997). Unified Modeling Language (UML) Notation
Guide Version 1.1, Rational Software Corporation.
Dori, D. (1995). Object-Process Analysis: Maintaining the Balance between System Structure and
Behavior. Journal of Logic and Computation, 5(2), pp. 227-249.
Dori, D. (1996a). Object-Process Analysis of Computer Integrated Manufacturing Documentation and
Inspection Functions. International Journal of Computer Integrated Manufacturing 9(5), 339-353.
Dori, D. (1996b). Analysis and Representation of the Image Understanding Environment Using the
Object-Process Methodology. Journal of Object Oriented Programming, 9, 4, pp. 30-38, 1996.
Dori, D. (2000). Object-Process Methodology: A Holistic Systems Development Paradigm. Springer
Verlag (in press).
Dori, D. and Dori, Y.J. (1996). Object-Process Analysis of a Hypertext Organic Chemistry Studyware,
Journal of Computers in Mathematics and Science Teaching, 15, 1/2, pp. 65-84.
Dori D. and Sturm, A. (1998). OPCAT - Object-Process CASE Tool - an Integrated System
Engineering Environment (ISEE) OOPSLA'98 - Object-Oriented Programming , Systems, Languages
and Applications. Vancouver, BC, Canada, 18-22 October 1998.
http://www.acm.org/sigplan/oopsla/oopsla98/fp/demos/demos.htm
Fitzgerald, B. (1997) The Use of Systems Development Methodologies in Practice: a field study.
Information Systems Journal 7(3) pp. 201-212.
Fowler, M. UML Distilled, Second Edition, Addison Wesley, Reading, MA, 1999.
Hall, Upper Saddle River, New Jersey.
Ole Hanseth, O. and Monteiro E. Understanding Information Infrastructure.
http://www.ifi.uio.no/~oleha/Publications/bok.html
Jarzabek, S. and Huang, R. (1998). The Case for User-Centered CASE Tools. Communications of the
ACM, 41(8), pp. 93-99.
Kappel, G. (1995). The Advocatus Diaboli of Object-Oriented Development, Dagstuhl Seminar Report
9434, p.19,.
Kovitz, B.L. Practical Software Requirements: A Manual of Content and Style, Manning Publications
Company, 1998.
Lamond, K. (1996). Credit Card Taransactions: Real World and Online. http://www.virtualschool.edu
/mon/ElectronicProperty/klamond/Overvw.htm
Latour, B. and Woolgar, S. (1979) Laboratory Life: the Social Construction of Scientific Facts. Sage,
Beverly Hills and London.
Meyersdorf, D. and Dori, D. (1997). The R&D Universe and Its Feedback Cycles: an Object-Process
Analysis. R&D Management, 27(4), pp. 333-344.
OMG (2000) UML 1.3 Documentation:
http://www.rational.com/uml/resources/documentation/index.jtmpl
Optner,Stanford L. (1973) Systems Analysis Penguin, Harmondsworth.
Peleg, M. and Dori, D. (1998). Representing Control Flow Constructs in Object-Process Diagrams,
Journal of Object-Oriented Programming, 11(3), pp. 58-71.
Peleg, M. and Dori, D. (1999). Extending the Object-Process Methodology to Handle Real-Time
Systems. Journal of Object-Oriented Programming 11(8), pp. 53-58.
Peleg, M. and Dori, D. (2000). The Model Multiplicity Problem: Experimenting with Real-Time
Specification Methods. IEEE Transaction on Software Engineering, 26(7), pp. 1-18 ( to appear).
Rosenberg, J. M.: Dictionary of Banking, John Wiley & Sons Inc., New York, 1993.
Rumbaugh, J. , Blaha, M. , Premerlani, W., Eddy, F. and Lorenson, W. Object-Oriented Modeling and
Design, Prentice-Hall, Englewood Cliffs, NJ, 1991.
Textcor (1998) Electronic Commerce Primer, http://www.textor.com/commerce/ecom.html
Wand, Y. and Wang, R.Y. Anchoring Data Quality Dimensions in Ontological Foundations,
Communications of the ACM, 39, 11, pp. 86-95, 1996.
Underwood, J. (1998). Not Another Methodology: what ant tells us about systems development. Proc.
6th International Conference on Information Systems Methodologies, British Computer Society,
Salford UK. http://www-staff.mcs.uts.edu.au/~jim/papers/ismeth.htm
Wenyin, L. and Dori, D. A Generic Integrated Line Detection Algorithm and its Object-Process
Specification. Computer Vision - Image Understanding, 70, 3, pp. 420-437, 1998.
Wenyin, L. and Dori, D. Object-Process Diagrams as an Explicit Algorithm Specification Tool.
Journal of Object-Oriented Programming, pp. 52-59, 12, 2, 1999.
Dov Dori is Visiting Associate Professor at the Engineering Systems Division at MIT, Cambridge,
MA. He is Associate Professor at the Faculty of Industrial Engineering and Management, Technion,
Israel Institute of Technology and Founder and CEO of Systemantica, Inc., which develops OPM-
based systems development environment. Dov Dori received his B.Sc. in Industrial Engineering and
Management from the Technion in 1975, M.Sc. in Operations Research from Tel Aviv University in
1981, and Ph.D. in Computer Science from Weizmann Institute of Science, Rehovot, Israel, in 1988.
His research interests include Systems Development Methodologies, Information Systems
Engineering, Computer-Aided Software Engineering and Document Analysis and Recognition. Dov
Dori is Associate Editor of IEEE Transaction on Pattern Analysis and Machine Intelligence (T-PAMI)
and International Journal of Document Analysis and Recognition. He is Fellow of the International
Association for Pattern Recognition (IAPR) Senior Member of IEEE, and Member of IEEE Computer
Society and ACM.