支持源代码回溯定位的字符串分析及其应用研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:wtbcgs
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机软件的不断发展,尤其是数据库软件和Web用字符串在软件程序中扮演的角色日益重要。与此同时,针对字符串的程序分析-字符串分析,也取得了长足的发展,并在软件验证等领域中得到了成功的应用。  软件演化和维护是软件生命周期的重要组成部分,其涉及的主要任务是源代码修改。由于软件源代码中通常包含很多字符串,涉及字符串的源代码修改任务也很常见。为了支持源代码修改任务,需要从取值需要修改的变量开始,根据数据赋值关系,回溯定位到这个变量的数据来源。一些现有的支持源代码修改任务的程序分析,如程序切片等,虽然具有回溯定位能力,但是不支持处理字符串变量和字符串操作。而现有的字符串分析虽然能够处理字符串变量和字符串操作,但缺乏回溯定位能力,因此无法对源代码修改任务提供有效的支持。  综上所述,为了支持实际软件演化和维护过程中常见的涉及字符串的源代码修改任务,需要支持源代码回溯定位的字符串分析。  为此,本文提出了一种支持源代码回溯定位的字符串分析,能够定位给定字符串变量在源代码中的全部数据来源,并能够根据开发人员提供的约束和程序输入,进一步根据需求精确定位待修改的数据来源,本文的具体工作包括:  1.提出了一种静态字符串源分析技术。这一技术主要对现有的字符串标记分析中的标记类型进行了扩展,通过引入字符串位置标记,定位给定字符串变量的所有数据来源。  2.提出了一种序约束的描述与求解技术。在使用静态字符串源分析技术获得给定字符串变量的所有数据来源之后,为了精确定位待修改数据来源,应当允许开发人员可以对数据来源进行约束。本文提出了序约束的概念,对于取值具有一定结构的字符串变量(如表示SQL语句的变量),序约束可以描述出现在变量取值的特定结构(如表名位置)中的数据来源。本文还提出用于求解序约束的序标记传播技术。  3.提出了一种动态字符串源分析技术。在给定程序输入下,这一技术可以定位给定字符串变量运行时取值的任意子串的数据来源。当开发人员需要运行待修改软件时(例如软件排错时),这一技术可以精确地定位给定字符串变量的运行时错误取值中错误部分的数据来源,从而能够精确地定位待修改数据来源。这一技术主要通过定义信息更丰富的字符串位置标记和分析运行时信息提高数据来源定位的精确性。  4.将支持源代码回溯定位的字符串分析应用于新的源代码修改任务。本文研究两类新的源代码修改任务:软件国际化中的待翻译字符串定位和Web应用软件界面修改,基于支持源代码回溯定位的字符串分析设计了这两类任务的自动化解决方案,实现了相应的工具,并在实际开源上软件上验证了本文所提出的方案的有效性。
其他文献
在现实世界中,存在一类应用场景,需要对监测到的事件作出实时的响应,也即当事件发生后,需要在一定截止期内执行合适的动作以完成某些任务或避免某些危险。错过截止期将造成灾
计算机安全问题的根本原因在于现有PC本身的不安全性。当初设计PC时就没有考虑安全性,缺乏很好的硬件防御措施,使得现有的安全方案很多都是纯软件的,缺乏硬件上的支持,从而十
随着计算机与互联网的发展,信息化已成为了各行各业发展的趋势。对于现代企业的经营者和管理者来说,信息化管理从某种程度上提升企业的竞争力和效益。信息技术的进步使得信息
视频跟踪是计算机视觉和模式识别研究领域的一个热.究主要注重于单摄像机的目标跟踪。多摄像机的目标跟踪在智能视频监控、人机交互、交通监控、视频检索等等方面都有广阔的
网络虚拟化技术作为解决当前Internet日益僵化问题的一种新兴技术手段,近年来得到了国内外未来网络技术研究领域的广泛关注。网络虚拟化技术是指通过虚拟化技术将物理网络抽象
该论文分析了多媒体网络教学与管理系统以及Linux操作系统的特点和现状,并对Linux下的软件开发环境进行研究分析,对采用Linux下的一种数据库管理系统MySQL、Linux下的网络编
随着云计算技术的进一步发展,云计算技术的应用越来越普及,很多企业和组织考虑将其现已拥有的IT基础设施转移到云计算环境中,以求降低IT基础设施建设的投入和维护管理的成本。为
随着互联网技术的发展和普及,潜藏在使用率最高的互联网应用-搜索引擎背后的无限商机正吸引着无数的电商和企业业主,搜索引擎营销应用而生。竞价排名是通过向搜索引擎购买关键
随着国家信息化水平的不断提高,特别是互联网技术的飞速发展,数据库系统的应用越来越广泛。然而数据库系统的数据集中存储与广泛共享的特性,使得数据库系统的安全性问题变得
移动通信技术的不断发展和智能手机的日益普及,开发面向手机的各种增值业务成为当今关注的热点。从我国电信业务发展现状分析,语音业务作为最重要的基础电信业务一直是人们实