SMALLTALK-80: the interactive programming environment
SMALLTALK-80: the interactive programming environment
Andrew: a distributed personal computing environment
Communications of the ACM - The MIT Press scientific computation series
Semantics and implementation of schema evolution in object-oriented databases
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
ET++—an object oriented application framework in C++
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
The annotated C++ reference manual
The annotated C++ reference manual
Object-preserving class transformations
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Software engineering (3rd ed.): a practitioner's approach
Software engineering (3rd ed.): a practitioner's approach
Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
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
Systematic Change of Data Representation: Program Manipulations and a Case Study
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Design Patterns: Abstraction and Reuse of Object-Oriented Design
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Meta Patterns - A Means For Capturing the Essentials of Reusable Object-Oriented Design
ECOOP '94 Proceedings of the 8th 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
Software Change Through Design Maintenance
ICSM '97 Proceedings of the International Conference on Software Maintenance
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Evolving object-oriented designs with refactorings
Evolving object-oriented designs with refactorings
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
Object Oriented Design Knowledge: Ontology and Measurement of Impact
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
Evolving Partitions in Conceptual Schemas in the UML
CAiSE '02 Proceedings of the 14th International Conference on Advanced Information Systems Engineering
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Global Analysis and Transformations in Preprocessed Languages
IEEE Transactions on Software Engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Achieving seamless component composition through scenario-based deep adaptation and generation
Science of Computer Programming - Special issue on new software composition concepts
Automatic verification of design patterns in Java
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
A disciplined approach to aspect composition
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Refactoring programs to secure information flows
Proceedings of the 2006 workshop on Programming languages and analysis for security
Proceedings of the 2006 ACM symposium on Applied computing
Common refactorings, a dependency graph and some code smells: an empirical study of Java OSS
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
MolhadoRef: a refactoring-aware infrastructure for OO programs
eclipse '06 Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange
Assisting novice software designers by an expert designer agent
Expert Systems with Applications: An International Journal
Supporting the dynamic evolution of Web service protocols in service-oriented architectures
ACM Transactions on the Web (TWEB)
A framework for an adaptive refactoring tool
ICAI'06 Proceedings of the 7th WSEAS International Conference on Automation & Information
Practical refactoring-based framework upgrade
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Controlled adaptation-oriented evolution of object-oriented components
SE '08 Proceedings of the IASTED International Conference on Software Engineering
CScout: A refactoring browser for C
Science of Computer Programming
Restructuring conditional code structures using object oriented design patterns
ICCSA'03 Proceedings of the 2003 international conference on Computational science and its applications: PartI
Use of a multidimensional approach to study the evolution of software complexity
Innovations in Systems and Software Engineering
A requirement-driven approach to enterprise application development
WISM'10 Proceedings of the 2010 international conference on Web information systems and mining
ER'10 Proceedings of the 2010 international conference on Advances in conceptual modeling: applications and challenges
Refactoring using type constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Empirical support for two refactoring studies using commercial C# software
EASE'09 Proceedings of the 13th international conference on Evaluation and Assessment in Software Engineering
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
How do developers react to API deprecation?: the case of a smalltalk ecosystem
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Refactoring legacy AJAX applications to improve the efficiency of the data exchange component
Journal of Systems and Software
An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology (TOSEM)
Discrete sequences analysis for detecting software design patterns
ADNTIIC'11 Proceedings of the Second international conference on Advances in New Technologies, Interactive Interfaces and Communicability
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Toward automated refactoring of crosscutting concerns into aspects
Journal of Systems and Software
Hi-index | 0.00 |
iRefactorings are behavior-preserving program transformations that automate design evolution in object-oriented applications. Three kinds of design evolution are: schema transformations, design pattern microarchitectures, and the hot-spot-driven-approach. This research shows that all three are automatable with refactorings. A comprehensive list of refactorings for design evolution is provided and an analysis of supported schema transformations, design patterns, and hot-spot meta patterns is presented. Further, we evaluate whether refactoring technology can be transferred to the mainstream by restructuring non-trivial C++ applications. The applications that we examine were evolved manually by software engineers. We show that an equivalent evolution could be reproduced significantly faster and cheaper by applying a handful of general-purpose refactorings. In one application, over 14K lines of code were transformed automatically that otherwise would have been coded by hand. Our experiments identify benefits, limitations, and topics of further research related to the transfer of refactoring technology to a production environment.