Unveiling and Reasoning about Co-change Dependencies

被引:8
|
作者
de Oliveira, Marcos Cesar [1 ]
Bonifacio, Rodrigo [2 ]
Ramos, Guilherme N. [2 ]
Ribeiro, Marcio [3 ]
机构
[1] Minist Planning MPOG, Fed Budget Secretary, Brasilia, DF, Brazil
[2] Univ Brasilia, Dept Comp Sci, Brasilia, DF, Brazil
[3] Univ Fed Alagoas, Comp Inst, Maceio, Brazil
关键词
Modularity; software change; version control systems; co-change dependencies; co-change clusters; Design Structure Matrices; SOFTWARE; EVOLUTION; SYSTEMS;
D O I
10.1145/2889443.2889450
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Product flexibility is one of the expected benefits of a modular design, and thus "it should be possible to make drastic changes to a module without changing others." Accordingly, the data available on version control systems might help software architects to reason about some quality attributes of the modular decomposition of a system. In this paper we investigate the impact of co-change dependencies into system stability, that is, the potential ripple effect that might occur during maintenance tasks. Here we use (a) Design Structure Matrices (DSMs) for visualizing dependencies motivated by assets' co-change and (b) two metrics for estimating system stability: Propagation Cost of Changes and Clustered Cost of a Decomposition. We conducted a comprehensive study about co-change dependencies and their effects on system stability, considering the change history of six open-source Java systems: Derby, Eclipse UI, Eclipse JDT, Hadoop, Geronimo, and Lucene; and one relevant financial systems of the Brazilian Government (SIOP). We evaluated two distinct situations: first considering only the static dependencies of each system and then considering both static and co-change dependencies of each system. There is a significant impact of the co-change dependencies on the stability measurements for Derby, Hadoop, Lucene, and SIOP. This result suggests that the modular decomposition of these systems does not resemble their change history. Accordingly, our findings provide empirical evidence that the common approach for reasoning about the modular decomposition, which often uses only static dependencies, hides important details about the costs of maintenance tasks.
引用
收藏
页码:25 / 36
页数:12
相关论文
共 50 条
  • [1] Finding needles in a haystack: Leveraging co-change dependencies to recommend refactorings
    de Oliveira, Marcos Cesar
    Freitas, Davi
    Bonifacio, Rodrigo
    Pinto, Gustavo
    Lo, David
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2019, 158
  • [2] DRACO: Discovering Refactorings That Improve Architecture using Fine-Grained Co-change Dependencies
    de Oliveira, Marcos Cesar
    [J]. ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, : 1018 - 1021
  • [3] On the Conceptual Cohesion of Co-Change Clusters
    de Oliveira, Marcos Cesar
    Bonifacio, Rodrigo
    Ramos, Guilherme N.
    Ribeiro, Marcio
    [J]. 2015 29TH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING, 2015, : 120 - 129
  • [4] Reasoning About Embedded Dependencies Using Inclusion Dependencies
    Hannula, Miika
    [J]. LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, (LPAR-20 2015), 2015, 9450 : 16 - 30
  • [5] Visualizing Co-Change Information with the Evolution Radar
    D'Ambros, Marco
    Lanza, Michele
    Lungu, Mircea
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2009, 35 (05) : 720 - 735
  • [6] Reasoning about dependencies in partial knowledge bases
    Malekovic, M
    [J]. INES 2005: 9TH INTERNATIONAL CONFERENCE ON INTELLIGENT ENGINEERING SYSTEMS, 2005, : 135 - 138
  • [7] Leveraging Historical Co-change Information for Requirements Traceability
    Ali, Nasir
    Jaafar, Fehmi
    Hassan, Ahmed E.
    [J]. 2013 20TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE), 2013, : 361 - 370
  • [8] Cross-Project Build Co-change Prediction
    Xia, Xin
    Lo, David
    McIntosh, Shane
    Shihab, Emad
    Hassan, Ahmed E.
    [J]. 2015 22ND INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2015, : 311 - 320
  • [9] Co-change patterns: A large scale empirical study
    Silva, Luciana L.
    Valente, Marco Tulio
    Maia, Marcelo A.
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2019, 152 : 196 - 214
  • [10] Studying the Effect of Co-change Dispersion on Software Quality
    Kouroshfar, Ehsan
    [J]. PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), 2013, : 1450 - 1452