Semantics and implementation of schema evolution in object-oriented databases
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Class modification in the GemStone object-oriented DBMS
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Learning by understanding analogies
Artificial Intelligence
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Design reuse and frameworks in the smalltalk-80 system
Software reusability
A fifteen-year perspective on automatic programming
Software reusability
The annotated C++ reference manual
The annotated C++ reference manual
Surveying current research in object-oriented design
Communications of the ACM
Building an evolution transformation library
ICSE '90 Proceedings of the 12th international conference on Software engineering
Object-preserving class transformations
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Designing object-oriented software
Designing object-oriented software
Introduction to object-oriented databases
Introduction to object-oriented databases
Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
An object-oriented framework for file systems
An object-oriented framework for file systems
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
ACM Computing Surveys (CSUR)
Order-n correction for regular languages
Communications of the ACM
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On automatic class insertion with overloading
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
From custom applications to domain-specific frameworks
Communications of the ACM
Class hierarchy specialization
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reengineering class hierarchies using concept analysis
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
A model for compound type changes encountered in schema evolution
ACM Transactions on Database Systems (TODS)
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Understanding class hierarchies using concept analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A software engineering perspective on algorithmics
ACM Computing Surveys (CSUR)
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
Formalising Behaviour Preserving Program Transformations
ICGT '02 Proceedings of the First International Conference on Graph Transformation
Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture
SEW '02 Proceedings of the 27th Annual NASA Goddard Software Engineering Workshop (SEW-27'02)
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Applying traits to the smalltalk collection classes
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Refactoring class hierarchies with KABA
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Decoupling classes with inferred interfaces
Proceedings of the 2006 ACM symposium on Applied computing
Automating three modes of evolution for object-oriented software architectures
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
Fine-grain transformations to refactor UML models
Proceedings of the Warm Up Workshop for ACM/IEEE ICSE 2010
Composite refactoring using fine-grained transformations
Proceedings of the 2009 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists
Source Code Rejuvenation Is Not Refactoring
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
On the automated modularisation of java programs using service locators
SC'12 Proceedings of the 11th international conference on Software Composition
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
Hi-index | 0.02 |
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.