Architectural and design patterns are the building blocks of modern software systems. Understanding patterns applied in these systems is critical to comprehend their architecture. Current research is not adequately addressing either the architecture recovery and comprehension problem nor the pattern detection problem. What makes it more complicated is the gaining popularity of new language and multiple languages, which makes existing pattern recognition techniques infeasible. Our vision is to allow developers to interactively understand the complexity of a software system by grasping the key abstractions of the system and extracting the associated design spaces and patterns. The long-term objective is to create an interactive and language-independent pattern-oriented architecture recovery framework. We propose to standardize the design structure framed by major patterns, against which the user can detect the variation of design patterns and potential violations.