Recognition and Verification of Design Patterns
Michael P. Plezbert · Open Scholarship Institutional Repository (Washington University in St. Louis) · 2000
In this paper we consider the automatic discovery of design (programming) patterns. While patterns have surfaced as an effective mechanism for authoring and understanding complex 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 objects. We show a proof-of-concept of our approach by presenting the results of analyzing a Java program for Iterator patterns. 1 Introduction Design patterns have quickly gained prominence as an effective approach to authoring and understanding complex software. [7] However, current popular programming languages offer little in the way of direct support for patterns; and while languages which incorporate patterns as first-class elements are likely to exist in the future, they are still a long way off. While p...