|
ABSTRACT
This paper focuses on object-oriented programming and one kind of structure-improving transformation (refactoring) that is unique to object-oriented programming: finding abstract superclasses. We decompose the operation of finding an abstract superclass into a set of refactoring steps, and provide examples. We discuss techniques that can automate or automatically support these steps. We also consider some of the conditions that must be satisfied to perform a refactoring safely; sometimes to satisfy these conditions other refactorings must first be applied.
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
|
AT&T. UNIX System V User Reference Manual AT&T, 1984.
|
 |
2
|
|
 |
3
|
Jay Banerjee , Won Kim , Hyoung-Joo Kim , Henry F. Korth, Semantics and implementation of schema evolution in object-oriented databases, Proceedings of the 1987 ACM SIGMOD international conference on Management of data, p.311-322, May 27-29, 1987, San Francisco, California, United States
|
| |
4
|
Carol Sue Beckman-Davies. Finding Program Differences Based on Syntactic Tree Structure. PhD thesis, University of Illinois at Urbana- Champaign, 1989.
|
 |
5
|
Paul L. Bergstein, Object-preserving class transformations, Conference proceedings on Object-oriented programming systems, languages, and applications, p.299-313, October 06-11, 1991, Phoenix, Arizona, United States
|
 |
6
|
|
| |
7
|
Eduardo Casals. Reorganizing an Object System, pages 161-189. Centre Universitair d'informatique, Universite de Geneve, 1989.
|
| |
8
|
N. Dershowitz. Programming by analogy. Machine Learning: An Artificial Intelligence Approach (R.S. Michalski, J. G. Carbonell and 7". M. Mitchell, eds), 2:395-424, 1986.
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
 |
13
|
|
| |
14
|
Ralph E. Johnson and Brian Foote. Designing reusable classes. Journal of Object-Oriented Pro- 9ramming, 1(2):22-35, 1988.
|
| |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
Jeff McKenna. A proposal for change management for smalltalk. Smalltalk Report, 1(5):1-3, 1991.
|
| |
19
|
|
| |
20
|
|
| |
21
|
William F. Opdyke and Ralph E. Johnson. Refaetoring: An aid in designing application frameworks and evolving object-oriented systems. In Proceedings of Symposium on Object- Oriented Programming Emphasizing Practical Applications (SOOPPA), September 1990.
|
 |
22
|
D. Jason Penney , Jacob Stein, Class modification in the GemStone object-oriented DBMS, Conference proceedings on Object-oriented programming systems, languages and applications, p.111-117, October 04-08, 1987, Orlando, Florida, United States
|
| |
23
|
Edward J. Rak. Two redesign tools for Smalltalk. Master's thesis, University of Illinois at Urbana-Champaign, 1990.
|
| |
24
|
Marc J. Rochkind. The source code control system. IEEE Transactions on Software Engineering, SF_,-1(4):364-370, December 1975.
|
| |
25
|
Vinee Russo, Gary Johnston, and Roy H. Campbell. Process Management in Multiprocessor Operating Systems using Class Hierarchical Design. In Proceedings of OOPSLA '88, San Diego, Ca., September 1988.
|
 |
26
|
V. F. Russo , R. H. Campbell, Virtual memory and backing storage management in multiprocessor operating systems using object-oriented design techniques, Conference proceedings on Object-oriented programming systems, languages and applications, p.267-278, October 02-06, 1989, New Orleans, Louisiana, United States
|
| |
27
|
David Sankoff and Joseph B. Kruskal. Macromolecular sequences. In Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison (19. Sankoff and J. Krnskal, eds), pages 45-53, 1983.
|
 |
28
|
|
| |
29
|
|
 |
30
|
|
| |
31
|
Jonathan Zweig and Ralph Johnson. Conduits: A communication abstraction in C++. In Proceedings of the USENIX C-c--t- Workshop, pages 191-203, 1990.
|
|