This chapter addresses the research challenges in the area of software architecture reconstruction and discusses the state-of-the-art and practice solutions to these challenges. Software architecture analysis and reconstruction is an area within the software architecture domain that refers to the techniques and tools for processing and recovering high-level information from a low-level software system representation such as the source code. The importance of architecture analysis and reconstruction of a large and complex software system stems from the need to perform continuous maintenance activities to keep a mission critical system operational. Such activities include adopting a new implementation technology, error correction, feature enhancement, and migration to a new platform, in which the architectural reconstruction constitutes the major part of these activities. The authors believe that the discussions of this chapter expose the reader to a systematic approach to the important issues, alternative solutions, and future research in the field of software architecture analysis and reconstruction.