Recovering design information from legacy applications is a complex, expensive, quietchallenging, and time consuming task due to ever increasing complexity of software andadvent of modern technology. The growing demand for maintenance of legacy systems,which can cope with the latest technologies and new business requirements, the reuse of artifacts from the existing legacy applications for new developments become veryimportant and vital for software industry. Due to constant evolution in architecture of legacy systems, they often have incomplete, inconsistent and obsolete documents whichdo not provide enough information about the structure of these systems. Mostly, sourcecode is the only reliable source of information for recovering artifacts from legacysystems. Extraction of design artifacts from the source code of existing legacy systemssupports program comprehension, maintenance, code refactoring, reverse engineering,redocumentation and reengineering methodologies.The objective of approach used in this thesis is to recover design information fromlegacy code with particular focus on the recovery of design patterns. Design patterns arekey artifacts for recovering design decisions from the legacy source code. Patterns have been extensively tested in different applications and reusing them yield quality softwarewith reduced cost and time frame. Different techniques, methodologies and tools are usedto recover patterns from legacy applications in the past. Each technique recovers patternswith different precision and recall rates due to different specifications andimplementations of same pattern. The approach used in this thesis is based oncustomizable and reusable feature types which use static and dynamic parameters todefine variant pattern definitions. Each feature type allows user to switch/select betweenmultiple searching techniques (SQL queries, Regular Expressions and Source CodeParsers) which are used to match features of patterns with source code artifacts. Thetechnique focuses on detecting variants of different design patterns by using static,dynamic and semantic analysis techniques. The integrated use of SQL queries, sourcecode parsers, regular expressions and annotations improve the precision and recall for pattern extraction from different legacy systems. The approach has introduced newsemantics of annotations to be used in the source code of legacy applications, whichreduce search space and time for detecting patterns.The prototypical implementation of approach, called UDDPRT is used to recognizedifferent design patterns from the source code of multiple languages (Java, C/C++, C#).