Reclipse is a reverse engineering tool for the automatic detection of patterns in source code. A pattern is a general, reusable solution to a commonly occurring problem in software design. Detecting pattern occurrences can help understand a piece of code and thereby provide deeper insight into a software.
Reclipse provides the following features:Reclipse provides a static and a dynamic pattern detection.

The static analysis in Reclipse uses a pattern specification language based on object diagrams, the so-called structural patterns. The static analysis requires the source code of the software system and a library of structural patterns. An inference algorithm recovers the structure of design patterns by graph matching. It results in an annotated class diagram which shows the possible implementations of design patterns, so-called pattern candidates.
A following dynamic analysis can be used to reject or confirm these pattern candidates. For this purpose the candidates’ behavior can be monitored during the program execution, using the Reclipse tracer. The tracer generates a number of traces for each candidate.
Reclipse provides a graphical editor for the specification of the structure of patterns. Structural patterns are specified as a collection of connected, typed objects. A pattern can also reference other patterns and contain additional parts. Additional parts are not required to be present in a pattern occurrence but their presence increases the confidence in a detected pattern candidate.The structural analysis results in a percentage estimation which shows how much a given pattern candidate resembles the specified pattern. Detected additional parts increase this estimation.
In addition, Reclipse provides a second graphical editor for the specification of the patterns’ behavior. The behavioral analysis can complement the result of the structural analysis by comparing the detected pattern candidate’s behavior to the specified patterns’ behavior. With the results, the reverse engineer is able to make a better decision, whether a software fragment is an actual design pattern implementation or not.
The dynamic pattern detection in Reclipse analyzes the given software system by comparing traces recorded during program execution to the specified behavior of the corresponding design pattern. The specification language for the behavior of design patterns is based on UML sequence diagrams. It is possible to specify one so-called behavioral pattern for each structural pattern. If the majority of a candidate’s traces match the behavioral pattern it is likely that the candidate is an actual design pattern. Traces which do not match the behavioral pattern are indications that the candidate is a false positive.
A pre-configured and ready-to-use Eclipse workbench with Reclipse already installed can be downloaded here (Windows only).
The latest version of Reclipse can be downloaded via our Eclipse Update Site (Please note that only the structural pattern detection feature can be downloaded at the moment.):
http://dsd-serv.uni-paderborn.de/svn/updatesites/reclipse/
Please follow the instructions below to install Reclipse:
[1] http://www.eclipse.org/downloads/packages/release/helios/sr1
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=339360
[3] http://dsd-serv.uni-paderborn.de/svn/updatesites/reclipse/