A unified framework for expressing software subsystem classification techniques
Arun Lakhotia
Abstract
The architecture of a software system classifies its components into
subsystems and describes the relationships between the subsystems. The
information contained in such an abstraction is of immense
significance in various software maintenance activities. There is
considerable interest in extracting the architecture of a software
system from its source code, and hence in techniques that classify the
components of a program into subsystems. Techniques for classifying
subsystems presented in the literature differ in the type of
components they place in a subsystem and the information they use to
identify related components. However, these techniques have been
presented using different terminology and symbols, making it harder to
perform comparative analyses. This paper presents a unified framework
for expressing techniques of classifying subsystems of a software
system. The framework consists of a consistent set of terminology,
notation, and symbols that may be used to describe the input, output,
and processing performed by these techniques. Using this framework
several subsystem classification techniques have been
reformulated. This reformulation makes it easier to compare these
techniques, a first step towards evaluating their relative
effectiveness.
Full
paper