present structural information about the system. However, structural
information is not sufficient to allow reasoning about some system properties.
Reasoning about deadlock, for example, depends on understanding the sequence of
interactions among the elements, and structural information alone does not
present this sequencing information. Behavior descriptions add information that
reveals the ordering of interactions among the elements, opportunities for
concurrency, and time dependencies of interactions (at a specific time or after
a period of time).
can be documented either about an element or about an ensemble of elements
working in concert. Exactly what to model will depend on the type of system
being designed. For example, if it is a real-time embedded system, you will
need to say a lot about timing properties and the time of events. In a banking
system, the sequence of events (e.g., atomic transactions and rollback
procedures) is more important than the actual time of events being considered.
Different modeling techniques and notations are used depending on the type of
analysis to be performed. In UML, sequence diagrams and statecharts are
examples of behavioral descriptions. These notations are widely used.
are a formalism developed in the 1980s for describing reactive systems. They
add a number of useful extensions to traditional state diagrams such as nesting
of state and "and" states, which provide the expressive power to
model abstraction and concurrency. Statecharts allow reasoning about the
totality of the system. All of the states are assumed to be represented and the
analysis techniques are general with respect to the system. That is, it is
possible to answer a question such as Will the response time to this stimulus
always be less than 0.5 seconds?
sequence diagram documents a sequence of stimuli exchanges. It presents a
collaboration in terms of component instances and their interactions and shows
the interaction arranged in time sequence. The vertical dimension represents
time and the horizontal dimension represents different components. Sequence
diagrams allow reasoning based on a particular usage scenario. They show how
the system reacts to a particular stimulus and represent a choice of paths
through the system. They make it possible to answer a question such as What
parallel activities occur when the system is responding to these specific
stimuli under these specific conditions?