Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Trends in Java code changes: the key to identification of refactorings?
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Are refactorings less error-prone than other changes?
Proceedings of the 2006 international workshop on Mining software repositories
How Are Java Software Developers Using the Eclipse IDE?
IEEE Software
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
Refactoring Practice: How it is and How it Should be Supported - An Eclipse Case Study
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
High-impact Refactoring Based on Architecture Violations
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Mining a Change-Based Software Repository
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Refactoring--Does It Improve Software Quality?
WoSQ '07 Proceedings of the 5th International Workshop on Software Quality
High velocity refactorings in Eclipse
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Breaking the barriers to successful refactoring: observations and tools for extract method
Proceedings of the 30th international conference on Software engineering
On the relation of refactorings and software defect prediction
Proceedings of the 2008 international working conference on Mining software repositories
What do large commits tell us?: a taxonomical study of large commits
Proceedings of the 2008 international working conference on Mining software repositories
Refactoring Tools: Fitness for Purpose
IEEE Software
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
An interactive ambient visualization for code smells
Proceedings of the 5th international symposium on Software visualization
CodePad: interactive spaces for maintaining concentration in programming environments
Proceedings of the 5th international symposium on Software visualization
Towards an appropriate software refactoring tool support
ACS'09 Proceedings of the 9th WSEAS international conference on Applied computer science
An exploratory study of code smells in evolving aspect-oriented systems
Proceedings of the tenth international conference on Aspect-oriented software development
How do programs become more concurrent: a story of program transformations
Proceedings of the 4th International Workshop on Multicore Software Engineering
A visualization method of program dependency graph for identifying extract method opportunity
Proceedings of the 4th Workshop on Refactoring Tools
Understanding the longevity of code smells: preliminary results of an explanatory survey
Proceedings of the 4th Workshop on Refactoring Tools
Impact of refactoring on quality code evaluation
Proceedings of the 4th Workshop on Refactoring Tools
Refactoring Java programs for flexible locking
Proceedings of the 33rd International Conference on Software Engineering
An empirical investigation into the role of API-level refactorings during software evolution
Proceedings of the 33rd International Conference on Software Engineering
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
Always-available static and dynamic feedback
Proceedings of the 33rd International Conference on Software Engineering
Detecting architecturally-relevant code smells in evolving software systems
Proceedings of the 33rd International Conference on Software Engineering
A case study on refactoring in Haskell programs
Proceedings of the 33rd International Conference on Software Engineering
Identification of extract method refactoring opportunities for the decomposition of methods
Journal of Systems and Software
Capturing and analyzing low-level events from the code editor
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
The need for richer refactoring usage data
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Designing useful tools for developers
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Differential precondition checking: A lightweight, reusable analysis for refactoring tools
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
WitchDoctor: IDE support for real-time auto-completion of refactorings
Proceedings of the 34th International Conference on Software Engineering
TexMo: a multi-language development environment
ECMFA'12 Proceedings of the 8th European conference on Modelling Foundations and Applications
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Improving software developers' fluency by recommending development environment commands
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
A field study of refactoring challenges and benefits
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
A posteriori operation detection in evolving software models
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)
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Drag-and-drop refactoring: intuitive and efficient program transformation
Proceedings of the 2013 International Conference on Software Engineering
Proceedings of the 2013 International Conference on Software Engineering
The impact of tangled code changes
Proceedings of the 10th Working Conference on Mining Software Repositories
SPAPE: A semantic-preserving amorphous procedure extraction method for near-miss clones
Journal of Systems and Software
Systematic testing of refactoring engines on real software projects
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
A multidimensional empirical study on refactoring activity
CASCON '13 Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research
Investigating the evolution of code smells in object-oriented systems
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Much of what we know about how programmers refactor in the wild is based on studies that examine just a few software projects. Researchers have rarely taken the time to replicate these studies in other contexts or to examine the assumptions on which they are based. To help put refactoring research on a sound scientific basis, we draw conclusions using four data sets spanning more than 13 000 developers, 240 000 tool-assisted refactorings, 2500 developer hours, and 3400 version control commits. Using these data, we cast doubt on several previously stated assumptions about how programmers refactor, while validating others. For example, we find that programmers frequently do not indicate refactoring activity in commit logs, which contradicts assumptions made by several previous researchers. In contrast, we were able to confirm the assumption that programmers do frequently intersperse refactoring with other program changes. By confirming assumptions and replicating studies made by other researchers, we can have greater confidence that those researchers' conclusions are generalizable.