
names. The time span that begins when a
constructor is created and terminates when the
constructor is destroyed is referred to as a lifetime
hereafter. That is, a lifetime represents the number
of events it contains.
(3) Inheritance Level Axis ν
This coordinate axis corresponds to the
inheritance hierarchy of classes. The constructors
with the same lifetime, discovered through analysis,
are placed on the same inheritance level. The top
level of the inheritance hierarchy has an inheritance
level of 0, and a lower level has a higher value
which is increased by 1 whenever the inheritance
level descend by one step.
2.4 Constructor as Distribution
Function
This paper assumes that the constructors extracted as
ambiguous objects through analysis can be defined
by a probabilistic distribution function in the three
dimensional χ-τ-ρ space. Based on the above
discussion, the following is assumed;
(1) An identification name is unique. That is,
objects with the same meanings are treated by an
identical identification name.
(2) A constructor has one of two states at any time
during its lifetime, one of which indicates that it
exists and the other indicates that it does not exist.
It has no undetermined state.
Based on these assumptions, a constructor has an
identification name χ, and is defined by a
distribution function ϕ(χ, τ; τ
1
, τ
2
), which has a
lifetime of which event interval is [τ
1
, τ
2
]. Here, τ
1
and τ
2
represents the points of time at which the
event is created and destroyed respectively, and the
axis ρ represents the probability of existence (0 or 1)
of the constructor.
The basic concept of my research, in which not
only identification names of constructors but also
their lifetimes are retrieved from the given
requirements specifications, is realized in the
formula that expresses a constructor as a distribution
function of axis τ. The lifetime incorporated in the
distribution function plays an important role in
defining operations that comprise the class structure.
2.5 Meta-characteristics of
Distribution Function
The distribution expression represents the existence
state of a constructor, but it does not represents an
instance of a constructor. That is, it does not
represent an instance of an attribute or the existence
state of the execution process of an implemented
method. An instance generated from a constructor
is placed on a different χ-τ-ρ space and has a
different lifetime from those of the original
constructor, although it shares the axes χ and τ with
the distribution function of the constructor. Based
on the distribution of those instances of a
constructor, the following meta-characteristics are
defined for each constructor.
(a) Multiplicity µ
The multiplicity µ indicates the number of
simultaneous instances existing at the same time,
when instances (ie. implemented values) of a
constructor is generated at an event time. That is, if
the constructor is an attribute, the multiplicity
indicates the "number of attribute values." If the
constructor is a method, the multiplicity indicates
the "number of methods implemented (or required)
with the same interface name." For example, if
multiple instances are implemented with the same
interface name at an event time, the multiplicity is
more than one.
(b) Independent Key κ
If the lifetime of the constructor B is determined
depending on that of the constructor A, the
constructor B is considered to be dependent on the
constructor A. Set of constructors that do not
depend on any other constructors have a meta-
attribute value of "independent key." When a
constructor is an attribute, the independent key
meta-characteristic is nothing more than
paraphrasing the concept of the primary key of data
model. When a constructor is a method, a method
that is modified and defined corresponding to
changes is dependent on the existence of the caller-
side method. When such a relationship takes place
between methods, the caller-side method has a meta-
attribute value of "independent key."
2.6 Constraints of Constructor
A constructor has the following two constraints that
stem from the nature of the object-oriented approach.
(1) Exclusive Constraint π
This constraint defines the number of constructors
that can be placed on the location with the same
identification coordinate value when a set of
constructors is grouped to form a class. The actual
exclusive constraints vary depending on whether the
constructors are attributes or methods. In practice, if
the constructor is an attribute, other constructors
with the same identification name cannot have any
values other than 0 or 1 in the software field. This is
a direct result of the fact that no more than one
attribute with the same identification name cannot
reside in the inheritance hierarchy based on the
constraint of the Private attribute. On the other
FORMALIZATION OF CLASS STRUCTURE EXTRACTION THROUGH LIFETIME ANALYSIS
637