泛型程序重构技术研究

来源 :东南大学 | 被引量 : 0次 | 上传用户:zmy_java
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
泛型程序设计是一种重要的程序设计风范,它强调使用概念进行程序设计,追求抽象和效率的和谐统一,以易扩展、易交互的方式表达算法、数据结构及其它软件概念的抽象表示和系统组织,在业界得到了越来越广泛的关注和应用。   将非泛型风范的遗产软件重构为泛型软件,有利于提高软件的复用性、类型安全性;对泛型软件做进一步重构,支持其演化,可以改善代码结构,提高软件质量。本文对泛型程序重构模型、非泛型程序实例重构、泛化关系重构、面向概念的重构等泛型程序重构的关键问题进行了深入研究。   本文主要研究成果包括:   (1)为了解决重构正确性分析问题,提出了一个泛型程序重构模型,并分析了常见重构的目的、步骤和实施效果。在这个模型下,重构可以分为三个部分:前置条件、程序变换和后置条件。使用前置条件和后置条件来表达重构的保行为性质,可以基于这个模型分析重构前后程序行为的一致性。我们给出了若干常见的泛型程序原子重构的分析函数,用于表示软件重构的前置条件和后置条件,分析探讨了重构的语义。此外,我们对常见的泛型程序重构进行了分类总结,从重构的复杂性角度将常见重构分成三类:基本重构、面向概念的重构和设计模式的重构。   (2)针对现有泛型实例重构方法效率不高的问题,提出了一种基于泛型变量类型传播分析的重构方法。在高效的变量类型传播分析方法基础上,通过改进类型传播图的构造,实现了高效地重构。解决了在类型传播图上表示类型参数的类型传播问题,使用拷贝节点方式实现了泛型变量属性敏感的分析,精度比基于属性的传统变量类型传播分析更高。研究了Java程序泛型实例重构中的别名问题。别名可能造成类型传播分析中的隐式路径,降低分析的精度。探讨了一种基于约束合并的别名分析方法,通过消除别名,提高了重构的精度。   (3)提出了一种基于类型约束分析的泛型类重构方法,解决了现有方法不考虑参数化类型的类型约束,会在重构中引发类型错误的问题。研究了如何将面向对象软件重构中的泛化关系重构,如提炼接口、提炼父类(子类)、成员移动等,应用于泛型软件,支持泛型软件的演化。我们深入研究了泛型程序的类型约束规则,提出了一种基于类型约束的泛化关系重构方法,可以保证重构后程序的类型正确性。   (4)提出了一种基于源代码使用约束分析的面向概念的C++程序重构方法。概念是新的C++标准C++Ox中出现的语言新特性,从遗产软件中抽取概念,并将遗产软件重构为符合C++Ox标准的代码,对软件的优化、维护都具有重要意义。在深入研究概念的定义和表示基础上,探讨了如何从遗产软件中提取有效表达式和关联类型约束,作为构成概念的组成部分,从而发掘出遗产软件中的概念,并实施重构。与现有方法相比,我们的方法通用性更高,不仅适用于函数模板,也适用于类模板,此外,考虑了由于继承、函数调用、别名等因素造成的约束,以及关联类型约束,提高了约束分析的精度,结果更接近于C++Ox标准的代码。
其他文献
学位
本体作为一种能在语义和知识层次上描述信息系统的概念模型建模工具,在知识工程领域得到了广泛的应用,有效的解决了知识工程发展过程中的两大障碍:知识的重用和知识的共享。
超点是指在一个测量周期内基数超过指定阈值的源主机或目的主机,它反映网络中端到端应用的问题,是评价网络性能的一个非常重要的指标。随着互联网的发展,网络入侵事件也频繁
近年来,智能手机和平板电脑等移动智能终端发展迅猛,尤其是其在多媒体处理上的能力也得到了极大地提升,这为移动图像检索提供了一个合适的平台。所谓的移动图像检索就是由移
传统的设备虚拟方式一般都是基于驱动层次的或文件系统层次的。而在远程控制领域,人们对虚拟设备提出了更高的要求,一方面要能实现设备的远程共享,另一方面还要实现远程重装
目前在我国,随着金卡工程建设的不断深入发展,智能卡已在我国多个行业领域获得广泛应用,并取得了初步的社会效益和经济效益。在各种智能卡中,以电信业的智能卡所占比例最大。在紧
态势估计是军事智能决策过程中的一个重要环节。态势分析中一个需要解决的重要问题是目标分群。目标分群的意义在于,其结果是确定态势元素间关系的重要依据,也就是说,其结果
本文介绍的是J2EE框架下传输综合网管系统的设计与开发方式,主要目的是为瘦客户端下的网络拓扑显示、与服务器进行网管数据通讯以及告警处理等常见问题提供合理的解决方法。
说话人识别技术因其独特的方便性、经济性和准确性,在身份验证和识别领域,特别是在电子商务、犯罪识别、信息安全等领域有广阔的应用前景。现有的说话人识别技术在理想条件下
在一个航空公司的日常运营过程中,人力成本占据了支出中较为重要的一部分。在竞争激烈的航空运输市场,合理编制机组排班计划就成为航空公司实现运营成本控制的一项关键管理工作