论文部分内容阅读
近年来,计算机软件规模迅速扩张,软件功能日渐复杂,给开发健壮的软件系统带来困难。尤其在大型软件开发中,容易引入程序缺陷与错误。自动或半自动的程序缺陷探查工具,为开发者提供在软件系统中定位潜在程序缺陷的功能,有助于大型软件的健壮性提升。
一种近期流行的程序缺陷探查方法是对各种程序特征进行抽取,总结出相应的规则,将不符合规则的实现部分作为可能的程序缺陷。大型软件系统中的程序缺陷,多发生在横切关注点(cross-cuttingConcern)的实现之中(如:内存分配回收、参数检查、同步、系统功能配置)。对实现横切关注点的代码部分进行分析,总结出其实现模式,通过对与实现模式不一致的反常横切关注点实现的定位,可以发现程序中与横切关注点实现有关的代码中存在的可能缺陷。
本文提出一种基于横切关注点的程序缺陷探查方法。采用基于变量操作序列的定位技术,在变量的细粒度上,找出实现横切关注点的源代码部分。按照所包含的横切关注点的特征,对包含类似横切关注点的函数实现进行分区。在每个分区中根据横切关注点的实现模式定位反常的横切关注点实现,使用基于经验的方法进行筛选以得出本工具所推荐的缺陷候选。在此基础上,用户可以根据具体的领域知识对缺陷候选进行验证,以确定缺陷列表。
本文在Eclipse平台上实现了缺陷探查工具原型,并在Linux2.6.21版源代码上进行了实验。实验结果表明,基于横切关注点的程序缺陷探查方法切实可行。