软件重构方法的研究

来源 :吉林大学 | 被引量 : 0次 | 上传用户:nj84219
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件重构是以改善程序结构为目的的保留程序行为的程序转换。软件重构的研究和应用对进化式软件开发、软件维护和软件复用有重要意义。对编程人员来说,软件重构方法是编写良好风格、利于复用和扩展的程序的指导性原则,同时,合理应用重构方法,可以减轻编码和调试的负担,提高软件生产率。软件重构方法的研究成果,在增强软件开发环境方面有广泛的应用前景。在总结、借鉴相关工作结果基础上,本文以丰富软件重构方法,利于软件维护和软件复用为目的,主要在如下方面开展对软件重构方法的研究:(1)在丰富语言机制相关的重构方法方面,针对Java语言的接口机制,提出一组基本重构方法。利用它们以及其它已有的重构方法,可以组合成复合重构方法;(2)从发展语言机制角度,分析了Java语言接口相关的横切关注的表现,提出了一种探查接口相关的横切关注方法,探查的结果可以用在AspectJ程序的重构方法中;(3)在利用程序语言新机制进行软件重构方面,针对AspectJ语言,提出一种利用Aspect机制对接口相关的横切关注进行封装的方法,并总结了Aspect自身重构的一些问题;(4)在丰富典型设计方法方面,总结了聚合关系和关联关系的典型设计和实现方法,这些典型的设计可作为软件重构的目标;(5)在丰富程序结构理解方法方面,提出了一种逆向抽取可控粒度的对象状态模型的方法。本文的主要研究结果和贡献如下:阐明了软件重构研究现状在全面总结软件重构方法十多年来的研究结果基础上,从程序结构理解、软件重构方法对程序语言新机制的支持、典型的重构目标等方面,指出了这个领域存在<WP=96>的主要问题。提出了Java语言接口机制相关的重构方法已有一些软件重构方法和自动化工具,主要建立在Opdyke针对C++语言提出的一组基本重构方法基础上,但这组基本方法中不包括对接口的支持。然而,接口是面向对象方法中的重要概念。在Java程序中,能否合理利用接口机制是影响程序结构的重要因素之一。在总结与接口相关的程序结构不良表现的基础上,遵循Java语言规范,提出了一组Java语言接口机制相关的基本重构方法,并介绍了它们可能应用的场合。由于每个基本重构方法是保留程序行为的,从而利用它们进行组合所形成的重构方法,也是保留程序行为的。并且,由于利用Java接口可以解决多数多重继承问题,这组基本重构方法也把已有的基本重构方法扩展到多继承体系中。3.提出了接口机制相关的横切关注点探查方法在总结抽象级关注在实现中的横切表现基础上,从发展语言机制的角度,重点分析了Java语言中与接口机制相关的横切关注现象。提出了一种利用接口探查Java程序中的横切关注点的方法。与已有的基于字符匹配、基于领域知识的探查方法相比,这种从分析语言机制入手的探查方法更利于自动化实现,并可以和已有方法结合使用,加强了探测结果的合理性。由于AspectJ是把Java语言作为基本语言的扩充语言,所以,利用这种方法探测出的结果,经过人工分析后,可以利用AspectJ中的Aspect机制,有选择地对它们进行重新封装,从而,可以应用于对AspectJ基本程序的重构中。4.提出了接口机制相关的横切关注点封装方法,探讨了AspectJ程序重构问题目前,多数软件重构方法针对面向对象范型的程序,对近几年出现的面向方面范型的程序,研究重构方法的工作不多见。在深入研究AspectJ中Aspect机制的基础上,提出了利用Aspect机制对接口相关的横切关注进行封装的方法,重点讨论了这种封装方法适用的场合。讨论了Aspect机制自身重构的问题。5.总结了类模型中聚合关系、关联关系的典型设计和实现方法总结了面向对象方法中,类之间的聚合关系和关联关系的典型设计方法和实现方法。针对每一种关系,讨论了不同设计和实现方法的优缺点。由于类之间的关系的实现是领域无关的,同一种关系的不同实现,不影响程序的可观察行为。所以,这些设计与实现方法,一方面可以为软件设计人员和程序员提供设计方法的参考,另一方面,也可以作为软件重构的目标。6.提出了一种逆向抽取对象状态模型的方法 <WP=97>从逆向工程角度,把对象状态定义为对象接收到各种消息后所产生的行为的分类。以此为依据,利用程序的静态分析技术,定义了一种反映程序流程的数据结构—状况树;利用程序的动态分析技术,定义了反映对象行为的数据结构—具体状况树。在通过测试用例为对象发送消息的过程中,形成反映对象不同行为的具体状况树,通过对这些具体状况树的比较,完成对象状态的逆向抽取。该方法利用程序跟踪技术记录的消息发送,作为对象状态转换条件。讨论了确定性等问题。与已有工作相比,这种方法产生的状态模型,在粒度上容易控制。总之,本文提出的语言机制相关的软件重构方法,丰富了已有研究成果。由于Java语言接口机制和AspectJ语言中的Aspect机制是先进的语言机制,所以,合理地利用它们对遗留程序进行重构,可以更好地改善程序结构,对软件维护和软件复用有一定意义。
其他文献
目的观察枣仁宁心胶囊治疗快速型心律失常(气阴两虚兼心脉瘀阻证)临床疗效。方法 64例快速型心律失常(气阴两虚兼心脉瘀阻证)患者,随机分为对照组和治疗组,各32例,对照组给予
目的探讨糖化血红蛋白与血糖在糖尿病诊断中的价值及地位。方法对204例患者(糖尿病和非糖尿病)进行糖化血红蛋白(HbAlc)、空腹血糖(FPG)的检测,并进行口服葡萄糖耐量试验(OGT
<正>事实上,拥有大量的专利对企业而言不仅可以丰满自己的羽翼,更重要的是可以屏蔽掉竞争对手,为自己争取时间。近日,两家科技巨头之间一场经过4周庭审的官司宣告判决。判决
目的系统评价痰热清注射液辅助治疗恶性肿瘤并肺部感染的有效性与安全性。方法系统检索CBM、CNKI、维普、万方、Pubmed及Embase数据库,采用Cochrane协作网RCT质量评价标准评
佛教作为宗教,它的哲学世界观是荒谬的、唯心主义的,本质上是与科学对立的。佛教能够征服为数众多的信徒,靠的不仅仅是宗教信仰,它的强大的说服力有着深刻的心理学基础。佛教
竞争环境的变化促使企业间通过合作来寻求竞争优势成为一种趋势,因此合作竞争作为一种新型的竞争关系,正越来越多地受到学术界的关注。其中关于合作竞争的主导机制和内在机理,尤
陈确是明清之际的进步思想家。他受学于刘宗周,承绪了儒家传统,却有着个性鲜明的学术思想和独特的学术风格。他对当时民间流行的迷信风水、久丧不葬等社会陋习大加批判,认为这些
葛根芩连汤源于东汉末年张仲景所著《伤寒论》,功善解表清里。现代临床研究此方具有解热、抗菌、抗病毒、抗缺氧、抗心律失常、解痉、抑制胃肠运动等药理作用,被广泛运用于临
随着知识经济时代的到来和我国改革开放的深入,铁路勘察设计院由事业单位转变成了科技型企业。这种变化在给设计院带来了发展机遇的同时也带来了多种挑战。作为知识型作业劳动
实际运作中的法律制度是一个社会、经济和文化互相作用的有机体。要成功地制定法律、透彻地理解法律、正确地适用法律,不仅要认识法律制度本身,更多的时候还需要透过法律,把握法