Understanding Evolutionary Coupling by Fine-grained Co-change Relationship Analysis

被引:13
|
作者
Zhou, Daihong [1 ,2 ,3 ]
Wu, Yijian [1 ,2 ]
Xiao, Lu [4 ]
Cai, Yuanfang [5 ]
Peng, Xin [1 ,2 ,3 ]
Fan, Jinrong [1 ]
Huang, Lu [1 ]
Chen, Heng [1 ]
机构
[1] Fudan Univ, Sch Comp Sci, Shanghai, Peoples R China
[2] Fudan Univ, Shanghai Key Lab Data Sci, Shanghai, Peoples R China
[3] Shanghai Inst Intelligent Elect & Syst, Shanghai, Peoples R China
[4] Stevens Inst Technol, Sch Syst & Enterprises, Hoboken, NJ 07030 USA
[5] Drexel Univ, Dept Comp Sci, Philadelphia, PA 19104 USA
基金
上海市科技启明星计划;
关键词
Co-change Analysis; Evolutionary Coupling; Co-change Relationship; Change Types; Empirical Study;
D O I
10.1109/ICPC.2019.00046
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Frequent co-changes to multiple files, i.e., evolutionary coupling, can demonstrate active relations among files, explicit or implicit. Although evolutionary coupling has been used to analyze software quality, there is no systematic study on the categorization of frequent co-changes between files which may used for characterizing various quality problems. In this paper, we report an empirical study on 27,087 co-change commits of 6 open-source systems with the purpose of understanding the observed evolutionary coupling. We extracted fine-grained change information from version control system to investigate whether two files exhibit particular kinds of co-change relationships. We consider code changes on 5 types of program entities (i.e., field, method, control statement, non-control statement, and class) and identified 6 types of dominating co-change relationships. Our manual analysis showed that each of the 6 types can be explained by structural coupling, semantic coupling, or implicit dependencies. Temporal analysis further shows that files may exhibit different co-change relationships at different phases in the evolution history. Finally, we investigated co-changes among multiple files by combining co-change relationships between related file pairs and showed with live examples that rich information embedded in the fine-grained co-change relationships may help developers to change code at multiple locations. Moreover, we analyzed how these co-change relationship types can be used to facilitate change impact analysis and to pinpoint design problems.
引用
收藏
页码:271 / 282
页数:12
相关论文
共 50 条
  • [1] A Fine-Grained Analysis on the Evolutionary Coupling of Cloned Code
    Mondal, Manishankar
    Roy, Chanchal K.
    Schneider, Kevin A.
    2014 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2014, : 51 - 60
  • [2] DRACO: Discovering Refactorings That Improve Architecture using Fine-Grained Co-change Dependencies
    de Oliveira, Marcos Cesar
    ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, : 1018 - 1021
  • [3] Fine-grained analysis of change couplings
    Fluri, B
    Gall, HC
    Pinzger, M
    FIFTH IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2005, : 66 - 74
  • [4] Logical Coupling Based on Fine-Grained Change Information
    Robbes, Romain
    Pollet, Damien
    Lanza, Michele
    FIFTEENTH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 2008, : 42 - 46
  • [5] Fine-grained visual understanding and reasoning
    Yu, Jun
    Yang, Yezhou
    Murtagh, Fionn
    Gao, Xinbo
    NEUROCOMPUTING, 2020, 398 (398) : 408 - 410
  • [6] Hardness to toughness relationship of fine-grained WC-Co hardmetals
    Schubert, W.D.
    Neumeister, H.
    Kinger, G.
    Lux, B.
    International Journal of Refractory Metals and Hard Materials, 1998, 16 (02): : 133 - 142
  • [7] Hardness to toughness relationship of fine-grained WC-Co hardmetals
    Schubert, WD
    Neumeister, H
    Kinger, G
    Lux, B
    INTERNATIONAL JOURNAL OF REFRACTORY METALS & HARD MATERIALS, 1998, 16 (02): : 133 - 142
  • [8] Diff/TS: A Tool for Fine-Grained Structural Change Analysis
    Hashimoto, Masatomo
    Mori, Akira
    FIFTEENTH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 2008, : 279 - 288
  • [9] Understanding Objects in Detail with Fine-grained Attributes
    Vedaldi, Andrea
    Mahendran, Siddharth
    Tsogkas, Stavros
    Maji, Subhransu
    Girshick, Ross
    Kannala, Juho
    Rahtu, Esa
    Kokkinos, Iasonas
    Blaschko, Matthew B.
    Weiss, David
    Taskar, Ben
    Simonyan, Karen
    Saphra, Naomi
    Mohamed, Sammy
    2014 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), 2014, : 3622 - 3629
  • [10] Change Taxonomy A Fine-Grained Classification of Software Change
    Elkholy, Mohamed
    Elfatatry, Ahmed
    IT PROFESSIONAL, 2018, 20 (04) : 28 - 36