基于srcML的源代码分析、表示及应用技术研究

基于srcML的源代码分析、表示及应用技术研究

论文摘要

随着计算机软件规模和复杂度的日益增加,软件理解与维护在软件生命周期中所占的比重越来越大,成本也越来越高。编程语言与开发环境固有的多样性和复杂性与现有工具相对单一的处理能力之间的矛盾使得大规模软件的理解与维护过程变得更加复杂。如何开发一套与目标系统语言无关的、可扩展的、轻量级的源代码分析、表示与编织工具,以降低软件理解与维护的复杂度,具有重要的理论意义与应用价值。srcML技术作为一种基于XML的新型源代码表示方法,具有XML技术固有的诸多优点。srcML能够以一种统一的、可扩展的方式描述由不同语言及开发环境所开发的程序,在此基础上可以建立一套与目标系统语言无关的、可扩展的软件理解与维护框架,从而有效地降低软件理解与维护的复杂度。本文将srcML技术应用于软件理解与维护领域,提出了一个基于srcML的源代码应用模型(SCAMS),该模型采用层次化设计方法,完全兼容XML的技术标准,具有良好的平台无关性、可扩展性、易用性和适应性。基于该SCAMS模型,本文还实现了一个新型的软件理解与维护框架,该框架具有很好的结构扩展性与功能扩展性。在此框架内所设计和实现的源代码分析、表示与编织工具,能够高效地支持高级程序设计语言的分析、表示与编织,并具有友好的人机交互界面。该工具已成功应用于国防科学技术大学计算机学院开发的TSIDE系统中,可以提供对C/C++程序的理解与维护支持。本文的主要研究工作包括:1.研究了多种源代码的标记文本表示方法,比较和总结了基于XML的表示方法,重点对srcML表示方法的工作原理和应用进行了深入分析。2.基于层次化的设计思想,提出了基于srcML的源代码应用模型SCAMS。SCAMS由代码表示层、抽象模型层与具体应用层组成。通过在传统源代码处理过程中引入srcML层,SCAMS实现了软件理解和维护任务与目标代码语言的相互独立。该模型所提供的源代码分析、表示机制与源代码编织机制具有很强的通用性和可扩展性。3.设计了基于SCAMS的软件理解与维护框架,具体包括源代码分析、表示与编织工具SrcADWTool。SrcADWTool可以不依赖编译器自主生成目标系统代码的语法结构图。此外,用户可以在SrcADWTool提供的友好图形界面下,根据目标代码的语法结构表达编织需求,在不破坏初始代码质量的情况下实现高效编织功能。4.介绍了SrcADWTool在一个基于监控的可信软件生产环境TSIDE中的应用,并使用一个生产者消费者程序对其功能性和可靠性进行了验证。验证结果表明,SCAMS模型和基于该模型设计实现的SrcADWTool工具能够很好地对源代码的语法结构进行分析、表示,并能够方便地根据用户需求进行高品质的代码编织。本文的工作对复杂软件的理解与维护具有良好的理论和现实意义。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景
  • 1.2 研究现状
  • 1.3 本文的贡献
  • 1.4 论文结构
  • 第二章 相关技术研究
  • 2.1 标记文本表示方法研究
  • 2.1.1 研究背景
  • 2.1.2 研究现状
  • 2.1.3 应用研究
  • 2.1.4 srcML 技术
  • 2.2 XSLT 技术介绍
  • 2.2.1 XSLT 概述
  • 2.2.2 XSLT 基本原理
  • 2.2.3 XSLT 使用示例
  • 2.3 小结
  • 第三章 基于 srcML 的源代码应用模型
  • 3.1 基于 srcML 的源代码应用模型 SCAMS
  • 3.2 源代码分析、表示机制
  • 3.3 源代码编织机制
  • 3.4 模型分析
  • 3.4.1 结构分析
  • 3.4.2 能力分析
  • 3.4.3 适应性分析
  • 3.5 小结
  • 第四章 基于 srcML 的源代码分析、表示与编织工具设计
  • 4.1 系统设计目标
  • 4.2 系统体系结构
  • 4.2.1 源代码转换模块
  • 4.2.2 源代码分析、表示模块
  • 4.2.3 源代码编织模块
  • 4.2.4 存储模块
  • 4.2.5 模块交互关系
  • 4.3 系统设计的关键问题
  • 4.3.1 源代码分析、表示机制的设计
  • 4.3.2 源代码编织机制的设计
  • 4.4 小结
  • 第五章 基于 srcML 的源代码分析、表示与编织工具实现
  • 5.1 源代码分析、表示模块的实现
  • 5.1.1 源代码分析功能的实现
  • 5.1.2 分析结果查询模块的实现
  • 5.2 基础模板的实现
  • 5.2.1 基础编织需求模板的实现
  • 5.2.2 XSLT 模板的实现
  • 5.3 源代码编织模块的实现
  • 5.3.1 基础编织API
  • 5.3.2 编织需求的表达
  • 5.4 实例验证
  • 5.5 小结
  • 第六章 结束语
  • 致谢
  • 参考文献
  • 作者在学期间取得的学术成果
  • 作者在学期间参加的科研项目
  • 附录A 缩略语
  • 相关论文文献

    • [1].虚拟环境在恶意代码分析取证教学中的应用研究[J]. 信息记录材料 2020(08)
    • [2].基于深度学习的代码分析研究综述[J]. 计算机应用与软件 2018(06)
    • [3].综合性恶意代码分析平台设计[J]. 计算机与数字工程 2019(03)
    • [4].静态代码分析在软件测试中的应用研究[J]. 嘉应学院学报 2016(02)
    • [5].浅谈恶意代码分析技术发展趋势[J]. 科技资讯 2013(16)
    • [6].基于网络的恶意代码分析系统设计与实现[J]. 价值工程 2012(35)
    • [7].克隆代码分析方法研究[J]. 计算机应用研究 2017(03)
    • [8].源代码分析:如何修复漏洞?[J]. 网络安全和信息化 2020(08)
    • [9].以质量为中心的高效软件开发(下)[J]. 程序员 2009(06)
    • [10].恶意代码分析技术综述[J]. 无线互联科技 2014(03)
    • [11].源代码分析工具Klocwork 8.1发布[J]. 程序员 2009(04)
    • [12].JetBrains推出ReSharper 5.0[J]. 电脑与电信 2010(04)
    • [13].JavaScript代码分析技术综述[J]. 计算机应用与软件 2018(11)
    • [14].移动设备恶意代码分析与检测技术研究[J]. 信息与电脑(理论版) 2017(14)
    • [15].基于FindBugs技术的静态代码分析[J]. 电脑知识与技术 2012(32)
    • [16].基于VBA的Java语言源代码分析系统设计[J]. 软件工程 2016(04)
    • [17].主动网络的数据采集与主动代码分析[J]. 机电技术 2008(03)
    • [18].安全编码实践三:C/C++静态代码分析工具Prefast[J]. 程序员 2008(06)
    • [19].基于N-gram特征的网络恶意代码分析方法[J]. 数字技术与应用 2020(03)
    • [20].人防通信系统中的恶意代码分析与防范[J]. 电脑知识与技术 2017(07)
    • [21].移动恶意代码分析及检测技术研究[J]. 信息通信技术 2015(01)
    • [22].恶意代码分析与检测研究现状[J]. 微电脑世界 2009(07)
    • [23].一种基于亲缘性的恶意代码分析方法[J]. 信息安全与技术 2014(01)
    • [24].C语言静态代码分析中的调用关系提取方法[J]. 计算机科学 2014(S1)
    • [25].基于云计算的恶意软件分析检测研究[J]. 软件导刊 2016(01)
    • [26].个人信念体系对美国国际危机应对行为的影响[J]. 国际关系研究 2017(06)
    • [27].lpc2294启动代码分析[J]. 软件导刊 2009(12)
    • [28].僵尸网络分析实验设计[J]. 实验技术与管理 2014(12)
    • [29].恶意代码的符号执行树分析方法[J]. 重庆大学学报 2012(02)
    • [30].安全编码实践之四 C/C++中禁用危险API[J]. 程序员 2008(09)

    标签:;  ;  ;  ;  

    基于srcML的源代码分析、表示及应用技术研究
    下载Doc文档

    猜你喜欢