Toward a generic framework for computing subsystem interfaces
Spiros Mancoridis · 1996
One aspect of reverse engineering deals with the recovery of high-level design information from source code.In this process, source code analysis is used to extract the components and dependencies that comprise a software system.Clustering algorithms are then used to group related software components into composite components, called subsystems.The product of this process is a subsystem decomposition hierarchy.This paper describes work in progress of a technique for computing the interfaces (e.g., exported contents) of subsystems that were created during the reverse engineering process.These computed interfaces often reveal to software developers unexpected and undesirable interactions between software components, which is often the result of long-term ad hoc software maintenance practices.We realize that there is no single definition of a subsystem interface and that a variety of styles of subsystem interfaces are used in practice.For example, in some systems, a subsystem interface may define the contents of a subsystem that are accessible to other subsystems.In other systems, a subsystem interface may define the contents of a subsystem that have permission to access other subsystems.Thus far we have developed style-specific-algorithms for computing the interfaces of subsystems.Separately, we have developed a visual formalism, called ASF, that enables designers to define styles of subsystem interfaces with precision.In the long term, we hope to be able to generate stylespecific algorithms directly from ASF specifications and, hence, develop a generic framework for computing subsystem interfaces.