Abstract | Software architecture is an important form of abstrac-tion, representing the overall system structure and the re-
lationship among components. When software is modified
from one version to another, its architecture may change.
Software modification involving architectural change is of-
ten difficult when the change goes beyond the original ar-
chitectural design, involving changes to the connectivity of
multiple components. Existing research has looked at ar-
chitectural change at the level of architecture metrics such
as size, complexity, coupling and cohesion, which abstract
a particular version of the software in isolation. In this pa-
per, we argue that this level of abstraction is often too high
to characterize some interesting aspects of the architectural
change process, and propose an approach that takes into
account the change in connectivity from version to version
of individual components. In this approach, two endpoints
of a major change are taken as reference points, and inter-
mediate connectivity changes are examined relative to the
endpoints. We define a distance measure between software
structures using a graph kernel function, which is quite
powerful as it is applicable to any software structure repre-
sentable as a graph. Using this distance measure, we define
a metric which models the architecture change as a transi-
tion between two endpoints. In addition to theoretical anal-
ysis of the approach, we present empirical results obtained
by applying the approach to open-source software projects
to evaluate its validity and usefulness.
|