Comparing Software Architecture Recovery Techniques Using Accurate Dependencies

Many techniques have been proposed to automatically recover software architectures from software implementations. A thorough comparison among the recovery techniques is needed to understand their effectiveness and applicability. This study improves on previous studies in two ways. First, we study th...

Full description

Saved in:
Bibliographic Details
Published in2015 IEEE/ACM 37th IEEE International Conference on Software Engineering Vol. 2; pp. 69 - 78
Main Authors Lutellier, Thibaud, Chollak, Devin, Garcia, Joshua, Lin Tan, Rayside, Derek, Medvidovic, Nenad, Kroeger, Robert
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.05.2015
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Many techniques have been proposed to automatically recover software architectures from software implementations. A thorough comparison among the recovery techniques is needed to understand their effectiveness and applicability. This study improves on previous studies in two ways. First, we study the impact of leveraging more accurate symbol dependencies on the accuracy of architecture recovery techniques. Previous studies have not seriously considered how the quality of the input might affect the quality of the output for architecture recovery techniques. Second, we study a system (Chromium) that is substantially larger (9.7 million lines of code) than those included in previous studies. Obtaining the ground-truth architecture of Chromium involved two years of collaboration with its developers. As part of this work we developed a new sub module-based technique to recover preliminary versions of ground-truth architectures. The other systems that we study have been examined previously. In some cases, we have updated the ground-truth architectures to newer versions, and in other cases we have corrected newly discovered inconsistencies. Our evaluation of nine variants of six state-of-the-art architecture recovery techniques shows that symbol dependencies generally produce architectures with higher accuracies than include dependencies. Despite this improvement, the overall accuracy is low for all recovery techniques. The results suggest that (1) in addition to architecture recovery techniques, the accuracy of dependencies used as their inputs is another factor to consider for high recovery accuracy, and (2) more accurate recovery techniques are needed. Our results show that some of the studied architecture recovery techniques scale to the 10M lines-of-code range (the size of Chromium), whereas others do not.
ISSN:0270-5257
1558-1225
DOI:10.1109/ICSE.2015.136