论文部分内容阅读
重构指在不改变软件外在行为的前提下,改善软件内部结构,从而在软件演化过程中优化软件质量,提高软件可理解性、可维护性和可扩展性等。二十多年来,人们对重构技术进行了深入地研究,许多研究成果已经在软件开发中得到了广泛应用,其重要性也得到了普遍认可。尽管如此,随着程序规模和复杂性的增加,重构依然面临诸多挑战,例如针对软件架构的重构方法偏少、重构效率较低、对动态语言的支持不足等。因此,如何对大规模软件的进行高效地重构仍是值得研究的重要课题。
为进一步促进重构在软件开发中的应用,本文对大规模软件重构中的若干关键技术进行了深入研究,从一定程度上克服了现有研究的不足。本文首先针对软件物理结构的优化问题,提出了物理重构的概念和方法体系;然后针对包结构重构,提出了两种面向重构的包内聚性度量方法,并以此为基础,讨论了度量驱动的包结构重构技术;最后针对动态语言的重构正确性评估,提出了Python程序的类型约束系统以及相应的约束构建算法和约束检查算法。具体而言,论文工作的主要成果表现在以下几个方而:
·提出了物理重构的概念和方法体系,通过优化系统的物理结构,来提高大规模软件的开发和维护效率。与现有技术相比,物理重构关注于物理结构的演化,这对于大规模软件的开发、维护和重用具有重要作用。此外,还提出了一个物理重构目录,不仅为开发者提供重构时机与重构方法的指导,还有助于提高开发者交流的效率。
·提出了两种而向重构的包内聚性度量方法,通过包所在的上下文来计算包的内聚性。与传统方法相比,本方法同时考虑了包内和包间数据依赖,能有效挖掘包在语义上的内聚程度,从而更加广泛地适应于各种类型的包。
·提出了度量驱动的包结构重构框架以及相应的方法体系,能够自动化地提高包结构的质量。本方法首先通过内聚性、耦合性、稳定性以及抽象性等度量方法来识别存在设计缺陷的包结构,然后根据缺陷类型选择合适的重构方法进行重构。与手工重构相比,它不但显著地提高了重构效率,而且有效地降低了引入软件缺陷的可能。
·为表达Python对象的类型约束,提出了类型约束系统PyConcept,可以有效支持类型缺陷检查、文档自动生成等多种软件工程活动。在此基础上,给出了PyConcpet构建算法,通过分析对象使用方式,高效地生成动态语言的类型约束。进一步地,还给出了类型缺陷的检查算法,有助于提高重构过程的效率。