| Determining detailed structural correspondence for generalization tasks |
| Full text |
Pdf
(277 KB)
|
Source
|
Foundations of Software Engineering
archive
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
table of contents
Dubrovnik, Croatia
SESSION: Refactoring automation
table of contents
Pages: 165 - 174
Year of Publication: 2007
ISBN:978-1-59593-811-4
|
|
Authors
|
|
Rylan Cottrell
|
University of Calgary, Calgary, Alberta, Canada
|
|
Joseph J. C. Chang
|
University of Calgary, Calgary, Alberta, Canada
|
|
Robert J. Walker
|
University of Calgary, Calgary, Alberta, Canada
|
|
Jörg Denzinger
|
University of Calgary, Calgary, Alberta, Canada
|
|
| Sponsors |
|
| Publisher |
|
|
|
ABSTRACT
Generalization tasks are important for continual improvement to the design of an evolving code base, eliminating redundancy where it has accumulated. An important step in generalization is identifying the detailed structural correspondence between two pieces of code being considered for generalization. Unfortunately, tool support for this step is insufficient, leaving the developer to resort to tedious and error-prone manual determination of correspondence. This paper presents an approach for automatically determining correspondences as an early step in a generalization task. The approach is implemented in a proof-of-concept plug-in to the Eclipse integrated development environment. Two small empirical evaluations of the tool have been conducted: a comparison between human attempts to determine detailed correspondences and those of the tool; and, a comparison of the use of the tool to the use of diff/CCFinder in performing generalization tasks.
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.
 |
1
|
|
 |
2
|
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
 |
6
|
Michael D. Ernst , Jake Cockrell , William G. Griswold , David Notkin, Dynamically discovering likely program invariants to support program evolution, Proceedings of the 21st international conference on Software engineering, p.213-224, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302467]
|
| |
7
|
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 2000.
|
| |
8
|
|
 |
9
|
|
| |
10
|
J. Huny and M. D. McIlroy. An algorithm for differential file comparison. Technical Report CSTR #41, Bell Telephone Laboratories, 1976.
|
| |
11
|
|
 |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
G. D. Plotkin. A note on inductive generalization. Machine Intelligence, 5:153--163, 1970.
|
| |
16
|
L. Pottier. Généralisation de termes en théorie equationnelle, cas associatif-commutatif. Technical Report 1056, INRIA, 1989.
|
 |
17
|
|
| |
18
|
U. Schmid, U. Sinha, and F. Wysotzki. Program reuse and abstraction by anti-unification. In G. Stumme et al., editors, Professionelles Wissensmanagement-Erfahrungen und Visionen (German Workshop of Case-Based Reasoning), pages 183--185. Shaker, 2001.
|
 |
19
|
Frank Tip , Adam Kiezun , Dirk Bäumer, Refactoring for generalization using type constraints, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
20
|
|
| |
21
|
|
|