论文部分内容阅读
随着计算机技术的不断发展,作为计算机技术重要方面的软件应用越来越深入的影响社会的发展和人们的生活。在社会生产生活的各个领域,软件应用几乎无处不在。相应的,研究软件生产和开发的软件工程学科也成为学术研究的焦点。由于软件应用在航空、航天、金融、通信等关键领域所起的作用日益重要,软件应用的质量也得到了越来越多的重视,而软件质量保障技术也取得了长足的进展。软件重构是软件质量保障技术的重要进展之一,而且在实际的软件产业中得到了广泛的应用。现有的知名软件开发环境,例如Eclipse和Visual Studio中都整合了软件重构支持工具。软件重构可以通过调整软件的结构,有效地提高软件的可理解性、可维护性、从而降低发生编码错误的风险。随着软件规模的扩大和维护周期的变长,开发人员需要不断进行大量的重构。一些自动化重构点检测工具的出现,也为开发人员提供了大量可选择的重构。如何对这些重构进行调度,得到一个最有效地重构序列,是开发人员经常面对的难题。本文基于Petri网理论提出了一种自动化的软件重构调度方法。其基本设计思路为将Petri网处理异步并发系统的优势应用与处理多次重构操作之间的冲突依赖。建立Petri网元素与重构元素之间的映射关系,最终利用Petri网的情态可达算法求解所有可达情态,并对每组情态计算软件质量,寻找质量最优的软件及其对应的重构序列。该方法根据开发人员或者其他工具给出的重构操作集合,通过分析重构之间的依赖和冲突关系,自动地生成一个具有最优度量值增加量的重构序列。其中度量值可以由开发人员根据他们所关注的质量特性指定,度量值增加量也就体现了软件中开发人员所关注的质量特性的提升。这一方法主要包括以下几个部分:1.提取软件项目类图:从软件项目中提取软件项目的类图模型,将这一模型作为软件项目的抽象表示,方便提取Petri网模型和计算软件项目的度量值。2.提取描述重构关系的Petri网模型:根据重构操作集合中每个重构的前置和后置条件,将条件转化为库所,重构转化为变迁,生成一个Petri网模型,并根据类图判断每个条件是否成立,对模型进行初始化。3.基于Petri网模型的最优重构调度:根据Petri网模型,使用情态可达算法求出所有可达的情态,并根据情态对应的类图求出情态对应的软件度量值,最后依此求出最优的情态,并输出达到该情态的重构序列。