OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Pattern matching for clone and concept detection
Reverse engineering
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems
IEEE Transactions on Software Engineering
Supporting the restructuring of data abstractions through manipulation of a program visualization
Supporting the restructuring of data abstractions through manipulation of a program visualization
Dynamically discovering likely program invariants
Dynamically discovering likely program invariants
Automatic generation of program specifications
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Summary of Dynamically discovering likely program invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Predicting problems caused by component upgrades
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Finding Latent Code Errors via Machine Learning over Program Executions
Proceedings of the 26th International Conference on Software Engineering
JIAD: a tool to infer design patterns in refactoring
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
JART: Grammar-Based Approach to Refactoring
COMPSAC '04 Proceedings of the 28th Annual International Computer Software and Applications Conference - Volume 01
Refactoring class hierarchies with KABA
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient incremental algorithms for dynamic detection of likely invariants
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Refactoring gcc using structure field access traces and concept analysis
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Towards a taxonomy of software change: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Unanticipated Software Evolution
Subjective evaluation of software evolvability using code smells: An empirical study
Empirical Software Engineering
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Visual specification of measurements and redesigns for domain specific visual languages
Journal of Visual Languages and Computing
Formal Verification by Reverse Synthesis
SAFECOMP '08 Proceedings of the 27th international conference on Computer Safety, Reliability, and Security
Specification Mining with Few False Positives
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Delving source code with formal concept analysis
Computer Languages, Systems and Structures
An information-based view of representational coupling in object-oriented systems
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
AURA: a hybrid approach to identify framework evolution
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Towards an appropriate software refactoring tool support
ACS'09 Proceedings of the 9th WSEAS international conference on Applied computer science
New efficient techniques for dynamic detection of likely invariants
ICANNGA'11 Proceedings of the 10th international conference on Adaptive and natural computing algorithms - Volume Part I
Localizing program logical errors using extraction of knowledge from invariants
SEA'11 Proceedings of the 10th international conference on Experimental algorithms
Detecting model refactoring opportunities using heuristic search
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
A new design defects classification: marrying detection and correction
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Understanding user understanding: determining correctness of generated program invariants
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Using dynamic analysis to discover polynomial and array invariants
Proceedings of the 34th International Conference on Software Engineering
Computers & Mathematics with Applications
Maintainability defects detection and correction: a multi-objective approach
Automated Software Engineering
Linking Cyclicality and Product Quality
Manufacturing & Service Operations Management
A survey of change management in service-based environments
Service Oriented Computing and Applications
What you like in design use to correct bad-smells
Software Quality Control
Hi-index | 0.00 |
Program refactoring - transforming a program to improve readability, structure, performance, abstraction, maintainability, or other features - is not applied in practice as much as might be desired. One deterrent is the cost of detecting candidates for refactoring and of choosing the appropriate refactoring transformation. This paper demonstrates the feasibility of automatically finding places in the program that are candidates for specific refactorings. The approach uses program invariants: when a particular pattern of invariant relationships appears at a program point, a specific refactoring is applicable. Since most programs lack explicit invariants, an invariant detection tool called Daikon is used to infer the required invariants. We developed an invariant pattern matcher for several common refactorings and applied it to an existing Java code base. Numerous refactorings were detected, and one of the developers of th code base assesed their efficacy.