论文部分内容阅读
随着计算机软件技术的快速发展,软件的计算模式、应用模式及产品形态等都在发生着巨大的变化,软件系统结构变得越来越复杂,软件缺陷不可避免的会隐藏在软件系统的各个模块中,这些缺陷在软件系统运行时会导致不可预知的错误发生。而当错误发生时,现有的缺陷定位方法往往很难迅速定位缺陷的位置,而且定位的准确性往往也不够理想。因此,如果能够事先评估软件系统里各个类中潜在缺陷的传播范围,并对各个类的影响力进行排序,则能够对软件系统中重要性较高的类进行重点监控,进而实现对软件质量有效评估。基于上述讨论,本文通过提出一种软件网络节点影响力排序算法来评估软件系统中类的重要性。本文首先将软件源代码的类抽象为节点,将类间依赖关系抽象为边,即将软件源代码中的类及类间关系抽取为软件网络。然后根据类间的方法调用关系定义一种加权软件网络,进而提出一种基于加权软件网络的节点重要性排序算法IRMN(Importance Ranking Method of Nodes),通过计算软件网络中节点在软件网络中的影响力并排序,进而评估各个类的潜在缺陷在软件系统中的传播效应。为了验证算法的有效性,本文选取3个开源软件系统的源代码进行了缺陷植入实验。首先在软件源代码所有的类中分别植入缺陷,统计各个类的缺陷在整个软件源代码中的传播范围大小,并与本文提出算法的排序结果进行比对,验证了算法的正确性。然后通过与其它算法对比实验,验证了本文提出算法的排序结果具有较高的准确性。进一步的实验表明,软件系统类的重要性构成中外部连接属性的作用略大于内部构成属性。