大规模软件重构及其度量技术研究

来源 :东南大学 | 被引量 : 0次 | 上传用户:wy299
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
重构指在不改变软件外在行为的前提下,改善软件内部结构,从而在软件演化过程中优化软件质量,提高软件可理解性、可维护性和可扩展性等。二十多年来,人们对重构技术进行了深入地研究,许多研究成果已经在软件开发中得到了广泛应用,其重要性也得到了普遍认可。尽管如此,随着程序规模和复杂性的增加,重构依然面临诸多挑战,例如针对软件架构的重构方法偏少、重构效率较低、对动态语言的支持不足等。因此,如何对大规模软件的进行高效地重构仍是值得研究的重要课题。   为进一步促进重构在软件开发中的应用,本文对大规模软件重构中的若干关键技术进行了深入研究,从一定程度上克服了现有研究的不足。本文首先针对软件物理结构的优化问题,提出了物理重构的概念和方法体系;然后针对包结构重构,提出了两种面向重构的包内聚性度量方法,并以此为基础,讨论了度量驱动的包结构重构技术;最后针对动态语言的重构正确性评估,提出了Python程序的类型约束系统以及相应的约束构建算法和约束检查算法。具体而言,论文工作的主要成果表现在以下几个方而:   ·提出了物理重构的概念和方法体系,通过优化系统的物理结构,来提高大规模软件的开发和维护效率。与现有技术相比,物理重构关注于物理结构的演化,这对于大规模软件的开发、维护和重用具有重要作用。此外,还提出了一个物理重构目录,不仅为开发者提供重构时机与重构方法的指导,还有助于提高开发者交流的效率。   ·提出了两种而向重构的包内聚性度量方法,通过包所在的上下文来计算包的内聚性。与传统方法相比,本方法同时考虑了包内和包间数据依赖,能有效挖掘包在语义上的内聚程度,从而更加广泛地适应于各种类型的包。   ·提出了度量驱动的包结构重构框架以及相应的方法体系,能够自动化地提高包结构的质量。本方法首先通过内聚性、耦合性、稳定性以及抽象性等度量方法来识别存在设计缺陷的包结构,然后根据缺陷类型选择合适的重构方法进行重构。与手工重构相比,它不但显著地提高了重构效率,而且有效地降低了引入软件缺陷的可能。   ·为表达Python对象的类型约束,提出了类型约束系统PyConcept,可以有效支持类型缺陷检查、文档自动生成等多种软件工程活动。在此基础上,给出了PyConcpet构建算法,通过分析对象使用方式,高效地生成动态语言的类型约束。进一步地,还给出了类型缺陷的检查算法,有助于提高重构过程的效率。
其他文献
随着企业信息化不断深入,企业资源安全成为最为急需解决的问题之一。访问控制对系统资源的安全性至关重要。访问控制的目标是防止用户对系统资源进行非授权的访问。分析研究
随着信息技术的迅猛发展,用户需求的不断升级,基于Internet技术的应用以惊人的速度渗透到社会生活的方方面面,Web站点俨然已成为一个巨大的信息集散地。如何快速、高效、准确
网络是人们获取知识和传递信息的桥梁。然而,随着近年来internet的高速发展,网络上信息的数量也呈现指数级的增长,在这一背景下,互联网使用者往往无法轻松找到需要的信息,一
随着人类社会和计算机技术的发展,信息化已成为社会发展的趋势。信息技术的发展也促成了高校的信息化,随着高校教育的普及,高校中的应用系统不断增加,数字化校园已成为各高校的发
随着世界信息技术的发展,信息化水平成为了国家之间综合实力的主要体现。谁能将信息根据需要实时、可靠的分发给用户谁就拥有信息优势,从而处于主导地位。这也是目前信息分发
随着互联网的不断建设和发展,互联网用户对网络应用多样化和网络服务性能的需求越来越高,特别是网络物理传输线速的进一步提升都极大地增加了高速主干网络测量和管理的难度。通
近年来,随着数值预报技术的发展和气象卫星探测能力的不断提高,人们越来越多地将卫星资料应用于数值预报中,并取得了明显的进展。然而,卫星资料的使用,云判断和云型分类是首要解决
多标签分类问题中每个数据样本往往对应一个由多个相关标签构成的标签子集合,而这个标签子集则反映了该样本所具有的多种语义意义。考虑到传统分类问题中每个样本有且仅有唯
网络的飞速发展,为我们提供了丰富的资源、信息,给我们的生活带来了方便,也为无数的学习者提供了快捷、方便的学习方式,使学习可以不受时间和空间的限制。与此同时,随着教育
由于Web镜像和网络转载抄袭,完全重复以及近似重复的网页数据对于当前的搜索引擎产生了一系列的问题:它不仅增加了网页数据索引的存储量而且给搜索引擎的检索服务带来了沉重