Abstract
Production software systems often deviate from their intended architectures and sometimes completely lack a comprehensive, well designed and documented architecture. Effective design methods exist to re-engineer an existing system for new or omitted functional and quality requirements using the architecture. But without knowledge of the system's architecture, it is necessary to first perform a software system architecture recovery to understand the as-built architecture before applying these design methods. Most research in this area focuses on the creation of tools for use in semi-automated architecture recovery but is of little use for practitioners. This MS project developed a manual methodology that focuses on the specific activities of architecture recovery aiming at achieving maximum efficiency. A method, called Software Architecture Recovery Method (SARM), is presented, accompanied by a case-study of that methodology on a medium-sized ( nearly 300kLOC) website accessibility assessment tool that employs a heterogeneous code base (OO Python, OTS components, Java).