Empirical Support for Two Refactoring Studies Using Commercial C# Software
Empirical Support for Two Refactoring Studies Using Commercial C# Software
复制标题
使用商业 C 语言进行两项重构研究的实证支持
DOI:
--
复制
发表时间:
2009
期刊:
影响因子:
--
通讯作者:
T. Hall
中科院分区:
文献类型:
--
作者:
Matt Gatrell;S. Counsell;T. Hall
Objective. This paper documents a study of the application of refactorings in commercial C# software comprising 270 versions over a two-month period. The software was developed in a continuous integration environment in a large, multi-national company where each software change committed to the source control was regarded as a new version. The aim of the research was to compare and contrast the results from two previous refactoring studies with those of the C# software.
Method. A tool was developed to compare each version with the previous and detect occurrences of fifteen types of refactorings in both production and test classes. In total, over one thousand separate refactorings were identified. We then extended the profile of refactorings to compare (separately) the types of refactorings identified in test code and those in production code. Finally, we explored the interrelationships between a subset of the fifteen refactorings as a part explanation for the results.
Conclusions. While 'simpler' refactorings were common, the more 'complex' structural refactorings were relatively rare. This supported the key result of an earlier empirical study by Advani et al. where Java open-source was used. Distinct differences were found in the types of refactoring applied to each code type. Support was found for a recent observation of Zaidman et al. in terms of parallel effort devoted to production and test classes. The study thus illustrates a strong commonality between refactoring trends found in both previous studies. Analysis of, and insight into all of our results were informed by follow-up discussions and consultation with the company's Architect.