@MISC{Shi07fromjava, author = {Nija Shi}, title = {from Java Source Code}, year = {2007} }
Share
OpenURL
Abstract
Computer Science Recovering design patterns can enhance existing source code analysis tools by bringing program understanding to the design level. This dissertation presents a new, fully au-tomated pattern detection approach based on our reclassification of the GoF patterns by their pattern intent. We argue that the GoF pattern catalog classifies design patterns in the forward-engineering sense; our reclassification is better suited for reverse engineering. Our approach uses lightweight static program analysis techniques to capture program in-tent. This dissertation also describes our tool, PINOT, that implements this new approach. PINOT detects all the GoF patterns that have concrete definitions driven by code struc-ture or system behavior. PINOT is faster, more accurate, and targets more patterns than existing pattern detection tools. PINOT has been tested against several benchmark applica-tions, including Apache Ant, Java AWT, JHotDraw, and Swing. Since PINOT has proven successful, we extend PINOT to recognize a broader range of design patterns. This disser-tation describes our pattern detection language, MUSCAT, that allows users to define and analyze their own design patterns using the PINOT engine. MUSCAT is a visual language that allows users to model program intent by specifying both the structural- and behavioral-aspects of a design pattern. This dissertation evaluates MUSCAT and discusses the trade-offs between effectiveness and flexibility.