论文部分内容阅读
在软件生命周期中,软件产品总是不断地进行演化,以更正错误、适应环境、增加新的功能或者改进效率.软件变化是软件演化过程中的重要活动,然而,针对软件系统的一个局部变化往往在整个系统范围内产生一系列难以预料的连锁效应.实验结果表明,在没有理解变化影响的前提下实施软件变化,将导致高成本、低质量的软件产品.因此,需要一种机制获取、呈现变化的影响信息,包括:被影响的实体、影响产生的时机、影响产生的原因、影响的类型、影响的程度及范围等.这种机制被称为软件变化影响分析,是成功实施软件变化的基础.目前,对面向对象软件变化影响分析的研究还比较初步:侧重于结合面向对象系统的特性研究"被影响的实体"及"影响产生的时机",而在分析"影响产生的原因"、"影响的类型"及"影响的程度和范围"方面还待进一步研究;同时,当前用于呈现影响信息的视图种类很少,还不能满足软件变化实施者理解系统和变化影响的需求.该文在现有研究基础上进行了深入探讨,旨在针对上述问题提出一个系统的面向对象软件变化影响分析方案.主要研究内容包括:提出一个明确、可操作的影响定义,区分对系统语法结构的各类显式影响和针对系统功能行为的各类隐式影响.从"以变化为中心"和"以实体为中心"两个角度提出反应影响程度和范围的度量,分别支持变化策略之间的比较和理解系统中的实体对变化的"敏感度".提出一个面向对象系统依赖模型OOSDM,提供相应的机制,获取、描述、保存类-成员-方法内三个层次的各种实体之间的依赖关系类型,为影响类型的分析提供必要依据.基于OOSDM中的依赖关系,进一步分析并用规则刻划各种类型原子变化如何对系统中其它实体产生影响及各种影响如何传播,在此基础上给出一个系统的影响分析算法,实现系统范围的多变化的影响分析.设计并实现一个面向对象软件变化影响分析工具CIAT,该工具支持上述分析活动,基于分析结果,提供多角度的视图辅助理解系统和变化影响.最后,结合实例说明CIAT在面向对象软件变化影响分析中的应用.综上所述,该文从面向对象软件变化出发,在影响定义、依赖模型、影响分析规则和算法、影响分析支持工具等方面进行系列研究,提供一种较为系统、完整的面向对象软件变化影响分析机制,为软件维护及开发提供有力的支持.