节点文献

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

【作者】 宋扬

【导师】 赵文耘;

【作者基本信息】 复旦大学 , 计算机软件与理论, 2013, 硕士

【摘要】 软件版本演化在软件系统的整个生命周期占有重要地位,帮助软件开发维护人员全面理解和把握整个软件产品的演化过程,辅助进行软件维护决策及维护活动实施,对于大规模、复杂软件系统具有重要意义。特别是对于一些文档缺失、维护过程管理不规范的软件产品,维护人员所面临的工作量繁杂,信息量往往很大,无条理且难于把握。那么,软件演化分析与信息抽取归纳就显得更为重要了。另外,软件维护过程中也存在着不一致演化问题。大部分软件包括服务提供方都会由于功能更新、错误修复等在不断的演化过程中,而服务使用方在自身的演化过程中也需要适应服务提供方的演化更新。使用方需要花费很大的代价进行同步演化,因此理解软件演化以及不一致演化等问题,可以为大规模、复杂软件维护及同步演化提供支持。针对软件演化分析问题,本文首先对不同版本的软件系统代码抽取抽象语法树信息,建立实现模型,使用语法语义相结合的方式对静态实现模型映射并比较差异得到变更信息。已有的实现模型比较方法往往忽略了代码内部的控制流代码块等信息,而本文对这些信息做了抽取,并在进行演化分析和归纳时体现出了控制流代码块变更信息的优势。然后基于对同一软件不同版本的静态模型恢复与比较所得到的变更信息,使用抽象聚合分析的方法对版本演化时发生的变更作进一步分析与归纳,得到抽象的规则和聚合的关联关系,减少展示给开发人员的信息量,提供可以在宏观上帮助软件开发维护人员理解软件演化的信息。其次,现有的同步演化工作通常将应用程序演化与数据库演化分开,本文提出一个处理应用程序与数据库同步演化的方法,基于模型恢复与比较的信息,使用一个在应用程序与数据库之间的适配层来处理可能出现失配的一些情况,减少开发人员在应用程序与数据库同步演化过程中的重复劳动,提供自动适配。由于方法框架内各模块之间松耦合,采用数据流交互,未来可以通过对各模块的功能上进行优化和扩展,使该方法的功能更加完善。最后,为了验证本文方法的有效性和实际意义,分别做了演化分析实验和同步演化实验,最终的实验结果表明本文的演化分析方法的确可以通过对大量变更信息的抽象归纳,形成抽象更有意义的规则信息,提供给相关人员额外的关联信息帮助人理解版本演化,另外同步演化实验表明本文提出的同步演化方法在适用性和效率上都可以很好的满足用户的需求,具有实际意义。

【Abstract】 Software evolution plays a significant role during the whole life cycle of software system development. It is of great significance for understanding the large-scale, complex software systems that helping to fully understand and grasp the evolution of the entire software product, and make software maintenance decisions and carry out the maintenance activities is. Especially for some software products without docu-ments due to non-standard maintenance process, maintenance personnel are facing complex workload. The amount of evolution information is often too large, unregu-lated and difficult to grasp. Then it is even more important for software evolution analysis and information summary. In addition, there are also inconsistent evolution problems during the software maintenance process. Most software including service providers is evolving due to updating features or fixing bugs. And the service user al-so need to adapt to the service provider’evolution updates during their own evolution and spend high cost on co-evolution. As a result, it is important to understand the software evolution and co-evolution for supporting maintenance and co-evolution of large-scale, complex software systems.For the problem of software evolution analysis, this paper first extracts abstract syntax tree information of different versions of software system codes to build model and combines both syntax and semantic information to mapping the model of differ-ent version and compares them to fetch change information of the two versions. The existing work for code model comparison often ignores the code block and control flow information. My work extracts there information for deep analyzing to provide more useful change information for evolution analysis. Based on the change infor-mation from model comparison of different versions of the same software, I adopt ab-straction algorithm and relation analysis for further analysis and summarize the changes that occur during software evolution. The work can help software develop-ment and maintenance personnel to understand the software evolution at the macro level more easily and reduce the amount of change information provided to them.Then, for the co-evolution problem, the paper presents an approach to automati-cally adapting software applications to the evolution of their underlying databases based on the model comparison and aspect-oriented dynamic patching. This approach can reduce the duplicated work of the developers in the application during the soft-ware and database co-evolution.Finally, in order to verify the effectiveness of the method and practical signifi-cance, the paper presents two experiments including evolution analysis and the co-evolution method. The experiment results show that the evolution analysis can ex-tract and summary more useful change rules in a large number of change information and provide additional related information to stakeholders, and the co-evolution method makes excellent effect with both applicability and efficiency to meet the needs of users.

  • 【网络出版投稿人】 复旦大学
  • 【网络出版年期】2015年 03期
节点文献中: 

本文链接的文献网络图示:

本文的引文网络