EECS 6431: Design Pattern Detection Assignment

Deadline: Tuesday, March 7

Format: Individual

For this assignment, you will detect design patterns in a Java system of your choice. You can use the same system as in the previous assignment.

Start by obtaining design pattern results from the three tools discussed in class: Finder, Pinot, and SSA.

You can install PINOT locally by following the instructions here.

You can run SSA locally by getting this jar file.

Based on these results, you will have to perform the following tasks:

You are required to perform the above tasks for the following patterns: Adapter, Decorator, Observer, Strategy, and Template Method.

In the case that a given tool discovers a very large number of instances for a given pattern, you can produce a report of why you think this is happening rather than evaluate all instances. For FINDER, you can look at the rules for each pattern here. For other two tools, you can refer to the paper describing them: PINOT, SSA.

What to submit

You must submit the following documents (the file name for each document is shown in parentheses):

  1. The report (DPDReport.pdf).
  2. Output from all three tools in ASCII format (finder.out.txt pinot.out.txt ssa.out.txt).

You can submit by giving something like the following command:

submit 6431 DP DPDReport.pdf finder.out.txt pinot.out.txt ssa.out.txt