ePAD: Eclipse Plug-in for the Detection of Design Pattern Instances

The use of design patterns in a software system can provide strong indications about the rationale behind the systemís design. As a result, automating the detection of design pattern instances could be of significant help to the process of reverse engineering large software systems. Moreover, the extraction of design pattern information from software systems provide conspicuous insight to software engineers on the software structure and its internal characteristics.

We present ePAD, an Eclipse plug-in for recovering design pattern instances from object-oriented source code.
The tool is able to recover design pattern instances through a structural analysis performed on a data model extracted from source code, and a behavioral analysis performed through the instrumentation and the monitoring of the software system.
ePAD is fully configurable since it allows software engineers to customize the design pattern recovery rules and the layout used for the visualization of the recovered instances.


Program Version Date Platform Size Download
ePAD 29th Sep. 2010 Win/Unix 2002 KB Download
Description:Base version
ePAD 22th Oct. 2012 Win/Unix 1950 KB Download
Description:Support design pattern variants (Adapter/Observer)

Required software

  1. Eclipse 3.6.0 or successive versions.

Required Eclipse plug-in


  1. Download the compressed project file.
  2. Unzip the downloaded rar file into the plugin directory of Eclipse.


  1. Run the Eclipse platform.

Recovered design pattern variants

To define design pattern variants we analyze the available documentation of six open source software systems and a public available repository of design pattern instances. The considered software systems are:

  • JHotDraw version 5.1
  • JHotDraw version 6.0b1
  • QuickUML 2001
  • JRefactory 2.6.24
  • JUnit 3.7
  • MapperXML 1.9.7

By analyzing the documented design pattern instances, we identified seven implementation variants for the Adapter pattern and four for the Observer pattern (see Table 1).

Table 2 shows the implementation variants of Adapter and Observer design pattern recovered by three different tools for the analyzed software systems.

Demo video

The video content presented here requires a more recent version of the Adobe Flash Player. If you are using a browser with JavaScript disabled please enable it now. Otherwise, please update your version of the free Flash Player by downloading here.

Contact information

For any questions or suggestions, please contact us.

Andrea De Lucia
Vincenzo Deufemia
Carmine Gravino
Michele Risi