收藏本站
《吉林大学》 2004年
收藏 | 手机打开
二维码
手机客户端打开本文

软件重构方法的研究

张家晨  
【摘要】:软件重构是以改善程序结构为目的的保留程序行为的程序转换。软件重构的研究和应用对进化式软件开发、软件维护和软件复用有重要意义。对编程人员来说,软件重构方法是编写良好风格、利于复用和扩展的程序的指导性原则,同时,合理应用重构方法,可以减轻编码和调试的负担,提高软件生产率。软件重构方法的研究成果,在增强软件开发环境方面有广泛的应用前景。 在总结、借鉴相关工作结果基础上,本文以丰富软件重构方法,利于软件维护和软件复用为目的,主要在如下方面开展对软件重构方法的研究:(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机制是先进的语言机制,所以,合理地利用它们对遗留程序进行重构,可以更好地改善程序结构,对软件维护和软件复用有一定意义。
【学位授予单位】:吉林大学
【学位级别】:博士
【学位授予年份】:2004
【分类号】:TP311.52

【引证文献】
中国期刊全文数据库 前1条
1 陈昌贻;汪永超;李英林;刘勇;;插件技术在信息化系统重构中的应用方法研究[J];计算机工程与设计;2009年23期
中国博士学位论文全文数据库 前1条
1 任胜兵;基于图变换的可视化层次用例建模及演化方法研究[D];中南大学;2007年
中国硕士学位论文全文数据库 前10条
1 隋莉莉;基于.NET航标业务系统架构优化设计[D];大连海事大学;2011年
2 倪磊;Symbian编程的重构与进化技术的研究及应用[D];南京理工大学;2011年
3 王照;雅安职业技术学院学籍管理系统的设计与实现[D];电子科技大学;2011年
4 张祎;雅安职业技术学院在线考试系统的设计与实现[D];电子科技大学;2011年
5 杨光宇;标识符分析方面挖掘方法研究[D];哈尔滨工程大学;2007年
6 齐正霞;嵌入式电子海图系统软件重构方法研究[D];哈尔滨工程大学;2007年
7 徐丽丽;基于Ajax和SOA的Web应用架构的研究与应用[D];山东师范大学;2008年
8 吴学磊;业务逻辑重构方法的应用研究[D];大连海事大学;2010年
9 吕望;重构技术及其在研究生学位管理系统中的应用研究[D];西安理工大学;2009年
10 张凯;一种面向SaaS的软件重构方法的研究[D];吉林大学;2012年
【参考文献】
中国期刊全文数据库 前1条
1 周欣,孙家骕,杨芙清;青鸟C++程序理解工具[J];计算机工程;2000年11期
【共引文献】
中国期刊全文数据库 前10条
1 刘建宾;李建忠;;一种重复代码检测技术的改进研究[J];北京信息科技大学学报(自然科学版);2009年03期
2 任浩;史庆庆;张丽萍;刘东升;;克隆代码检测方法综述[J];电脑编程技巧与维护;2011年20期
3 张爱文;王泉泉;;编程题自动评分模型的研究与实现[J];黑龙江科技信息;2007年09期
4 李建忠;刘建宾;;重复代码自动检测工具的研究与设计[J];韩山师范学院学报(自然科学);2006年06期
5 林道淼;古辉;;面向对象程序的理解与可视化表示算法[J];计算机工程;2012年06期
6 李卓;邓明荣;;相似代码检测工具及其案例分析[J];计算机工程与科学;2010年04期
7 崔建峰;李小庆;;一种基于SOA的单机遗留系统再工程过程模型[J];青岛农业大学学报(自然科学版);2012年03期
8 罗景,赵伟,秦涛,姜人宽,张路,孙家骕;基于有向带权图迭代的面向对象系统分解方法[J];软件学报;2004年09期
9 赖松凤;古辉;叶会华;;基于轻量级分析的程序静态分析器[J];浙江工业大学学报;2007年06期
10 古辉;叶会华;赖松凤;;一种基于B+树的程序信息库设计[J];浙江工业大学学报;2008年01期
中国博士学位论文全文数据库 前1条
1 王甜甜;结构语义相似的程序识别方法研究[D];哈尔滨工业大学;2009年
中国硕士学位论文全文数据库 前10条
1 黎超;基于切片的二进制代码可视化分析的研究[D];广东工业大学;2011年
2 刘思聪;方面挖掘算法及其在程序理解中的应用研究[D];浙江工业大学;2010年
3 姚灵灵;程序理解中支持多语言理解与信息提取技术的研究[D];浙江工业大学;2012年
4 游联启;程序理解中的信息抽取和声明语句解释的研究[D];浙江工业大学;2012年
5 林道淼;程序理解中信息提取与可视化表示的研究[D];浙江工业大学;2012年
6 章冬梅;经典设计模式在商业领域ERP软件中的研究与实践[D];北京工业大学;2002年
7 李小英;基于Java的逆向变换方法及工具的研究[D];汕头大学;2002年
8 唐晓君;软件再工程理论应用与研究[D];大连理工大学;2002年
9 刘恒;程序中重复代码的自动检测[D];大连理工大学;2003年
10 李杰;MIS软件中的复用类库研究[D];合肥工业大学;2004年
【同被引文献】
中国期刊全文数据库 前10条
1 张连堂,王胜洲;从面向过程程序设计到面向对象技术[J];安阳师范学院学报;2005年02期
2 魏晋伟,裘宗燕;一种基于群签名算法的门禁系统模型[J];北京大学学报(自然科学版);2003年05期
3 许红霞;张莉;;一种面向最终用户的图形建模语言规范[J];北京航空航天大学学报;2006年06期
4 张莉;姜可;高晖;;可视化建模语言编辑器的自动生成和配置技术[J];北京航空航天大学学报;2006年12期
5 王晓峰,吴平东,任长清,黄杰,马树元,陈之龙;基于TCP/IP的远程控制系统中动态补偿器的仿真研究[J];北京理工大学学报;2002年06期
6 金勇,张世刚,顾列刚,杜国兵;FORWARD测井解释平台中使用的先进技术[J];测井技术;2000年01期
7 杨景强,杨青山,闫伟林,刘传平;基于FORWARD平台的水淹层精细解释系统的开发与应用[J];测井技术;2003年05期
8 高楚桥,张超谟,肖承文,宋帆;L油田含水率计算及水淹等级划分[J];测井技术;2004年01期
9 余春昊,李长文;LEAD测井综合应用平台开发与应用[J];测井技术;2005年05期
10 陆大卫;;创新驱动跨越发展:中国测井技术发展对策研究[J];测井技术;2011年02期
中国重要会议论文全文数据库 前1条
1 王斌;潘建国;谭开俊;刘振华;王彦君;;交会图技术在准噶尔盆地西北缘火山岩岩性识别中的应用[A];中国地球物理学会第二十四届年会论文集[C];2008年
中国博士学位论文全文数据库 前7条
1 徐竟天;基于ARM9嵌入式和工业以太网的矿井瓦斯监控系统研究[D];西安科技大学;2011年
2 王广昌;软件产品线关键方法与技术研究[D];浙江大学;2001年
3 詹剑锋;因特网环境下的软件演化与动态性研究[D];中国科学院研究生院(软件研究所);2002年
4 李绪蓉;面向业务构件的可重构信息系统的模型研究[D];南京航空航天大学;2002年
5 张志猛;面向理解的OORE关键技术研究[D];浙江大学;2004年
6 史玉良;Web服务合成的若干关键技术研究[D];复旦大学;2006年
7 郑桦;机械臂系统的网络远程控制研究与实现[D];中国科学技术大学;2007年
中国硕士学位论文全文数据库 前10条
1 郑旭旭;面向SaaS应用的租户多级定制模型研究[D];山东大学;2011年
2 薛换强;业务流程的产生式规则表达技术的研究[D];昆明理工大学;2011年
3 卫索琪;基于MVC模式的一种Web应用框架[D];北京工业大学;2003年
4 沈莹;基于UML的面向对象建模技术研究与应用[D];上海师范大学;2003年
5 杨旭如;模式和重构在面向对象软件框架中的应用[D];浙江大学;2004年
6 丁颖;重构及其在自动电压控制系统中的应用研究[D];河海大学;2004年
7 李勇;软件演化技术研究与应用[D];大连理工大学;2004年
8 尹军;基于设计模式的重构方法及工具[D];吉林大学;2004年
9 王阳;横切关注点的逆向探测与封装[D];吉林大学;2004年
10 余琴;基于设计模式的企业级应用框架研究[D];华中科技大学;2004年
【二级引证文献】
中国期刊全文数据库 前1条
1 孙为军;李师贤;严玉清;;模型驱动环境下模型演化的形式化研究[J];计算机科学;2012年06期
中国博士学位论文全文数据库 前1条
1 段继男;基于需求驱动的企业应用程序演化方法研究[D];北京化工大学;2013年
中国硕士学位论文全文数据库 前10条
1 王晓鹏;基于插件技术的融合通信客户端的重构[D];北京邮电大学;2011年
2 杨杰;软件再工程研究及应用[D];安徽大学;2011年
3 林鹃;基于图变换的用例驱动角色访问控制建模及分析[D];中南大学;2008年
4 蒋平;基于形式概念分析的用例挖掘方法研究[D];中南大学;2008年
5 余莹;基于逻辑的软件演化执行引擎研究[D];中南大学;2008年
6 张庆营;面向软件演化再造的Java源代码管理和阅读分析器[D];暨南大学;2010年
7 刘剑锋;基于插件的城市道路空气质量评价平台的研究[D];北京林业大学;2010年
8 万里飞;空间要素渲染的插件化研究与实现[D];中国地质大学(北京);2012年
9 管旭;面向监测系统的浏览器核心插件设计与实现[D];中国海洋大学;2012年
10 王品;基于AJAX技术的饮料企业B/S ERP系统的实现[D];中国海洋大学;2011年
【二级参考文献】
中国期刊全文数据库 前1条
1 袁望洪;陈向葵;谢涛;郭耀;;逆向工程研究与发展[J];计算机科学;1999年05期
【相似文献】
中国期刊全文数据库 前10条
1 周云;汪学刚;;机载PD雷达杂波功率谱快速重构方法[J];电子科技大学学报;2011年02期
2 李伯林;;存储器受限系统的重构技术研究[J];农业网络信息;2007年06期
3 徐路宁,张和明,张永康;基于设计结构矩阵的多领域协同设计[J];中国机械工程;2005年12期
4 王晓毅;;敏捷开发中重构的秘密[J];软件世界;2007年21期
5 艾剑良;王鹏;高明;;飞行控制系统的重构技术研究[J];火力与指挥控制;2006年01期
6 刘昱;魏峻;;基于内容的Pub/Sub系统中分发器网络自重构的研究[J];计算机应用研究;2006年02期
7 王世凯;焦培南;柳文;;改进的Kriging技术实时重构区域电离层foF2的分布[J];电波科学学报;2006年02期
8 赵瑾;申忠宇;顾幸生;;一类不匹配不确定动态系统的鲁棒执行器故障检测与重构[J];化工学报;2008年07期
9 张青;唐守正;;基于三视图几何的树木点位图重构[J];北京林业大学学报;2008年S1期
10 李亚军;徐宝文;周晓宇;;基于AST的克隆序列与克隆类识别[J];东南大学学报(自然科学版);2008年02期
中国重要会议论文全文数据库 前10条
1 童丽娟;;软件维护方法综述[A];河南省冶金行业低碳冶金与节能减排学术研讨会论文集[C];2011年
2 笪良龙;李韦华;徐景峰;;随机动态声速重构方法研究[A];2011'中国西部声学学术交流会论文集[C];2011年
3 张玲玉;罗怀林;贺元成;;基于B样条的自由曲面模型重构方法的转换[A];面向制造业的自动化与信息化技术创新设计的基础技术——2001年中国机械工程学会年会暨第九届全国特种加工学术年会论文集[C];2001年
4 王世凯;焦培南;;一种实时区域电离层foF2重构方法[A];第十一届全国日地空间物理学术讨论会论文摘要集[C];2005年
5 何长江;;基于MOF的欧拉方法界面重构技术[A];中国工程物理研究院科技年报(2009年版)[C];2010年
6 许增朴;于德敏;王永强;周聪玲;;三维物体表面轮廓测量与重构方法的分析与仿真[A];立体图象技术及其应用研讨会论文集[C];2005年
7 陈燕;杜玄;彭澄廉;;嵌入式系统面向方面编程(AOP)技术的应用[A];全国第13届计算机辅助设计与图形学(CAD/CG)学术会议论文集[C];2004年
8 曹力立;;AOP在JBOSS平台上的开发应用[A];’2004计算机应用技术交流会议论文集[C];2004年
9 项艳;柏又青;冯有前;朱丰;张群;;压缩感知在ISAR数据传输中的应用[A];第八届全国信号与信息处理联合学术会议论文集[C];2009年
10 詹国强;夏立;;舰船装备控制软件维护几个问题的探讨[A];舰船电子装备维修理论与应用——中国造船工程学会电子修理学组第四届年会暨信息装备保障研讨会论文集[C];2005年
中国重要报纸全文数据库 前10条
1 郑慧姿;硬件建设上档次 软件维护上水平[N];中国档案报;2004年
2 福建省南平市医保中心 许椿榕;应用CMM改进软件维护过程[N];计算机世界;2005年
3 张艳蕊;SaaS能在中国复活吗?[N];中国企业报;2007年
4 罗彬;Step by Step学会网吧维护[N];电脑报;2006年
5 邵海宏;安装新变化[N];中国计算机报;2008年
6 合肥燃气集团有限公司 季宏永;会计电算化下的企业内部控制初探[N];安徽经济报;2008年
7 ;海尔[N];中国计算机报;2006年
8 博文;2008年商业软件6大趋势[N];计算机世界;2008年
9 王以晨;2008年商业软件6大趋势[N];网络世界;2008年
10 王文稚;延长软件生命周期方法的探索[N];中国保险报;2008年
中国博士学位论文全文数据库 前10条
1 张家晨;软件重构方法的研究[D];吉林大学;2004年
2 王帆;软件维护中的成本估算和质量保证技术研究[D];浙江大学;2011年
3 张挺;基于多点地质统计的多孔介质重构方法及实现[D];中国科学技术大学;2009年
4 陈建忠;浅水方程高分辨率有限差分方法研究[D];西北工业大学;2005年
5 董云卫;工作流管理系统的事务建模研究[D];西北大学;2004年
6 张敏;面向方面的软件开发方法与实现技术研究[D];中国科学技术大学;2007年
7 张涛;装备使用阶段维修保障能力评估建模与分析[D];国防科学技术大学;2004年
8 罗斌;漫射光成像理论模型及算法的性能研究[D];浙江大学;2007年
9 陈燕;基于UML的嵌入式系统系统级设计方法研究[D];复旦大学;2005年
10 邓阿群;面向方面技术在大规模嵌入式软件中的应用[D];浙江大学;2007年
中国硕士学位论文全文数据库 前10条
1 张超;复杂网络中子网提取的排名—重构方法[D];清华大学;2011年
2 尹军;基于设计模式的重构方法及工具[D];吉林大学;2004年
3 韩菲;设计模式和重构的研究与应用[D];北京邮电大学;2006年
4 郑旭飞;一种面向方面的非功能需求框架AONFRF建模研究[D];西南师范大学;2004年
5 李海岩;旋转式三维物体测量系统及重构方法的研究[D];天津轻工业学院;2000年
6 李林川;基于事例的多工位机床重构方法研究[D];浙江大学;2005年
7 符凯;软件架构重构技术的研究与实现[D];西北大学;2007年
8 杜峰;基于设计模式的Web系统重构的研究及其在财务稽核系统的实践[D];北京邮电大学;2008年
9 盛飞;基于遗传算法的配电网络重构研究[D];天津大学;2008年
10 朱誉东;应用层组播重构技术研究与应用[D];中南大学;2009年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026