Yazarlar

  • Derleme MakaleYalnız künye2026
    A systematic and evolutionary analysis of software design pattern detection and recommendation approaches (2015–2025)

    Turk, Salih; Coskuncay, Ahmet

    Context: Automated detection and recommendation of software design patterns is crucial for software maintenance, reverse engineering, and architectural quality. Despite decades of research, the field has undergone a significant transformation with the emergence of deep learning and large language models (LLMs), leading to a fragmented landscape of methodologies and evaluation settings. Objective: This study aims to provide a systematic and evolutionary synthesis of design pattern detection and recommendation approaches published between 2015 and 2025, categorizing them into distinct technological paradigms and identifying open research challenges. Method: Following Kitchenham’s evidence-based software engineering guidelines and PRISMA principles, a systematic literature review was conducted. We executed a structured search on the Web of Science database, identifying 212 initial records. After rigorous multi-stage screening and quality assessment, 66 primary studies were selected for final synthesis and analysis. Results: The evolution of the field is characterized through six distinct paradigms: Rule-Based, Graph-Based, Feature-Driven Machine Learning, Representation Learning (Deep Learning), Hybrid, and Contextual Intelligence (LLM). Findings reveal a clear methodological shift from structural exactness to semantic and contextual understanding. However, the analysis also identifies a high concentration on specific datasets (JHotDraw and P-MARt) and a lack of standardized benchmarks for variant detection and multi-modal analysis. Conclusions: While LLM-based approaches show promise in handling pattern variants and semantic context, the field requires more diverse benchmarks and explainable models. This review provides a comprehensive research roadmap, emphasizing the need for multi-modal frameworks and industry-scale validation to bridge the gap between academic research and practical software engineering.