Proceedings of the 1993 ACM Conference on Computer Science - CSC '93 1993
DOI: 10.1145/170791.170804
|View full text |Cite
|
Sign up to set email alerts
|

Creating abstract superclasses by refactoring

Abstract: This paper focuses on object-oriented programming and one kind of structure-improving transformation (refactoring) that is unique to objecton'ented programming: finding abstract superclasses.We decompose the operation of finding an abstract superclass into a set of refactoring steps, and provide ezamples. 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 conditi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
36
0
2

Year Published

1997
1997
2006
2006

Publication Types

Select...
6
2
1

Relationship

0
9

Authors

Journals

citations
Cited by 74 publications
(38 citation statements)
references
References 15 publications
0
36
0
2
Order By: Relevance
“…One general goal of refactoring class hierarchies (as in, e.g., [11] [17]) is to maximize the (functional) cohesion of a module, i.e., to ensure that all members of a class are always used together, thus minimizing (the footprint of) objects. For this, new subclasses must be introduced, which is why the work is also referred to as program [17] or class hierarchy specialization [19].…”
Section: Refactoring and Type Inferencementioning
confidence: 99%
“…One general goal of refactoring class hierarchies (as in, e.g., [11] [17]) is to maximize the (functional) cohesion of a module, i.e., to ensure that all members of a class are always used together, thus minimizing (the footprint of) objects. For this, new subclasses must be introduced, which is why the work is also referred to as program [17] or class hierarchy specialization [19].…”
Section: Refactoring and Type Inferencementioning
confidence: 99%
“…One reason is that the concept lattice for a table is invariant against row or column permutations. 10 Note that x → y is an implication between row labels, while def (B.m) → def (A.m) is an implication between column labels. Therefore the direction of the second implication is "reversed".…”
Section: Concept Latticesmentioning
confidence: 99%
“…Refactorings are software transformations that restructure an object-oriented program while preserving its behaviour [1][2][3]. The key idea is to redistribute instance variables and methods across the class hierarchy in order to prepare the software for future extensions.…”
Section: Introductionmentioning
confidence: 99%
“…Tools such as the Refactoring Browser support a semi-automatic approach [4], which is recently being adopted by industrial strength software development environments (e.g., VisualWorks, TogetherJ, JBuilder, Eclipse 3 ). Other researchers demonstrated the feasibility of fully automated tools [5]; studied ways to make refactoring tools less dependent on the implementation language being used [6] and investigated refactoring in the context of a UML case-tool [7].…”
Section: Introductionmentioning
confidence: 99%