ET++—an object oriented application framework in C++
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Automatic code generation from design patterns
IBM Systems Journal
An experience using design patterns: lessons learned and tool support
Theory and Practice of Object Systems - Special issue on patterns
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Design Patterns: Abstraction and Reuse of Object-Oriented Design
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
On the Computer Aided Introduction of Design Pattern into Object-Oriented Systems
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Evolving Object-Oriented Applications with Refactorings
Evolving Object-Oriented Applications with Refactorings
Cascaded refactoring for framework
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
Architectural Refactoring in Framework Evolution: A Case Study
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
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
Making patterns explicit with metaprogramming
Proceedings of the 2nd international conference on Generative programming and component engineering
Supporting transparent model update in distributed CASE tool integration
Proceedings of the 2006 ACM symposium on Applied computing
Framework for evolving systems
SEPADS'06 Proceedings of the 5th WSEAS International Conference on Software Engineering, Parallel and Distributed Systems
Hi-index | 0.00 |
Architectural evolution is a costly yet unavoidable consequence of a successful application. One method for reducing cost is to automate aspects of the evolutionary cycle when possible. Three kinds of architectural evolution in object-oriented systems are: schema transformations, the introduction of design pattern microarchitectures, and the hot-spot-driven-approach. This paper shows that all three can be viewed as transformations applied to an evolving design. Further, the transformations are automatable with refactorings -- behavior-preserving program transformations. A comprehensive list of refactorings used to evolve large applications is provided and an analysis of supported schema transformations, design patterns, and hot-spot meta patterns is presented. Refactorings enable the evolution of architectures on an if-needed basis reducing unnecessary complexity and inefficiency.