论文部分内容阅读
现今,随着软件规模的扩大与软件需求的频繁变动,使得软件开发变得越来越复杂,敏捷开发思想的提出,在一定程度上减轻了开发人员的负担,但当软件所依赖的数据库结构发生变更时,却没有好的成型的技术可以应用,需要开发人员去手动审查代码来查找需要对软件的源码做哪些修改以适应数据库结构的变更,这无疑是一项复杂且耗时的工程,而且由于工作量的庞杂,极易出现错误或遗漏的情况。鉴于这方面研究的还很不充裕,本文在调研了大量国内外文献的基础上,提出了一种当数据库结构发生变更时分析其对软件造成的影响的解决方案。本方案首先抽取软件所依赖的数据库信息,包括表的信息、字段的信息、字段的约束条件以及字段间的依赖关系,然后通过遍历应用程序软件的源代码,抽取出软件系统中的类信息和每个类中涉及到数据库操作的代码信息,包括SQL语句的定义、执行、执行结果应用三方面的信息,接下来根据数据库结构变更的SQL脚本,计算出本次变更对应用程序造成的影响,最后,通过一个真实的应用实例,模拟数据库结构变更的场景,验证该系统对数据库结构变更对程序影响的分析是否准确。其中,在抽取程序中数据库操作相关的语句信息时,考虑到由于设计模式或分布式设计使得SQL语句动态构成的情况,本系统应用程序切片的原理,通过数据流图与基于系统依赖图的算法,来解决这一难题。本文将程序切片的概念应用于程序波动分析领域,实现了当数据库结构变更时计算其对程序的影响这一功能,首先简要介绍了当前这一领域的研究现状,并在此基础上提出本系统的需求,定义自己的软件切片准则,设计算法从应用程序挖掘出需要关注的信息,从而计算出本次演化对程序的波动。最后,通过一个实际应用的场景测试该系统的可行性与易用性。