Skip to Main Content
Architecture reconstruction is the reverse engineering process that aims at recovering the past design decisions that have been made about the software architecture of a system. To be a successful activity, we need to identify the proper architecturally significant information and to extract it from the artefacts. How to identify extract/present/analyse it? What are the critical issues that have to be considered? How to manage the reconstruction process in a product family? What tools are available? This paper will address these and other questions that are relevant for the development of large and complex software systems. We introduce the key concepts of a software architecture description and the context of the architecture reconstruction activity. We present our architecture reconstruction method with a strong emphasis on its practical aspects and the tools supporting it. The extraction of architecturally significant information and its analysis are the key goals of our approach that will be demonstrated with a set of examples taken from real cases. We derive our experience mainly from the telecommunication domain. However, we believe the same general principles can be applied to other domains. The paper addresses software engineers and project managers that are involved in the development of complex software systems.