基于模糊的设计模式挖掘与重构
【摘要】:
设计模式提供了模式结构中每个类的角色信息及各组成元素之间的关系,是面向对象设计的一个高级抽象。随着软件规模的不断扩大和复杂度的不断增加,为了更好地设计和实现软件系统,满足市场和用户需求的不断变化,大部分的软件系统都采用设计模式来提高对系统的可复用性。因此,从系统源码中挖掘设计模式对软件的可理解性和可维护性具有重要意义。
目前,设计模式挖掘主要存在以下3方面的问题:第一,实际系统中的设计模式与标准设计模式并不完全相同,需要考虑模式模型的灵活度问题;第二,源码中存在大量与模式挖掘无关的信息,如果不进行过滤,会增加匹配负担;最后,大部分的设计模式体现在对象之间的交互上,需要考虑动态信息,而目前对源码动态分析的研究还相对较少。针对以上问题,本文提出一种基于模糊理论的模式匹配方法,实现设计模式挖掘。其中,使用基于类关系的素数矩阵模型对设计模式结构及源码信息进行描述,将其作为模式匹配的模型基础,该模型灵活性强,能够很好地适应不同定义的模式;采用基于模型的聚类方法对源码模型进行优化,过滤多余信息,以提高模式匹配的效率;将模糊方法与设计模式匹配策略相结合,引入动态信息,将其与静态信息相结合,提高模式匹配的正确性和精确性;最后,利用XML技术实现对设计模式的定位。通过对应用大量设计模式的开源代码JUnit、JHotDraw和JRefactory进行实验分析,证明此方法在精确性和完整性方面得到了很大的提高,并且避免了对特殊模式的失效性。
由于设计模式为软件系统提供了设计的可重用性,当用户需求变化时,开发人员需要在某些设计模式的基础上,对系统进行相应的修改。因此,需要一种基于设计模式的重构技术来实现对软件系统中设计模式的修改。本文在挖掘设计模式的基础上,提出了一种基于XSLT技术的设计模式重构方法,针对不同的重构类型提出相应的XSLT转换机制。
最后,本文开发了一个设计模式挖掘和重构工具,实现对设计模式挖掘和重构的自动化。通过对开源代码的测试,证明此工具的有效性。
|
|
|
|
1 |
周轶刚,康建初;可重用软件模式[J];计算机工程与应用;2002年17期 |
2 |
刘连喜,徐惠民;MFC框架中的设计模式分析[J];计算机应用与软件;2005年09期 |
3 |
谢晓兰,周德俭,黄文捷;面向网络化制造的应用服务设计模式[J];桂林工学院学报;2005年03期 |
4 |
王正俊;徐艳;顾宏斌;;设计模式及其在AMCCS中的应用[J];计算机技术与发展;2006年03期 |
5 |
曾爱华;;存储管理软件的设计模式探讨[J];软件导刊;2006年01期 |
6 |
吴宣为;;一种基于设计模式的动态报表设计[J];微计算机信息;2007年24期 |
7 |
鲁江;夏雨人;;适配器模式及其应用[J];微型电脑应用;2007年07期 |
8 |
李文锦;;基于设计模式的软件设计恢复方法研究[J];计算机与现代化;2007年08期 |
9 |
周毅;顾进广;刘斌;;设计模式在IT资源管理系统中的应用[J];微计算机信息;2008年03期 |
10 |
高瑞明;吴洁明;;基于设计模式数据访问组件的设计和实现[J];现代计算机(专业版);2008年02期 |
11 |
刘蕴珊;刘列励;;设计模式在信息系统中的应用研究[J];信息技术;2008年10期 |
12 |
许晟;张学玲;;浅析基于MVC设计模式在Web系统中的应用[J];网络财富;2008年11期 |
13 |
曾琳;蔡晓丽;;基于MVC模式的网络教学平台[J];电脑知识与技术;2009年06期 |
14 |
徐光明;卢畅;李海霞;;高校网络考试系统的应用研究[J];电脑知识与技术;2010年11期 |
15 |
李英军,吕建,刘鸿儒;SEIS++:一个油气勘探领域软件建造和集成的模式语言[J];计算机学报;2000年01期 |
16 |
万剑怡,薛锦云;一种设计模式的混合规范描述模型研究[J];计算机工程;2001年05期 |
17 |
励刚,陈陈;应用设计模式开发小干扰稳定性分析软件包[J];中国电机工程学报;2002年01期 |
18 |
王晓庆,曾文英,王明文,丁晖;设计模式中的面向对象原则及其子模式[J];计算机工程;2003年09期 |
19 |
JuIio Garcia-Marin;Miguel Sutil-Marin;马维达;;抽象机模式[J];程序员;2003年01期 |
20 |
李维;;使用C#Builder和设计模式在.NET中管理Unmanaged程序代码[J];程序员;2003年09期 |
|