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.