论文标题
从重构实践中揭示流程的见解
Unveiling process insights from refactoring practices
论文作者
论文摘要
上下文:据说软件理解和维护活动(例如重构)受软件复杂性的负面影响。在文献中,用于衡量软件产品和过程复杂性的方法已经进行了彻底的争论。但是,关于这两个维度之间可能的联系的辨别,尤其是在使用过程观点的好处上,有一个漫长的旅程。目的:为了提高对重构任务中开发人员活动和软件复杂性的联络的理解,即通过评估使用工艺挖掘方法和工具是否从IDE收集的过程指标,适合准确地对不同的重构实践进行分类以及所产生的软件复杂性。方法:我们在(117)软件开发人员(71)团队组织的(117)软件开发人员同时提供了质量改进任务后,我们从软件产品中挖掘了源代码指标。同时,我们从其IDE工作会议(320)中收集了事件,并使用了过程挖掘来建模其过程并提取通讯指标。结果:大多数使用插件进行重构的团队(Jdeodord)比仅使用Eclipse Native特征进行重构的过程更有效地降低了软件复杂性,并且更简单。我们能够在软件循环复杂性和过程循环复杂性之间找到适度的相关性(43%)。针对重构方法和循环复杂性水平预测的最佳模型的精度分别为92.95%和94.36%。结论:我们对编程语言,地理位置或发展实践的方法不可知。最初的发现令人鼓舞,并导致我们建议从业者可以在其他开发任务中使用我们的方法,例如缺陷分析,单位或集成测试。
Context : Software comprehension and maintenance activities, such as refactoring, are said to be negatively impacted by software complexity. The methods used to measure software product and processes complexity have been thoroughly debated in the literature. However, the discernment about the possible links between these two dimensions, particularly on the benefits of using the process perspective, has a long journey ahead. Objective: To improve the understanding of the liaison of developers' activities and software complexity within a refactoring task, namely by evaluating if process metrics gathered from the IDE, using process mining methods and tools, are suitable to accurately classify different refactoring practices and the resulting software complexity. Method: We mined source code metrics from a software product after a quality improvement task was given in parallel to (117) software developers, organized in (71) teams. Simultaneously, we collected events from their IDE work sessions (320) and used process mining to model their processes and extract the correspondent metrics. Results: Most teams using a plugin for refactoring (JDeodorant) reduced software complexity more effectively and with simpler processes than the ones that performed refactoring using only Eclipse native features. We were able to find moderate correlations (43%) between software cyclomatic complexity and process cyclomatic complexity. The best models found for the refactoring method and cyclomatic complexity level predictions, had an accuracy of 92.95% and 94.36%, respectively. Conclusions: Our approach agnostic to programming languages, geographic location, or development practices. Initial findings are encouraging, and lead us to suggest practitioners may use our method in other development tasks, such as, defect analysis and unit or integration tests.