DPD4Eclipse in an Eclipse plugin that detects 16 GoF design patterns and visualizes the detected instances. It is based on the Design Pattern Detection (DPD) tool version 4.13 - build 25/02/2020
The supported design patterns are:
- Factory Method
- Prototype
- Singleton
- Object Adapter
- Command
- Composite
- Decorator
- Observer
- State
- Strategy
- Bridge
- Template Method
- Visitor
- Proxy
- Proxy variation
- Chain of Responsibility
- Clone the DPD4Eclipse repository
- Import the project into Eclipse: File -> Import... -> General -> Existing Projects into Workspace
- Right-click on the project and select: Run as -> Eclipse Application
- This will open a second Eclipse IDE window with the DPD4Eclipse plug-in installed in it.
- In the second Eclipse IDE window select: Window -> Show View -> Other... -> Design Pattern Detection (folder in Show View dialog) -> Design Pattern Detection
- Import a project in the second Eclipse IDE window, select the project in the Package Explorer, and then click on the i button (Detect Design Patterns) on the Design Pattern Detection view.
- Double-clicking on a detected design pattern instance role, opens the corresponding program element (class, method, field) in the Eclipse editor.
- Each design pattern instance can be visualized in a hybrid UML Class diagram showing the dependencies between the program elements participating in the design pattern instance.
N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, S. T. Halkidis, "Design Pattern Detection Using Similarity Scoring," IEEE Transactions on Software Engineering, vol. 32, no. 11, pp. 896-909, November, 2006.
@article{Tsantalis:2006:DPD:1248727.1248777,
author = {Tsantalis, Nikolaos and Chatzigeorgiou, Alexander and Stephanides, George and Halkidis, Spyros T.},
title = {Design Pattern Detection Using Similarity Scoring},
journal = {IEEE Transactions on Software Engineering},
issue_date = {November 2006},
volume = {32},
number = {11},
month = nov,
year = {2006},
issn = {0098-5589},
pages = {896--909},
numpages = {14},
url = {http://dx.doi.org/10.1109/TSE.2006.112},
doi = {10.1109/TSE.2006.112},
acmid = {1248777},
publisher = {IEEE Press},
address = {Piscataway, NJ, USA},
}