کد مقاله کد نشریه سال انتشار مقاله انگلیسی نسخه تمام متن
433671 1441651 2015 13 صفحه PDF دانلود رایگان
عنوان انگلیسی مقاله ISI
The effect of refactoring on change and fault-proneness in commercial C# software
موضوعات مرتبط
مهندسی و علوم پایه مهندسی کامپیوتر نظریه محاسباتی و ریاضیات
پیش نمایش صفحه اول مقاله
The effect of refactoring on change and fault-proneness in commercial C# software
چکیده انگلیسی


• Refactored classes became less change-prone compared to classes prior to refactoring.
• The refactoring process thus benefits the long term maintenance of classes.
• Refactored classes became less fault-prone compared classes prior to refactoring.
• 2/3 of changes made were made to production classes; 1/3 were made to test classes.
• The benefits of refactoring classes are not negated by an increase in future change effort.

Refactoring is a process for improving the internal characteristics and design of software while preserving its external behaviour. Refactoring has been suggested as a positive influence on the long-term quality and maintainability of software and, as a result, we might expect benefits of a lower future change or fault propensity by refactoring software. Conversely, many studies show a correlation between change and future faults; so application of a refactoring may in itself increase future fault propensity, negating any benefit of the refactoring. In this paper, we determine whether the refactoring process reaps future maintenance benefits and, as a consequence, results in software with a lower propensity for both faults and change. We studied a large, commercial software system over a twelve-month period and identified a set of refactored classes during the middle four months of the study; a bespoke tool was used to detect occurrences of fifteen types of refactoring. We then examined the fault- and change-proneness of the same set of refactored classes in the four months prior to, during, and after the period of refactoring to determine if change or fault activity was reduced either during or after the period of refactoring studied. We also compared these trends with remaining classes in the system that had not been refactored over the same periods. Results revealed that refactored classes experienced a lower change-proneness in the period after refactoring and were significantly less fault-prone during and after the period of refactoring, even when accounting for the effects of change. The study therefore presents concrete evidence of the benefits of refactoring in these two senses.

ناشر
Database: Elsevier - ScienceDirect (ساینس دایرکت)
Journal: Science of Computer Programming - Volume 102, 1 May 2015, Pages 44–56
نویسندگان
, ,