ACM Home Page
Please provide us with feedback. Feedback
Finding refactorings via change metrics
Full text PdfPdf (122 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Minneapolis, Minnesota, United States
Pages: 166 - 177  
Year of Publication: 2000
ISBN:1-58113-200-X
Also published in ...
Authors
Serge Demeyer  LORE - University of Antwerp, Universiteitsplein 1, B-2610 WILRIJK (Belgium)
Stéphane Ducasse  SCG - University of Berne, Neubrückstrasse 10, CH-3012 BERNE (Switzerland)
Oscar Nierstrasz  SCG - University of Berne, Neubrückstrasse 10, CH-3012 BERNE (Switzerland)
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 111,   Citation Count: 29
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/353171.353183
What is a DOI?

ABSTRACT

Reverse engineering is the process of uncovering the design and the design rationale from a functioning software system. Reverse engineering is an integral part of any successful software system, because changing requirements lead to implementations that drift from their original design. In contrast to traditional reverse engineering techniques ---which analyse a single snapshot of a system--- we focus the reverse engineering effort by determining where the implementation has changed. Since changes of object-oriented software are often phrased in terms of refactorings, we propose a set of heuristics for detecting refactorings by applying lightweight, object-oriented metrics to successive versions of a software system. We validate our approach with three separate case studies of mature object-oriented software systems for which multiple versions are available. The case studies suggest that the heuristics support the reverse engineering process by focusing attention on the relevant parts of a software system.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
Arno92a
Robert S. Arnold, Software Reengineering, IEEE Computer Society Press, 1992.
 
Ball96a
 
Beck94a
Bigg94a
 
Brow96c
Kyle Brown, "Design Reverse-engineering and Automated Design Pattern Detection in Smalltalk," Ph.D. dissertation. North Carolina State University, 1996. {http://www.ksccary.com/kbrown.htm, http://hillside.net/patterns/papers/}.
 
Casa92a
 
Casa97a
Eduoardo Casais and Antero Taivalsaari, "Object-Oriented Software Evolution and Reengineering (Special Issue)," Journal of Theory and Practice of Object Systems (TAPOS), Vol. 3(4), 1997.
 
Chid94a
 
Deme99c
 
Deme99d
Serge Demeyer, Stephane Ducasse and Sander Tichelaar, "Why Unified is not Universal. UML Shortcomings for Coping with Round-trip Engineering," Proceedings UML'99, Bernhard Rumpe (Ed.), LNCS 1723, Springer-Verlag, Fort Collins, Colorado, 1999.
 
Duca99b
 
Fent97a
 
Flor97a
Gert Florijn, Marco Meijers and Pieter van Winsen, "Tool Support for Object-Oriented Patterns," Proceedings ECOOP'97, Mehmet Aksit and Satoshi Matsuoka (Ed.), LNCS 1241, Springer-Verlag, 1997.
 
Fowl99a
 
Gold95a
 
Haun95a
Jim Haungs, "A technical overview of VisualWorks 2.0," The Smalltalk Report, January 1995.
 
Hend96a
 
Hond98a
Koen De Hondt, A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems, Vrije Universiteit Brussel, Brussels -Belgium, December, 1998, Ph.D. dissertation {ftp://progftp.vub.ac.be/dissertation/}.
 
Howa95a
 
Jaza99a
John92a
 
John93b
Kell99a
 
Kohl98a
 
Kont97a
 
Lagu97a
Lang95a
 
Lore94a
 
Mari98a
Moor96a
 
Murp97a
 
Opdy92b
Opdy93a
Pauw93a
 
Rich99a
 
Robe97a
 
Schu98a
 
Toku99a
Wate94a
 
Will96a
Linda Wills and Philip Newcomb, "Reverse Engineering (Special Issue)," Automated Software Engineering, Vol. 3(1-2), June 1996.
 
Will96b
Linda Wills and James H. Cross, "Recent Trends and Open Issues in Reverse Engineering," Automated Software Engineering, Vol. 3(1-2), June, 1996.
 
Wuyt98a
Roel Wuyts, "Class-management using Logical Queries, Application of a Reflective User Interface Builder," Proceedings TOOLS 26 - USA '98, IEEE Computer Society Press, 1998.

CITED BY  29

Collaborative Colleagues:
Serge Demeyer: colleagues
Stéphane Ducasse: colleagues
Oscar Nierstrasz: colleagues