کد مقاله کد نشریه سال انتشار مقاله انگلیسی نسخه تمام متن
433356 1441667 2014 24 صفحه PDF دانلود رایگان
عنوان انگلیسی مقاله ISI
An insight into the dispersion of changes in cloned and non-cloned code: A genealogy based empirical study
ترجمه فارسی عنوان
نگاهی به پراکندگی تغییرات در کد کلون و غیر کلون شده: یک مطالعه تجربی مبتنی بر سلسله شناسی
کلمات کلیدی
پراکندگی، بی ثباتی، کلون ها تعمیر و نگهداری نرم افزار، تغییر کد
موضوعات مرتبط
مهندسی و علوم پایه مهندسی کامپیوتر نظریه محاسباتی و ریاضیات
چکیده انگلیسی

In this paper, we present an in-depth empirical study of a new metric, change dispersion, that measures the extent changes are scattered throughout the code of a software system. Intuitively, highly dispersed changes, the changes that are scattered throughout many software entities (such as files, classes, methods, and variables), should require more maintenance effort than the changes that only affect a few entities. In our research we investigate change dispersion on the code-base of a number of subject systems as a whole, and separately on each system's cloned and non-cloned code. Our central objective is to determine whether cloned code negatively affects software evolution and maintenance. The granularity of our focus is at the method level.Our experimental results on 16 open source subject systems written in four different programming languages (Java, C, C#, and Python) involving two clone detection tools (CCFinderX and NiCad) and considering three major types of clones (Type 1: exact, Type 2: dissimilar naming, and Type 3: some dissimilar code) suggests that change dispersion has a positive and statistically significant correlation with the change-proneness (or instability) of source code. Cloned code, especially in Java and C systems, often exhibits a higher change dispersion than non-cloned code. Also, changes to Type 3 clones are more dispersed compared to changes to Type 1 and Type 2 clones. According to our analysis, a primary cause of high change dispersion in cloned code is that clones from the same clone class often require corresponding changes to ensure they remain consistent.

ناشر
Database: Elsevier - ScienceDirect (ساینس دایرکت)
Journal: Science of Computer Programming - Volume 95, Part 4, 1 December 2014, Pages 445–468
نویسندگان
, , ,