Recovering the Architectural Design for Software Comprehension