Architecture Reconstruction Guidelines, Third Edition
Rick Kazman
Liam O'Brien
Chris Verhoef
Technical Report
CMU/SEI-2002-TR-034
Note: The first edition of this report was published in August 2001 under a different document number: CMU/SEI-2001-TR-026. Because the second edition of this report contained significant changes from the first edition, it was assigned a new document number—the current one—and was published in December 2002.
Architecture reconstruction is the process of obtaining the “as-built” architecture of an implemented system from the existing legacy system. For this process, tools are used to extract information about the system that will assist in building successive levels of abstraction. Although generating a useful representation is not always possible, a successful reconstruction results in an architectural representation that aids in reasoning about the system. This recovered representation is most often used as a basis for redocumenting the architecture of an existing system if the documentation is out of date or nonexistent, and can be used to check the “as-built” architecture against the “as-designed” architecture. The architectural representation can also be used as a starting point for reengineering the system to a new desired architecture. Finally, the representation can be used to help identify components for reuse or to help establish a software product line.
This report describes the process of architecture reconstruction using the Architecture Reconstruction and Mining (ARMIN) tool developed by the Carnegie Mellon Software Engineering Institute and the Robert Bosch Corporation. Guidelines are presented for reconstructing the architectural representations of existing systems. Most of these guidelines are not specific to ARMIN, can be used with other tools, and are useful even if the architecture reconstruction is carried out manually.