学位论文 > 优秀研究生学位论文题录展示

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

作 者: 薄建禄
导 师: 邹鹏;郭长国
学 校: 国防科学技术大学
专 业: 计算机科学与技术
关键词: 软件理解 软件维护 源代码分析 源代码编织 srcML
分类号: TP311.52
类 型: 硕士论文
年 份: 2008年
下 载: 16次
引 用: 0次
阅 读: 论文下载
 

内容摘要


随着计算机软件规模和复杂度的日益增加,软件理解与维护在软件生命周期中所占的比重越来越大,成本也越来越高。编程语言与开发环境固有的多样性和复杂性与现有工具相对单一的处理能力之间的矛盾使得大规模软件的理解与维护过程变得更加复杂。如何开发一套与目标系统语言无关的、可扩展的、轻量级的源代码分析、表示与编织工具,以降低软件理解与维护的复杂度,具有重要的理论意义与应用价值。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工具能够很好地对源代码的语法结构进行分析、表示,并能够方便地根据用户需求进行高品质的代码编织。本文的工作对复杂软件的理解与维护具有良好的理论和现实意义。

全文目录


摘要  8-10
ABSTRACT  10-12
第一章 绪论  12-17
  1.1 研究背景  12-13
  1.2 研究现状  13-15
  1.3 本文的贡献  15-16
  1.4 论文结构  16-17
第二章 相关技术研究  17-30
  2.1 标记文本表示方法研究  17-26
    2.1.1 研究背景  17-19
    2.1.2 研究现状  19-22
    2.1.3 应用研究  22-23
    2.1.4 srcML 技术  23-26
  2.2 XSLT 技术介绍  26-29
    2.2.1 XSLT 概述  27
    2.2.2 XSLT 基本原理  27-28
    2.2.3 XSLT 使用示例  28-29
  2.3 小结  29-30
第三章 基于 srcML 的源代码应用模型  30-37
  3.1 基于 srcML 的源代码应用模型 SCAMS  30-32
  3.2 源代码分析、表示机制  32-33
  3.3 源代码编织机制  33-35
  3.4 模型分析  35-36
    3.4.1 结构分析  35
    3.4.2 能力分析  35-36
    3.4.3 适应性分析  36
  3.5 小结  36-37
第四章 基于 srcML 的源代码分析、表示与编织工具设计  37-48
  4.1 系统设计目标  37-38
  4.2 系统体系结构  38-44
    4.2.1 源代码转换模块  39-40
    4.2.2 源代码分析、表示模块  40-41
    4.2.3 源代码编织模块  41-42
    4.2.4 存储模块  42-43
    4.2.5 模块交互关系  43-44
  4.3 系统设计的关键问题  44-46
    4.3.1 源代码分析、表示机制的设计  44-45
    4.3.2 源代码编织机制的设计  45-46
  4.4 小结  46-48
第五章 基于 srcML 的源代码分析、表示与编织工具实现  48-61
  5.1 源代码分析、表示模块的实现  48-51
    5.1.1 源代码分析功能的实现  48-49
    5.1.2 分析结果查询模块的实现  49-51
  5.2 基础模板的实现  51-53
    5.2.1 基础编织需求模板的实现  51-52
    5.2.2 XSLT 模板的实现  52-53
  5.3 源代码编织模块的实现  53-56
    5.3.1 基础编织API  53-54
    5.3.2 编织需求的表达  54-56
  5.4 实例验证  56-60
  5.5 小结  60-61
第六章 结束语  61-62
致谢  62-63
参考文献  63-67
作者在学期间取得的学术成果  67-68
作者在学期间参加的科研项目  68-69
附录A 缩略语  69

相似论文

  1. 可视化技术在操作系统教学中的应用,TP316-4
  2. 数据挖掘技术在软件知识库中的应用研究,TP311.13
  3. 基于G++前端的C++源代码分析系统的研究与设计,TP311.52
  4. 模型驱动架构在刑侦综合信息系统维护过程中的应用,TP311.52
  5. 软件维护精益模型以及数据挖掘技术的应用,TP311.52
  6. 基于局域网的高校机房软件维护技术研究与实现,TP308
  7. 基于程序关联性分析的软件测试方法研究,TP311.52
  8. 面向对象软件的特征定位技术研究,TP311.52
  9. Java程序维护中基于别名分析的错误诊断技术与工具,TP312.2
  10. FXOMS系统的软件维护性开发,TP311.52
  11. 基于度量的软件维护过程管理的研究,TP311.52
  12. 敏捷软件开发方法在软件维护中的应用研究,TP311.52
  13. 语义描述集成环境研究,TP391.7
  14. 嵌入式操作系统裁剪技术研究,TP316.2
  15. 证券软件再工程过程的研究,TP311.52
  16. 核心通信软件维护过程研究及工具实现,TN915.09
  17. 交互式通用程序理解工具的研究,TP311.52
  18. 基于Merge的金融软件再工程,TP311.52
  19. 基于认知过程的程序理解支持环境研究与实现,TP311.11
  20. 构件化软件动态更新关键技术及形式化研究,TP311.52

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com