Connectivity of co-changed method groups: a case study on open source systems

Connectivity of co-changed method groups: a case study on open source systems
复制标题

共同改变方法组的连通性:开源系统的案例研究

DOI:
--
复制
发表时间:
2012
期刊:
Conference of the Centre for Advanced Studies on Collaborative Research
影响因子:
--
通讯作者:
Kevin A. Schneider
Kevin A. Schneider
中科院分区:
--
文献类型:
--
作者:
Manishankar Mondal;C. Roy;Kevin A. Schneider

文献摘要

被引文献

相似文献

软件维护是软件开发生命周期中一个重要且具有挑战性的阶段,因为在此阶段中的更改如果没有正确意识到程序模块之间的依赖关系,可能会在软件系统中引入故障。还有一种共同的直觉,即克隆代码会带来额外的软件维护挑战和困难。为了支持维护活动的成功完成,我们考虑两个问题:(I)确定导致高源代码修改的编码特征,以及(Ii)最大限度地减少源代码修改的指导。 围绕这两个问题,我们研究了方法共享(在不同功能之间)对方法可互换性和源代码修改的影响。我们提出并实证评估了两个度量:(I)方法的协同可变化性(COMS)和(Ii)协同变更方法组的连通性(CCMS)。COMS衡量一种方法与其他方法共同变化的程度。CCMS量化了软件系统中的特定功能与该系统中的其他功能相连接的程度。换句话说,CCMS衡量不同功能或任务(稍后定义)之间方法共享的强度。我们调查了CCMS对COMS和源代码修改的影响。我们对涵盖三种编程语言(Java、C和C#)的六个开放源码主题系统的数百个修订版的综合研究表明-(I)更高的CCM会导致更高的CoM以及更多的源代码修改,(Ii)与非克隆区域中的CoM相比,软件系统克隆区域中的CoM可以忽略不计,以及(Iii)尽管存在一些问题(稍后描述),克隆可以是一种可能的减少CCMS的方法。
Software maintenance is an important and challenging phase of the software development life cycle because changes during this phase without proper awareness of dependencies among program modules can introduce faults in the software system. There is also a common intuition that cloned code introduces additional software maintenance challenges and difficulties. To support successful accomplishment of maintenance activities we consider two issues: (i) identifying coding characteristics that cause high source code modifications, and (ii) guidance for minimizing source code modifications. Focusing on these two issues we investigated the effects of method sharing (among different functionality) on method co-changeability and source code modifications. We proposed and empirically evaluated two metrics, (i) COMS (Co-changeability of Methods), and (ii) CCMS (Connectivity of Co-changed Method Groups). COMS measures the extent to which a method co-changes with other methods. CCMS quantifies the extent to which a particular functionality in a software system is connected with other functionality in that system. In other words CCMS measures the intensity of method sharing among different functionality or tasks (defined later). We investigated the impact of CCMS on COMS and source code modifications. Our comprehensive study on hundreds of revisions of six open source subject systems covering three programming languages (Java, C and C#) suggests that - (i) higher CCMS causes higher COMS as well as increased source code modifications, (ii) COMS in the cloned regions of a software system is negligible as compared to the COMS in the non-cloned regions, and (iii) in-spite of some issues (described later) cloning can be a possible way to reduce CCMS.