loading...
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
18th IEEE International Conference on Automated Software Engineering (ASE'03)
SPQR: Flexible Automated Design Pattern Extraction From Source Code
Montreal, Quebec, Canada
October 06-October 10
ISBN: 0-7695-2035-9
Jason McC. Smith, University of North Carolina at Chapel Hill
David Stotts, University of North Carolina at Chapel Hill
Previous automated approaches to discovering design patterns in source code have suffered from a need to enumerate static descriptions of structural and behavioural relationships, resulting in a finite library of variations on pattern implementation. Our approach, System for Pattern Query and Recognition, or SPQR, differs in that we do not seek statically to encode each variant of the patterns that we wish to find. Our system finds pattern variants that were not explicitly defined, but instead are inferred dynamically during code analysis by a theorem prover, providing practical tool support for software construction, comprehension, maintenance, and refactoring. We use a logical inference system to reveal large numbers of patterns and their variations from a small number of definitions by encoding in a formal denotational semantics a small number of fundamental OO concepts (elemental design patterns), encode the rules by which these concepts are combined to form patterns (reliance operators), and encode the structural/behavioral relationships among components of objects and classes (rho-calculus). A chain of fully automated tools provides a path from source code to revealed patterns.We describe our approach in this paper with a concrete example to drive the discussion, accompanied by formal treatment of the foundational topics.
Citation:
Jason McC. Smith, David Stotts, "SPQR: Flexible Automated Design Pattern Extraction From Source Code," ase, pp.215, 18th IEEE International Conference on Automated Software Engineering (ASE'03), 2003
Usage of this product signifies your acceptance of the Terms of Use.