COMP 325 Lecture 12: Object Oriented Analysis: System Dynamics
major resources: Introduction to Object Oriented Analysis, Brown 2002,
Object-Oriented and Classical Software Engineering 6ed,
Schach 2005, Object-Oriented Software Engineering, Schach 2008.
[ previous
| schedule
| next
]
Modeling System Dynamics
- Any object that is created and later deleted has a life cycle (born-lives-dies).
- So far we have focused on static aspects of an object, now turn to dynamics
(what happens over time)
- object diagram includes only static aspects of the system
- dynamics are modeled in UML using
- statechart diagrams
- collaboration diagrams
- sequence diagrams
- In Schach OOA, this addresses dynamic modeling and use-case realization
- In Brown OOA, this addresses KRB Step 7 find behaviors
UML Statechart diagrams
- Any object that has attributes has state (set of attribute values).
- Any object having behaviors/associations which change its attributes can
undergo state transitions.
- State transition occurs when object state changes
- State transitions are triggered by events.
- Many object state transitions are of interest for analysis modeling - in
particular, those that model changes of state that user's-world object goes
through. Others occur but are not yet of interest.
- Statechart diagrams (similar to state transition diagrams or finite
state machines) are included in UML to model life cycles and state transitions.
- class should probably have a statechart diagram if it has an
operational life cycle (pattern repeated many times throughout life,
such as states of a library book: shelved -> checked out -> checked
in -> shelved).
- What kinds of things are relevant to the "experience" of changing
state?
- the source state, or state before the transition
- the target state, or state after the transition
- the event trigger, or event that directly causes the transition
- the guard condition, an optional condition that must be true
at the time event is received for the transition to occur
- the transition action, an optional and atomic operation carried
out "during" the transition
- Some Examples
- Operation of an elevator
- consider single elevator system, such as in Towers Hall
- what states does it have?
- what events cause state transitions, and from what to what?
- what events (if any) do not cause state transition?
- develop a UML statechart diagram
- note that this is an operational cycle, not a life cycle
- Operation of a credit-card gasoline pump
- Operation of an ATM machine (consider 3 classes: customer, machine, account DB)
- Basic symbols (from
http://www.smartdraw.com/tutorials/software-uml/uml5.htm):
state |
 |
event-driven transition |
 |
initial state |
 |
final state |
 |

Statechart Diagram for Logging into online banking service
UML Collaboration diagrams
- Class diagrams and statecharts do not accurately model execution sequences
- a CRC card models associations and collaborations with other classes from
the viewpoint of one class but not dynamics
- a class diagram models associations among all classes in the diagram but
not dynamics
- a statechart models class and object dynamics (not associations), but only
partially models sequence
- the UML tools to model sequence are collaboration diagrams
and sequence diagram
- Collaboration diagram is comparable in power to sequence diagram (see below) for illustrating dynamics,
except sequence must be made explicit by numbering arrows.
- Basic symbols (from
http://www.smartdraw.com/tutorials/software-uml/uml5.htm):
Object and/or class (do not include attributes) can use stereotype figure or stick person |
 |
message passing (method invocation) include sequence number optional condition in [ ] |
 |
Association between classes |
 |

Collaboration Diagram for Elevator Button
UML Sequence diagrams
- What a sequence diagram shows
- diagram represents an execution sequence from the viewpoint of one class
- can be developed during use-case role playing exercise (at same time as
CRC cards are developed)
- viewpoint is typically that of a "client" class which requests things from
other classes
- a 2-dimensional chart
- leftmost "column" is client class
- other "columns" represent classes that it interacts with
- each "row" represents an interaction (event, message, response)
- rows are time ordered from top (first interaction) to bottom (last interaction)
-- relative length of time is not modeled
- To see examples of sequence diagrams on the web, search for "uml sequence
diagram"
- See http://www.agilemodeling.com/style/sequenceDiagram.htm for some examples
Object and/or class (do not include attributes) |
 |
Actor (other stereotype figures can be used) |
 |
Object lifeline (starts when created) |
 |
Active section of timeline |
 |
Object destruction (X at lifeline bottom) |
 |
message passing (method invocation) |
 |

Sequence Diagram for Elevator Button
[ COMP 325
| Peter Sanderson
| Math Sciences server
| Math Sciences home page
| Otterbein
]
Last updated:
Peter Sanderson (PSanderson@otterbein.edu)