基于切片技术的软件理解辅助系统设计与实现

基于切片技术的软件理解辅助系统设计与实现

论文摘要

随着计算机技术的发展和软件系统规模的扩大,现有软件系统往往积累了大量的行业知识,包括系统需求、业务规则和设计决策等,因此对软件系统的维护显得越来越重要。而对原有系统的理解是对软件进行维护的前提,只有正确理解了原有系统的功能,才能高效率地对原有系统进行维护和改进。因此,软件理解在软件维护过程中发挥着重要的作用。程序切片技术是Mark Weiser提出的一种程序分析的技术,它通过计算与某个用户感兴趣的变量相关的语句集来分解程序。程序切片技术的提出,极大地丰富了程序分析和程序理解的理论基础。在软件工程的各个领域如程序分析、理解、测试、调试、度量等,程序切片技术都得到了广泛的应用。本文设计的系统以程序切片技术为基础,采用的是Weiser提出的数据流迭代算法。由于C语言编制程序中指针的广泛使用,如果对指针作保守估计,将极大损害数据流分析结果的精确度。本文考察了指针分析的表示法、指针问题的复杂度、以及指针问题的分类,在介绍了一种上下文敏感的过程间指针分析算法的基础上,针对函数指针间接进行的函数调用,本文利用Atkinson函数类型签名过滤的思想,给出了一种提高函数指针指向精确度的方案。本文最后给出了系统的设计与实现,在程序分析前端的预处理器中,对系统头文件的包含作了过滤处理,这样就使得程序经过词法分析、语法分析之后,在中间代码产生器中产生的中间代码的数目大大减少。在分析后端实现了程序切片器、交叉引用器、模块内聚度量、文件及函数依赖显示器等。实现中用到的技术有LEX、YACC、dom4j、Java Swing、JFreeChart等。由于中间代码采用了XML表示存储,在此基础上开发新的后端分析工具是很容易的。本文中的系统对于软件人员关注变量使用,方便理解程序提供了帮助。

论文目录

  • 摘要
  • Abstract
  • 1 绪论
  • 1.1 什么是程序理解
  • 1.2 程序理解的任务
  • 1.3 软件理解方法
  • 1.4 程序理解研究现状
  • 1.5 本文的组织
  • 2 程序切片技术
  • 2.1 程序切片技术简介
  • 2.2 程序切片算法
  • 2.2.1 数据流算法
  • 2.2.2 图可达性算法
  • 2.2.3 ANSI C程序切片实现中的问题
  • 3 指针分析算法的设计
  • 3.1 指针分析器在辅助系统数据流中的位置
  • 3.2 指针分析的表示法选择
  • 3.3 指针分析算法
  • 3.3.1 指针分析问题的复杂度
  • 3.3.2 指针分析算法实现上的复杂性
  • 3.4 一个上下文敏感的过程间指针分析算法
  • 3.4.1 上下文敏感的过程间指针分析算法
  • 3.4.2 过程内指针分析算法
  • 3.4.3 过程间指针分析算法
  • 3.4.4 基于类型签名过滤的函数指针分析算法
  • 3.4.5 指针数组的处理
  • 4 软件理解辅助系统的设计与实现
  • 4.1 系统结构
  • 4.2 程序分析前端的设计与实现
  • 4.2.1 程序预处理器
  • 4.2.2 词法分析器与语法分析器
  • 4.2.3 中间代码的产生、转换以及装载
  • 4.3 后端分析工具的设计与实现
  • 4.3.1 程序切片器与切片的可视化
  • 4.3.2 程序的内聚度分析
  • 4.3.3 程序交叉引用器
  • 4.3.4 函数依赖图形显示
  • 4.3.5 文件依赖图形显示
  • 4.4 系统测试
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表学术论文情况
  • 致谢
  • 相关论文文献

    • [1].5G网络切片技术资源管理及未来发展趋势探讨[J]. 电信快报 2019(12)
    • [2].5G网络切片技术的应用研究[J]. 数字通信世界 2020(01)
    • [3].5G网络切片技术研究[J]. 邮电设计技术 2020(03)
    • [4].切片技术在5G移动网络中的运用[J]. 电子技术与软件工程 2019(15)
    • [5].5G网络切片技术研究[J]. 电子世界 2019(20)
    • [6].弹性网络的网络切片技术研究[J]. 通信技术 2016(12)
    • [7].5G网络切片技术驱动力分析[J]. 通讯世界 2019(12)
    • [8].虚拟切片技术在肾内科临床、科研及教学中的应用前景[J]. 协和医学杂志 2020(02)
    • [9].未来5G网络切片技术关键问题分析[J]. 中国新通信 2019(11)
    • [10].胰腺肿瘤大切片技术[J]. 临床与实验病理学杂志 2020(05)
    • [11].5G网络切片技术在智能电网的应用研究[J]. 中国新通信 2020(14)
    • [12].5G网络切片技术在雪亮工程中的应用分析[J]. 通信与信息技术 2019(04)
    • [13].5G应用前景及网络切片技术探讨[J]. 湖北农机化 2019(18)
    • [14].大唐移动专家详谈5G网络切片技术以用户为中心[J]. 通信世界 2017(15)
    • [15].程序切片技术在软件测试中的应用[J]. 电子技术与软件工程 2014(17)
    • [16].程序切片技术及其应用的研究[J]. 软件导刊 2010(11)
    • [17].病理组织大切片技术在肺癌的临床分析[J]. 吉林医学 2015(08)
    • [18].软件测试中的程序切片技术[J]. 现代导航 2012(03)
    • [19].未来5G网络切片技术关键问题分析与探究[J]. 通信电源技术 2019(01)
    • [20].石蜡包埋家蚕(蛹)大切片技术的改进[J]. 广东蚕业 2010(02)
    • [21].基于研磨抛光切片技术的芯片结构观察研究[J]. 微电子学 2012(04)
    • [22].计算机程序切片技术探讨[J]. 中国新技术新产品 2009(18)
    • [23].病理大切片技术在胃癌大部切除术后应用价值及优势探讨[J]. 胃肠病学和肝病学杂志 2016(01)
    • [24].磐安举办浙贝母无硫加工技术培训暨浙贝母切片技术比武活动[J]. 现代农机 2019(03)
    • [25].5G网络切片技术综述[J]. 无线电通信技术 2019(06)
    • [26].病理大切片技术在新辅助化疗后乳腺癌手术标本中的应用及其推广价值[J]. 温州医学院学报 2012(01)
    • [27].网络切片技术领域专利分析[J]. 电信网技术 2017(03)
    • [28].程序断言与切片技术在检测程序非崩溃错误中的应用[J]. 小型微型计算机系统 2014(08)
    • [29].基于切片技术的并行化研究[J]. 计算机科学 2011(07)
    • [30].地层切片技术及应用[J]. 钻采工艺 2010(S1)

    标签:;  ;  ;  ;  

    基于切片技术的软件理解辅助系统设计与实现
    下载Doc文档

    猜你喜欢