当前位置:主页 > 科技论文 > 软件论文 >

度量驱动的设计模式挖掘及基于模板的定制化重构

发布时间:2020-04-03 03:31
【摘要】:良好的设计模式对于软件系统的维护、升级以及重构起到了至关重要的作用。然而,很多遗留系统由于开发流程不规范、文档缺失等原因,后续的软件维护人员对于原始的设计决策不明晰,加大了软件维护难度。通过检测系统中的设计模式,可以帮助软件维护人员了解系统结构,降低软件维护难度。本文提出了一种度量驱动的基于图匹配的设计模式挖掘方法,利用该方法可实现从源代码中挖掘设计模式实例。同时,为每一种挖掘得到的设计模式实例定制重构模板,以方便用户根据需求实现对设计模式的代码重构。本文的主要工作和研究成果如下:1)提出了一种高效的基于子系统图和最优搜索顺序的子图挖掘方法。该方法首先通过获取设计模式的4种结构特征和7种行为特征,将软件系统转变成数据图,然后再将数据图划分为若干个子系统图以排除系统中不相关的类来减少搜索空间,最后根据设计模式的结构和行为特征构建设计模式的搜索顺序,从而挖掘出候选的设计模式实例。2)提出一种支持设计模式代码重构的13种基本操作和10种组合操作,并在此基础上为每种Go F设计模式定制了重构模板。根据重构模板,可将所检测出的设计模式实例按照用户需求进行代码重构。3)采用对结构和行为进行交叉验证的方法,设计并实现了完整的设计模式挖掘工具。该工具融合了普遍关注的结构特征以及行为特征。实验结果表明此方法的准确率达到100%,同时与现有方法相比其召回率提高了5%、时间效率提升了10%。同时,所开发的设计模式重构原型系统也验证了本文提出的基于模板的设计模式重构框架和流程的有效性。
【图文】:

流程图,设计模式,定制化,重构方法


可以为挖掘出的设计模式实例的重构提供解决方案,从而更好地在开发中利用设计模式。图1.1 描述了本文方法的大致框架,其主要研究内容如下:(1)通过分析和研究 GoF 定义的 23 种设计模式及衍生的设计模式变体类图,提出了一种用于形式化定义设计模式的特征模型。其包含 4 种类之间的结构特征和 7 种类方法间的行为特征。利用 11 种特征模型可以直接定义相应的设计模式和常见变体。(2)利用 EA 工具对软件源码进行逆向工程解析,并将软件源码和设计模式转化为相应的类结构行为关系图,即数据图。数据图中的顶点表示软件源码中的类或设计模式的角色,边表示软件源码中类和类之间和类中方法之间的关系。针对转换的数据图,根据特定算法获取中心顶点和半径获得相关区域。在相关区域中,根据数据图顶点的出入度以及边的权值将结构行为特征相结合,以确定设计模式搜索顺序。根据搜索顺序可以直接靶向设计模式实例。此方法可以大大减少挖掘过程的搜索空间,提高方法执行的效率。(3)在不改变设计意图的情况下对挖掘出的设计模式进行重构。本文根据设计模式的结构行为特征结合对类、属性和方法的添加或删除操作,定义了 13种基本重构操作并通过复合形成 10 种组合型重构操作。在此基础上,为每一种设计模式制定了详细的重构模板,并提出了基于重构模板的设计模式重构框架和重构流程。(4)为了验证本文提出的挖掘方法的有效性,我们将此方法应用于 8 个开源软件系统的源码中?

界面图,设计模式,实例,界面


图 5.4 设计模式实例重构用户填写界面1)首先,用户选择 Adapter 模式实例中需要重构的实例,了解到 Adapter模式的重构类型为关联型;然后选择关联类操作会出现重构方式:添加 Adapter或删除 Adapter,此时选择添加 Adapter;随后用户填写类名为 HelloWorld,并选择继承的父类 TestCase 和关联的类 TestResult。此时,,点击确认提交,可以获得重构后的 XML 文件。图 5.5、图 5.6 和图 5.7 是获得重构后的 XML 文件,我们可以看到 XML 文件中添加了 HelloWorld 类、testresult 属性、HelloWorld 类和TestCase 之间的继承关系以及 HelloWorld 类和 TestResult 之间的关联关系。2)其次,用户根据重构选项选择生成相应的设计模式代码时,点击生成Javacode 按钮即可得到与 XML 相对应的类的相关代码,如图 5.8 所示。3)最后,用户可以针对其他需要重构的设计模式实例返回主页进行对应的修改,从而达到改变的目的。
【学位授予单位】:杭州电子科技大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.5

【相似文献】

相关期刊论文 前10条

1 李安亚;王少妮;;对比模式挖掘研究进展[J];科研信息化技术与应用;2017年05期

2 魏芹双;;对比模式挖掘研究进展[J];网络安全技术与应用;2017年01期

3 李中元;边馥苓;;空间同位模式挖掘研究进展[J];地理空间信息;2013年06期

4 王琳;罗可;;基于频繁项集的条件模式挖掘[J];计算机工程与设计;2009年16期

5 张雪;陈未如;;面向生物信息的结构关系模式挖掘约束条件分析[J];科技咨询导报;2007年05期

6 周欢;王海涛;钟之阳;刘方鑫;;时空轨迹数据智能处理与模式挖掘技术研究[J];电信快报;2018年07期

7 史殿习;李寒;杨若松;莫晓峗;魏菁;;用户日常频繁行为模式挖掘[J];国防科技大学学报;2017年01期

8 邹蕾;;时间序列周期模式挖掘算法分析[J];中国管理信息化;2016年03期

9 陆瑶;;基于频繁特征模式挖掘的期货市场单边运行深度的预测[J];中国管理信息化;2015年17期

10 陆亿红;王子仁;黄燕;;适合稀少空间特征的同位模式挖掘算法[J];浙江工业大学学报;2007年04期

相关会议论文 前10条

1 缪裕青;尹东;;分布式存储结构的频繁闭合模式挖掘并行算法[A];2007年全国开放式分布与并行计算机学术会议论文集(下册)[C];2007年

2 王淼;尚学群;谢华博;李战怀;;行常量差异共表达基因模式挖掘算法研究[A];第29届中国数据库学术会议论文集(B辑)(NDBC2012)[C];2012年

3 陆叶;王丽珍;陈红梅;赵丽红;;基于可能世界的不确定空间co-location模式挖掘研究[A];NDBC2010第27届中国数据库学术会议论文集(B辑)[C];2010年

4 吕静;陈未如;刘俊;Osei Adjei;;并发分支模式挖掘[A];第二十一届中国数据库学术会议论文集(技术报告篇)[C];2004年

5 刘玉葆;蔡嘉荣;印鉴;黄志兰;;基于最大访问模式挖掘的数据库异常行为检测[A];第二十三届中国数据库学术会议论文集(研究报告篇)[C];2006年

6 胡伟成;曹三省;李丹;;一种基于QPop增量时域分割升维的媒体内容应用模式挖掘改进算法[A];第二十二届中国数据库学术会议论文集(技术报告篇)[C];2005年

7 薛丹;李德敏;裴仁林;;移动计算中基于PrefixSpan算法的用户移动模式挖掘[A];第二十一届中国数据库学术会议论文集(技术报告篇)[C];2004年

8 王丽珍;陆叶;陈红梅;肖清;;基于前缀树结构的空间co-location模式挖掘算法研究[A];NDBC2010第27届中国数据库学术会议论文集(B辑)[C];2010年

9 宋国杰;马帅;唐世渭;杨冬青;;基于模式挖掘的交通预测模型[A];第十九届全国数据库学术会议论文集(技术报告篇)[C];2002年

10 夏庆;马元元;孙志挥;;路径遍历模式挖掘方法的改进[A];第十六届全国数据库学术会议论文集[C];1999年

相关重要报纸文章 前6条

1 东方通CEO 沈惠中;以PPP模式挖掘产业大数据金矿[N];中国电子报;2015年

2 记者 温婷 编辑 全泽源;上海文交所总裁张天:用创新模式挖掘“文化的北大荒”[N];上海证券报;2010年

3 本报记者 姜旭 实习记者 侯伟;“互联网+音乐”:创新模式挖掘商机[N];中国知识产权报;2015年

4 冉凤林 本报记者 曾小清;线上线下融合 O2O模式挖掘消费潜力[N];四川日报;2015年

5 本报记者 于萍;园林上市公司试水PPP模式挖掘千亿级市场[N];中国证券报;2015年

6 ;成功模式挖掘资源潜在价值[N];人民邮电;2006年

相关博士学位论文 前10条

1 杨晓飞;基于表观遗传数据的功能模式挖掘与分析[D];西安电子科技大学;2016年

2 钱烽;同位模式挖掘研究[D];浙江大学;2012年

3 Shafqat Ali Shad;移动用户轨迹与行为模式挖掘方法研究[D];中国科学技术大学;2013年

4 覃桂敏;复杂网络模式挖掘算法研究[D];西安电子科技大学;2012年

5 刘勇;图模式挖掘技术的研究[D];哈尔滨工业大学;2010年

6 朱丽达;基因调控网络的模式挖掘及其在药物筛选中的应用[D];武汉大学;2014年

7 张峻铭;基于轨迹数据的移动对象聚集模式挖掘方法研究[D];北京邮电大学;2016年

8 董晓莉;时间序列数据挖掘相似性度量和周期模式挖掘研究[D];天津大学;2007年

9 王乐;数据流模式挖掘算法及应用研究[D];大连理工大学;2013年

10 沙朝锋;基于信息论的数据挖掘算法[D];复旦大学;2008年

相关硕士学位论文 前10条

1 孙鸿艳;云环境下时空轨迹渐变移动簇模式挖掘算法研究[D];南京师范大学;2018年

2 吕梦瑶;基于知识图谱的需求模式挖掘方法的研究[D];哈尔滨工业大学;2018年

3 鲁润泽;基于子图同构和机器学习的设计模式挖掘方法研究[D];杭州电子科技大学;2018年

4 张萍;度量驱动的设计模式挖掘及基于模板的定制化重构[D];杭州电子科技大学;2018年

5 马佳丽;基于时空数据的频繁轨迹挖掘算法研究[D];西北大学;2018年

6 刘畅;城市交通中聚集模式的挖掘方法研究[D];西南交通大学;2018年

7 于重生;基于时空规律的位置预测方法研究[D];山东大学;2018年

8 欧阳双;基于高效用模式挖掘的微博文本突发话题检测方法研究[D];武汉大学;2018年

9 陈京;移动云服务环境下的用户异常行为检测[D];河南科技大学;2017年

10 席元鸿;时间序列部分周期模式挖掘研究[D];西北师范大学;2011年



本文编号:2612868

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2612868.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户ffaa0***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com