2007 · 63 citations · 36 references
ComputingComputer ScienceData MiningMachine LearningSoftware EngineeringObject-oriented AnalysisObject-oriented DesignSoftware EvolutionSoftware MaintenanceSoftware RefactoringSystems Development Life CycleClassification AlgorithmsObject-oriented RefactoringPrediction ModelsRefactoringRefactoring DetectionRefactoring MiningSoftware Development Life CycleSoftware Evolution Analysis
Information systems used in software projects provide a broad range of data for decision support. The study aims to predict future refactoring locations using development history. The authors extract evolution features from version control logs and train various classifiers—including decision trees, logistic model trees, rule learners, and nearest neighbors—to predict refactoring. The models achieved high precision and recall, accurately predicting refactoring needs within two months and revealing common lifecycle factors that drive refactoring across projects.
Can we predict locations of future refactoring based on the development history? In an empirical study of open source projects we found that attributes of software evolution data can be used to predict the need for refactoring in the following two months of development. Information systems utilized in software projects provide a broad range of data for decision support. Versioning systems log each activity during the development, which we use to extract data mining features such as growth measures, relationships between classes, the number of authors working on a particular piece of code, etc. We use this information as input into classification algorithms to create prediction models for future refactoring activities. Different state-of-the-art classifiers are investigated such as decision trees, logistic model trees, prepositional rule learners, and nearest neighbor algorithms. With both high precision and high recall we can assess the refactoring proneness of object-oriented systems. Although we investigate different domains, we discovered critical factors within the development life cycle leading to refactoring, which are common among all studied projects.
36
A survey of software refactoring
Tom Mens, Tom Tourwé · IEEE Transactions on Software Engineering · 2004 · 1.2K citations · Full text
A discipline for software engineering
Control Engineering Practice · 1995 · 1K citations