Title: Eran Toch
1Object Process Methodology(OPM)
Day ?
October 2007
- Eran Toch
- http//www.technion.ac.il/erant
2Agenda
3Model Aspects
External / Internal
Events / Sequential
Physical / Informatical
e
4Notating Aspects
Essence is an attribute of a thing that
determines whether the thing is physical or
informatical.
Informatical Object
Informatical Process
Phyisical Process
Phyisical Object
5Model Aspects
External / Internal
Events / Sequential
Physical / Informatical
e
6Environmental Notation
External Thing
Internal Things
7Aspect Matrix
8Model Aspects
External / Internal
Events / Sequential
Physical / Informatical
e
9Events
External Systems
Event Generator, which is environmental,
triggers Triggered Process.
10State Change
C triggers Triggered Process when its state
changes.
11State entrance event
S triggers Triggered Process when it enters s3.
12Process Timeout Events
Invoking Process triggers Min Constraint Handling
when it lasts less than Tmin and Max Constraint
Handling when it lasts more than Tmax.
13State Timeout Events
S triggers Min Constraint Handling when s1 lasts
less than Tmin and Max Constraint Handling when
s1 lasts more than Tmax.
14Agenda
15There are no free meals
There is a tradeoff between clarity and
completeness
16System Hierarchy
System Process
SD
SD-1
Zoomed-in Process
SD-2
SD-3
Leaf Process
17SD (System Diagram - Top Level)
18SD-1
19SD-2
Every two things can have a single link between
them on the higher level
20Top Level
- The top level diagram (SD), should contain
- A single process that represents the system
- External entities, and
- System Input / Output
This is only a guideline! Some examples might
not follow it
21Unfolding
- Each thing in OPM can be unfolded in order to
reveal more details
Unfolding
Folding
22Structural Aggregations
Exposing structural relations and connected
elements
Unfolding
Folding
23Unfolding
24Unfolding contd
25State Suppression and the Effect Link
State Suppression
State Expression
Lighting changes Lamp from off to on. Lighting
affects Lamp
OPL
26Links precedence
27Agenda
28Methodology
How to model?
Bottom-up
Top-down
29An Example of Top-Down Approach
Analyzing Scope
Modeling main processes
Modeling Main Data Objects
Modeling Conditions / States
Refining objects
Refining Processes
30How to Model?
Combined
31Combined
Analyzing Scope
Modeling main processes
Modeling Main Data Objects
Modeling Conditions / States
Refining objects
Refining Processes
32Agenda
33Working with Processes
- Push-down a process to a more detailed level
- Pulling up a process to a more abstract level
Ordering
Entering details
Entering details was pushed down
Entering details
Ordering
Ordering
Entering details
Entering details was Pulled up
Supplying
Supplying
34Rules of Thumb for Combining Processes
- We will aspire for a diagram to have between 3 to
7 processes - We will aspire to get a balanced object
distribution between process of a given diagram
- a similar scale of the number of related objects
35Rules of Thumb for Dividing Processes
- If a process has connections with objects that do
not take part in a given interaction, maybe the
sub-processes should be divided - If processes are executed in different time modes
batch vs. online executions, then maybe they
should be divided - If processes do not share objects then maybe they
should be divided
P2
P1
36Process Dependency
- Three types of dependencies between processes
- Strong dependency When a process B is performed
each time a process A occurs - Weak dependency A generates some data which is
later used by B - Independence B does not use any data generated
by A
P
A
B
Obj
A
B
37Processes that should be Avoided
- Physical processes (depends on scope)
- If the system is concerned only with the data,
then the physical processes should be avoided - For instance, if the supply system sends a
message to a worker to move a package, the system
itself does not move the actual package this is
not a process - We are not coding! Avoid technical details, such
as - File and database handling
- Maintenance jobs
- Input verification
- Presentation
38External Entities
- Sometimes the entity is the system itself.
- If you find a very large number of entities,
maybe they should be grouped to a more general
entity - For instance, if some reports are sent to
different clerks, the distinction between the
clerks is not always important. All these clerks
can be unified into a single entity - Entities can have a unidirectional connection
with the systems - Only receiving data
- Only supplying data
39Data Objects Design
- Aggregating data into a data store
- When the data has strong semantic proximity
- When the objects are always used together
- When the objects are accessed frequently by a
single process - Dividing data
- When semantic differences can be clearly defined
- When objects are too complex
40Agenda
41Example
Online Banking