Architecture recovery techniques: a unified view and a measure of their goodness
Arun Lakhotia
Abstract
A partitioning of software system into modules is often termed as its
architecture. Each partition (or module) consists of a set of
functions, procedures, global variables, and/or type declarations. To
help maintain legacy systems or systems with inadequate documentation,
several approaches have been proposed for recovering their
architectures from their source code. This paper makes three
contributions. First, it develops a scheme to classify these
techniques. Second, it surveys the various architecture recovery
techniques and presents them using a unified and consistent
terminology. Third, it presents a measure to evaluate `how well a
recovered architecture matches an expected (or actual)
architecture'. It is envisioned that this measure may be used in
carefully controlled experiments to discern tie contexts of
applicability of various techniques and to pave the way for their
improvement. Results from an experiment to evaluate the performance of
two architecture recovery techniques suggested by Hutchens and Basili
are presented.
Full
paper