Business process models do not lend themselves to implementation in an object-oriented way. If you go the UML way, you will break down the business process and express it in terms of states for each object involved in the process.
Let's take a short look at the States themselves. In the editors toolbar you find three different symbols:
State
In a state diagram, each state has at least two compartments, the top one always keeping the name of the state. The name usually is an adjective describing the recent object.
The states properties are a lot more meaningful and complex than they are in the activity diagrams. Not only does a state have ingoing and outgoing transitions, but also different actions or activities that are to be taken with it.
Composite
State
Composite States make visual use of the second compartment that encloses refinements of the given state. Enclosed states don't have to have an initial state. Ingoing as well as outgoing transitions might be connected directly to one of them. When the corresponding object is in the composite state, it is exactly in one of the sub-states (OR relation).
If you find yourself needing to change a simple state to a composite state, you have to delete the former and again add the new state via the toolbar.
Concurrent State
Concurrent States are, like the above, refinements; therefore, they are focused in the second compartment. When the corresponding object enters the concurrent state, all initial sub-states are enabled at once (AND relation).
Initial States
and
Final States -
Indicate the beginning and end of the observed process.
Action States -
Specific activities which comprise the process. They must be
executed in a specified chronological order. Sometimes you may
want to split the sequence. Therefore, you have two different
possibilities: Branches (choice) and Forks (concurrency).
Branches - These
divide the sequence into several alternatives specified by
different conditions (guards).
Forks and
Joins - Forks divide the
sequence into concurrent sub-sequences. Joins merge the
sub-sequences.
Synchronization
States - Used in concurrent sub-sequences to
synchronize producer-consumer relations.
Transitions - The
ingredient that keep states active and the model elements
together. Each transition can be given guards
, triggers
, and actions
as properties
to describe its behavioral details.
Object Flow States - Objects
are inputs or outputs of activities and are accordingly
connected by transitions to them.
Dependencies - Always possible
between any model elements.
Choices and
Junctions - Both elements are
used in sequential systems to define decision points. The
difference between them is that choices are dynamic and junctions
are static.
Shallow History and
Deep History - History states are
used to memorize past active states so that you can return to a
marked point and don't have to start again from the beginning. A
deep history allows you to return from any sub-state, whereas a
shallow one only remembers the initial state of a composite
state.