Technical Report Number
In this paper we consider the automatic discovery of design (programming) patterns. While patterns have surfaced as an effective mechanism for authoring and understanding compelx software, popular languages lack facilities for direct specification of patterns or verification of pattern usage in program specifications. Static analysis for patterns is provably undecidable; we focus on discovery and verification of patterns by analyzing dynamic sequences of method calls on object. We show a proof-of-concept of our approach by presenting the results of analyzing a Java program for Iterator patterns.
Plezbert, Michael P. and Cytron, Ron K., "Recognition and Verification of Design Patterns" Report Number: WUCS-00-01 (2000). All Computer Science and Engineering Research.