克隆代码及相关缺陷检测系统的设计与实现

哈尔滨工业大学工程硕士学位论文

目录

摘要..................................................................................................................... I ABSTRACT ........................................................................................................... II 目录................................................................................................................... I II 第1章绪论 (1)

1.1课题的来源和背景 (1)

1.2国内外研究现状 (1)

1.2.1 基于字符串的检测方法 (2)

1.2.2 基于参数化匹配的检测方法 (3)

1.2.3 基于分析树的检测方法 (3)

1.2.4 基于分析图的检测方法 (4)

1.2.5 基于token的检测方法 (4)

1.2.6 其他检测方法 (5)

1.2.7 克隆代码相关缺陷检测的研究状况 (5)

1.2.8 克隆代码检测的发展趋势 (6)

1.3本论文章节安排 (7)

第2章克隆代码及相关缺陷检测系统需求分析 (8)

2.1系统功能需求分析 (9)

2.1.1 克隆代码检测应用需求 (9)

2.1.2 克隆代码相关缺陷检测应用需求 (11)

2.2系统非功能需求分析 (15)

2.3本章小结 (16)

第3章克隆代码及相关缺陷检测系统的设计 (17)

3.1系统的总体设计 (17)

3.1.1 系统架构 (17)

3.1.2 系统界面设计 (18)

3.1.3 系统总体模型设计 (19)

3.1.4 系统总体功能模块设计 (22)

3.2系统主要模块的设计与分析 (23)

-III-

哈尔滨工业大学工程硕士学位论文

3.2.1 词法分析模块的设计与分析 (23)

3.2.2 数字序列生成模块的设计与分析 (25)

3.2.3 挖掘模块的设计与分析 (26)

3.2.4 误检处理模块的设计与分析 (30)

3.2.5相关缺陷检测模块的设计与分析 (32)

3.3本章小结 (36)

第4章克隆代码及相关缺陷检测系统的实现 (37)

4.1系统的实现 (37)

4.1.1 词法分析模块的实现 (39)

4.1.2 数字序列生成模块的实现 (47)

4.1.3 挖掘模块的实现 (49)

4.1.4 误检处理模块的实现 (53)

4.1.5 相关缺陷检测模块的实现 (54)

4.2本章小结 (59)

第5章克隆代码及相关缺陷检测系统测试 (60)

5.1测试环境 (60)

5.2测试方案及结果 (60)

5.2.1性能测试结果 (61)

5.2.2功能测试结果 (62)

5.3结果分析 (66)

5.4本章小结 (67)

结论 (68)

参考文献 (69)

哈尔滨工业大学学位论文原创性声明和使用权限 (72)

致谢 (73)

个人简历 (74)

-IV-

哈尔滨工业大学工程硕士学位论文

第1章绪论

1.1 课题的来源和背景

随着计算机和其应用软件的迅猛发展,软件已经广泛应用于能源、交通、金融以及国防等领域中的各个方面,像神经般贯穿着整个社会,其安全和可靠性的问题也被人们日益重视。然而,软件系统的代码量变得越来越庞大并且复杂,比如1997年首飞的F22“猛禽”战斗机总代码数量约170万行左右,而2006年首飞的F35战斗机的全机代码量就已经攀升到了500万行左右[1]。

现实生活中软件开发人员通常有自己的代码库,存储着在以往已经做过的工程或者项目中留下来的各种功能的源代码。在开发者们开发新的系统时,如果碰到比较熟悉或者类似的功能需求时,开发人员可能更加倾向于用已经拥有的代码进行直接应用或者稍作修改后利用到程序中[2]。而在系统维护阶段,有些维护人员对源代码并不是非常的了解,所以当需要给系统添加新的功能模块时,可能也会使用克隆已有的代码片段的方法来完成增加功能的任务。或许系统的健壮性可以容忍部分克隆代码,但是随着系统不断的升级和维护之后,系统中很有可能充斥着大量的克隆代码,加大系统的结构复杂性,并且给系统埋下了巨大的安全隐患。克隆代码的研究一直是一个重要的领域,而就克隆代码目前国内可用的检测工具来看,都有着自身的短板问题,比如时间复杂度过高,检测大规模软件时明显时间消耗过高;支持检测的克隆类型过于基础和单一等问题。

本文系统是京航计算研究所面向航空航天等安全攸关软件的可靠性,根据于软件缺陷检测和软件系统维护的需求,依托哈工大航天软件工程应用中心的理论和设计支持,旨在开发针对于不同规模的软件系统,尤其是嵌入式软件系统,检测其克隆代码和克隆代码导致的相关缺陷。系统的目的和意义在于减少测试人员的部分工作量,更好的为人工检测提升效率,同时也提高安全攸关软件代码的设计质量和可维护性。目前系统已经在实际的软件测试和软件评估方面进行了工业化应用,落实在航空航天部分软件中的实际评估和测试。

1.2 国内外研究现状

克隆代码的研究开始具有影响性时是在软件工程领域中代码的重构和维护被日益重视起来。Martin Fowler和Kent Beck[3]共同总结了22种影响软件

相关文档
最新文档