基于模型比较的软件演化分析及同步演化方法

来源 :复旦大学 | 被引量 : 0次 | 上传用户:ychhome
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件版本演化在软件系统的整个生命周期占有重要地位,帮助软件开发维护人员全面理解和把握整个软件产品的演化过程,辅助进行软件维护决策及维护活动实施,对于大规模、复杂软件系统具有重要意义。特别是对于一些文档缺失、维护过程管理不规范的软件产品,维护人员所面临的工作量繁杂,信息量往往很大,无条理且难于把握。那么,软件演化分析与信息抽取归纳就显得更为重要了。另外,软件维护过程中也存在着不一致演化问题。大部分软件包括服务提供方都会由于功能更新、错误修复等在不断的演化过程中,而服务使用方在自身的演化过程中也需要适应服务提供方的演化更新。使用方需要花费很大的代价进行同步演化,因此理解软件演化以及不一致演化等问题,可以为大规模、复杂软件维护及同步演化提供支持。针对软件演化分析问题,本文首先对不同版本的软件系统代码抽取抽象语法树信息,建立实现模型,使用语法语义相结合的方式对静态实现模型映射并比较差异得到变更信息。已有的实现模型比较方法往往忽略了代码内部的控制流代码块等信息,而本文对这些信息做了抽取,并在进行演化分析和归纳时体现出了控制流代码块变更信息的优势。然后基于对同一软件不同版本的静态模型恢复与比较所得到的变更信息,使用抽象聚合分析的方法对版本演化时发生的变更作进一步分析与归纳,得到抽象的规则和聚合的关联关系,减少展示给开发人员的信息量,提供可以在宏观上帮助软件开发维护人员理解软件演化的信息。其次,现有的同步演化工作通常将应用程序演化与数据库演化分开,本文提出一个处理应用程序与数据库同步演化的方法,基于模型恢复与比较的信息,使用一个在应用程序与数据库之间的适配层来处理可能出现失配的一些情况,减少开发人员在应用程序与数据库同步演化过程中的重复劳动,提供自动适配。由于方法框架内各模块之间松耦合,采用数据流交互,未来可以通过对各模块的功能上进行优化和扩展,使该方法的功能更加完善。最后,为了验证本文方法的有效性和实际意义,分别做了演化分析实验和同步演化实验,最终的实验结果表明本文的演化分析方法的确可以通过对大量变更信息的抽象归纳,形成抽象更有意义的规则信息,提供给相关人员额外的关联信息帮助人理解版本演化,另外同步演化实验表明本文提出的同步演化方法在适用性和效率上都可以很好的满足用户的需求,具有实际意义。
其他文献
  工业无线监控管理系统用途广泛,然而目前市场上没有成熟的构件式软件产品适用于该类系统,所以无线监控系统软件开发过程中存在大量的重复劳动,开发周期长、开发效率低。  
群密钥协商协议允许一组用户在不安全的公共信道上生成共享的会话密钥,在密码学中一直是一个非常重要的研究方向。而在动态群密钥协商协议中,群组中的成员是动态变化的,并且
C++程序中常见的安全漏洞及其静态检测方法的研究是该论文研究的课题,它是C/C++程序安全模式研究的一部分.该文致力于完成C++程序中常见的安全漏洞的查找和分析,以及对这些安
数据仓库是面向数据分析型处理的数据环境,对于异构数据的重新组织和大规模数据的综合分析等问题具有高质高效的处理能力。利用数据仓库来解决以TMN(电信管理网)为代表的综合
近年来,人们对传统Petri网在人工智能中的应用已经进行了大量的研究。但是,随着应用的深入,人们发现传统Petri网有一个缺点,就是不能描述不精确知识。然而,现实世界中大量复
近年来,一些公司或个人为了个人或商业利益,在未经收件人同意的情况下,利用电子邮件发送大量商业广告及各种不良信息,形成影响极坏、后果严重的垃圾邮件。本文主要是针对现今
  随着多媒体技术和计算机网络的飞速发展,全世界数字图像的容量正以惊人的速度增长。这些数字图像包含了大量有用的信息,要利用这些信息就要求有一种能够快速而且准确地查找
计算机网络技术的迅猛发展和多媒体教学的广泛应用,使高校的教学方式和教学手段急需变革,其原因如下:1、由于多媒体教学的应用加大了课堂信息量改善了教学效果但同时也使学生难
源代码的复杂度度量和质量控制是软件质量保证体系中的一个重要环节,它面向源代码进行工作,贯穿于软件开发、代码评审、单元测试、集成测试、系统测试、以及软件维护阶段。
中医学以其几千年的深厚积累,在疾病的预防、诊断及治疗上具备了完善的理论体系和丰富的实践经验。中医的望诊能够最直接的了解疾病或健康的状态,在诊断过程中,面色与舌象对内脏