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 (if not, you will need to repeat the fact extraction step).
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: Factory Method, Composite, Decorator, Observer, State, and Template Method. Bonus marks will be given if further patterns are included in your report.
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.
To use the result presentation tool that Shouzheng demonstrated in class, you need this jar file and these usage instructions.
NEW: The jar file above was updated on Nov 8 to include all patterns required in the assignment. See also these additional instructions.
You must submit the following documents (the file name for each document is shown in parentheses):
You can submit by giving something like the following command:
submit 6431 DP DPDReport.pdf finder.out.txt pinot.out.txt ssa.out.txt finder_conf.zip