Spqr: formal foundations and practical support for the automated detection of design patterns from source code

作者: P. David Stotts , Jason Mccolm Smith

DOI:

关键词:

摘要: Maintenance costs currently comprise the majority of total in producing software. While object-oriented techniques and languages appear to have assisted production new code, there is little evidence support theory that they helped lower high cost maintenance. In this dissertation, I describe current problem provide a system ultimately aimed at reducing cost. The System for Pattern Query Recognition, or SPQR, consists of: rho-calculus, formal foundation conceptual relationships systems; suite Elemental Design Patterns capture fundamentals programming their expressions rho-calculus; an XML Schema, Pattern/Object Markup Language, POML, concrete method expressing formalisms practical manner; example mapping from C++ language POML; implementation which ties above components together into tool detects instances design patterns directly source code using Otter automated theorem prover. will discuss each turn, relate them previous research area, as well number future directions. Using results can be more easily documented understood. major contribution SPQR flexible detection rho-calculus instead static structural cues. Building on propose: metrics utilizing Minimum Description Length principle salient features expressed nomenclature measuring comprehensibility code: approach these cost-based management principles. This combination should prove effective facilitating communication between technical managerial concerns manner allows most efficient allocation resources during maintenance software systems.

参考文章(128)
Mel Ó Cinnéide, Automated application of design patterns : a refactoring approach Trinity College (Dublin, Ireland). School of Computer Science & Statistics. ,(2001)
Jason McC. Smith, An Elemental Design Pattern Catalog ,(2004)
Bobby Woolf, The Abstract Class Pattern ,(1997)
James Duncan Davidson, Learning Cocoa with Objective-C ,(2002)
Bobby Woolf, The Object Recursion Pattern ,(1998)
James M. Bieman, Byung-Kyoo Kang, Using Design Cohesion to Visualize, Quantify, and Restructure Software. software engineering and knowledge engineering. pp. 222- 229 ,(1996)
Dennis Jen, David Stotts, The Vis-a-Vid Transparent Video Facetop ,(2003)
Wilf R. LaLonde, John R. Pugh, Gathering Metric Information Using Metalevel Facilities. Journal of Object-oriented Programming. ,vol. 7, pp. 33- 37 ,(1994)
Jagdish Bansiya, Letha Etzkorn, Carl Davis, Design and Code Complexity Metrics for OO Classes ,(2003)