# Feature-Based Software Design Pattern Detection

arXiv: https://arxiv.org/abs/2012.01708 · HTML: https://mlsanity.com/paper/2012.01708/

## Key facts

- Cited by 3 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 3 Dec 2020.

## Built on by (most cited first, 3 of 3)

- [LLM-Based Design Pattern Detection](https://mlsanity.com/paper/2502.18458/) (2025)
- [Introduction to Analytical Software Engineering Design Paradigm](https://mlsanity.com/paper/2505.11979/) (2025)
- [A Methodology for Investigating AI Patterns Prevalence in Software Repositories](https://mlsanity.com/paper/2607.00558/) (2026)

## Abstract (arXiv)

Software design patterns are standard solutions to common problems in software design and architecture. Knowing that a particular module implements a design pattern is a shortcut to design comprehension. Manually detecting design patterns is a time consuming and challenging task, therefore, researchers have proposed automatic design pattern detection techniques. However, these techniques show low performance for certain design patterns. In this work, we introduce a design pattern detection approach, DPDF that improves the performance over the state-of-the-art by using code features with machine learning classifiers to automatically train a design pattern detector. DPDF creates a semantic representation of Java source code using the code features and the call graph, and applies the textitWord2Vec algorithm on the semantic representation to construct the word-space geometric model of the Java source code. DPDF then builds a Machine Learning classifier trained on a labelled dataset and identifies software design patterns with over 80% Precision and over 79% Recall. Additionally, we have compared DPDF with two existing design pattern detection techniques namely FeatureMaps & MARPLE-DPD. Empirical results demonstrate that our approach outperforms the state-of-the-art approaches by approximately 35% and 15% respectively in terms of Precision. The run-time performance also supports the practical applicability of our classifier.
