Overview

Detecting the GoF Patterns

PINOT detects many uses of GoF patterns in recent versions of Java open source code. Reports of detected pattern instances are available for: Java AWT 1.3, JHotDraw 6.0b1, Java Swing 1.4, java.io 1.4.2, java.net 1.4.2, javac 1.4.2, Apache Ant 1.6.2, ArgoUML 0.18.1.

Software

You can download the PINOT source here. See PINOT_INSTALL for installation. PINOT is based on Jikes, which is copyrighted by the IBM Public License . Please abide by the terms of the IBM license.

Many people have asked me if Pinot can process multiple files from different directories in one command. The answer is yes. Pinot adopts the usages from Jikes and Javac.

Use: pinot [options] [@files] file.java

Papers

Reverse Engineering of Design Patterns from Java Source Code
Nija Shi and Ron Olsson
Appeared in the 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06), Tokyo, Japan, September 2006.
[pdf]

Reverse Engineering of Design Patterns for High Performance Computing
Nija Shi and Ron Olsson
Workshop on Patterns in High Performance Computing (PatHPC'05), Urbana-Champaign, Illinois, May 2005
[ps, pdf]

Talks

Reverse Engineering of Design Patterns from Java Source Code
ASE 2006
Tokyo, Japan
[ppt]

Reverse Engineering of Design Patterns from Java Source Code
CSU Sacramento, March 30, 2006
[ppt]

Reverse Engineering of Design Patterns for High Performance Computing
University of Illinois, Urbana-Champaign, May 5, 2005
[pdf, wmv]

People

Author: Nija Shi
Advisor: Prof. Ron Olsson

Contact

Please send inquiries or comments about PINOT to pinot@thinkpatterns.com

Related Projects

MUSCAT
As an extension to PINOT, we have defined a visual constraint language, MUSCAT (Minimal UML SpecifiCATion language), that allows users to define the structural and behavioral aspects of a design pattern.
JPINOT
This project replicates PINOT on top of javac and serves as a foundation to facilitate future upgrading of PINOT. Primary Investigator: Todd Williamson.

Comparable Solutions

Fujaba - University of Paderborn, Germany
PtideJ - University of Montréal, Canada
WOP - Massey University, New Zealand

Last Updated Tue Nov 27 16:51:53 PST 2007