Stronger Together: On Combining Relationships in Architectural Recovery Approaches

Architecture recovery is the process of obtaining the intended architecture of a software system by analyzing its implementation. Most existing architectural recovery approaches rely on extracting relationships between software system elements and further using these relationships to group similar elements together. The approaches differ by the type of relationships they consider, e.g., method calls, data dependencies, and class name similarity. Prior work shows that combining multiple types of relationships during the recovery process is often beneficial as it leads to a better result than the one obtained by using the relationships individually. Yet, most, if not all, academic and industrial architecture recovery approaches simply unify the combined relationships to produce a more complete representation of the analyzed systems. In this paper, we propose and evaluate an alternative approach to combining information derived from multiple relationships, which is based on identifying agreements/disagreements between relationship types. We discuss advantages and disadvantages of both approaches and provide suggestions for future research in this area.

Publication

Evelien Boerstra, John Ahn, and Julia Rubin. “Stronger Together: On Combining Relationships in Architectural Recovery Approaches” In Proc. of the 38th IEEE International Conference on Software Maintenance and Evolution (ICSME), 2022. [pdf, bibtex]