represents the states of a class data and their transitions,
and it can be used as a test model to check its dynamic
behavior. A COSD is designed to verify the
object states and transitions for a class object, it can
be used to represent the dynamic behaviors of its different
orthogonal parts.
3.1 The Notion of Object State Diagram
The object state diagram (OSD) given here is an
extension of the existing models [8][4][3]. However, its
semantics and usages are completely different. The
existing models are designed as a tool far 00 requirements
analysis and design, but the OSD is developed
as a test model for dynamic behaviors of objects. The
notion of states and transitions in an OSD are associated
with specific programming concepts instead of
high-level application domain concepts.
Atomic Object State Diagram (AOSD)
Intuitively, an object state diagram is an extension
of a finite state machine. It represents the states (defined
by conditions of a defined data attribute) and
their transitions (defined by its related member functions).
Its detailed definition is given below.
Definition 1: A state in an AOSD is a simple
condition (or an interval) which represents the states
of a class data attribute.
Definition 2: A transition in an AOSD represents
a state change which transfers a class data attribute
from a source state to a destination state. If both
states are the same, then the transition is a loop transition.
Each transition in an AOSD corresponds an
execution of a class function member. A transition is
called a construction transition if it corresponds to a
constructor.