The Value of Software Architecture Recovery for Maintenance
Daniel Link, Pooyan Behnam, Ramin Moazeni, Barry Boehm

TL;DR
This paper evaluates the effectiveness of various software architecture recovery methods in aiding system maintenance, focusing on their applicability, result quality, and ability to measure architectural changes.
Contribution
It provides a comprehensive survey analyzing the viability and quality of different recovery methods using case studies on Android and Hadoop.
Findings
Different recovery methods vary in accuracy and usefulness.
Results can indicate architectural evolution and support maintenance decisions.
The study highlights the importance of method selection based on context.
Abstract
In order to maintain a system, it is beneficial to know its software architecture. In the common case that this architecture is unavailable, architecture recovery provides a way to recover an architectural view of the system. Many different methods and tools exist to provide such a view. While there have been taxonomies of different recovery methods and surveys of their results along with measurements of how these results conform to expert's opinions on the systems, there has not been a survey that goes beyond an automatic comparison and instead seeks to answer questions about the viability of individual methods in given situations, the quality of their results and whether these results can be used to indicate and measure the quality and quantity of architectural changes. For our case study, we look at the results of recoveries of versions of Android and Apache Hadoop obtained by…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Reliability and Analysis Research
