view in publisher's site

The relationship between evolutionary coupling and defects in large industrial software

Abstract Evolutionary coupling (EC) is defined as the implicit relationship between 2 or more software artifacts that are frequently changed together. Changing software is widely reported to be defect‐prone. In this study, we investigate the effect of EC on the defect proneness of large industrial software systems and explain why the effects vary. We analysed 2 large industrial systems: a legacy financial system and a modern telecommunications system. We collected historical data for 7 years from 5 different software repositories containing 176 thousand files. We applied correlation and regression analysis to explore the relationship between EC and software defects, and we analysed defect types, size, and process metrics to explain different effects of EC on defects through correlation. Our results indicate that there is generally a positive correlation between EC and defects, but the correlation strength varies. Evolutionary coupling is less likely to have a relationship to software defects for parts of the software with fewer files and where fewer developers contributed. Evolutionary coupling measures showed higher correlation with some types of defects (based on root causes) such as code implementation and acceptance criteria. Although EC measures may be useful to explain defects, the explanatory power of such measures depends on defect types, size, and process metrics.

رابطه بین جفت شدگی تکاملی و نقص‌های موجود در نرم‌افزار بزرگ صنعتی

چکیده جفت شدن تکاملی (EC)به عنوان یک رابطه ضمنی بین دو یا چند شی نرم‌افزاری تعریف می‌شود که اغلب با هم عوض می‌شوند. تغییر نرم‌افزاری به طور گسترده در معرض نقص گزارش شده‌است. در این مطالعه، اثر EC بر مستعد بودن نقص سیستم‌های نرم‌افزاری بزرگ صنعتی بررسی شده و توضیح می‌دهیم که چرا اثرات متفاوت است. ما ۲ سیستم بزرگ صنعتی را تحلیل کردیم: یک سیستم مالی موروثی و یک سیستم مخابراتی مدرن. ما داده‌های تاریخی را به مدت ۷ سال از ۵ مخزن مختلف نرم‌افزاری که شامل ۱۷۶ هزار پرونده است جمع‌آوری کردیم. ما از همبستگی و تحلیل رگرسیون برای بررسی رابطه بین EC و نقص‌های نرم‌افزاری استفاده کردیم، و انواع نقص، اندازه و معیارهای فرآیند را برای توضیح اثرات مختلف EC بر روی نقص از طریق همبستگی مورد تجزیه و تحلیل قرار دادیم. نتایج ما نشان می‌دهد که عموما همبستگی مثبتی بین EC و نقص‌های وجود دارد، اما قدرت همبستگی تغییر می‌کند. جفت شدگی تکاملی به احتمال کمتری نسبت به نواقص نرم‌افزار برای بخش‌هایی از نرم‌افزار با فایل‌های کم‌تر و جایی که توسعه دهندگان کم‌تر کمک کرده‌اند، کم‌تر است. معیارهای جفت شدگی تکاملی همبستگی بالاتری با برخی انواع نقص‌های (براساس علل ریشه‌ای)مانند اجرای کد و معیارهای پذیرش نشان دادند. اگرچه اقدامات EC ممکن است برای توضیح نقص‌های مفید باشد، توان توضیحی چنین اقداماتی به نوع نقص، اندازه و معیارهای فرآیند بستگی دارد.

ترجمه شده با

Download PDF سفارش ترجمه این مقاله این مقاله را خودتان با کمک ترجمه کنید
سفارش ترجمه مقاله و کتاب - شروع کنید

95/12/18 - با استفاده از افزونه دانلود فایرفاکس و کروم٬ چکیده مقالات به صورت خودکار تشخیص داده شده و دکمه دانلود فری‌پیپر در صفحه چکیده نمایش داده می شود.