Architectural layer recovery for software system understanding and evolution | doi.page