论文部分内容阅读
设计模式提供了模式结构中每个类的角色信息及各组成元素之间的关系,是面向对象设计的一个高级抽象。随着软件规模的不断扩大和复杂度的不断增加,为了更好地设计和实现软件系统,满足市场和用户需求的不断变化,大部分的软件系统都采用设计模式来提高对系统的可复用性。因此,从系统源码中挖掘设计模式对软件的可理解性和可维护性具有重要意义。目前,设计模式挖掘主要存在以下3方面的问题:第一,实际系统中的设计模式与标准设计模式并不完全相同,需要考虑模式模型的灵活度问题;第二,源码中存在大量与模式挖掘无关的信息,如果不进行过滤,会增加匹配负担;最后,大部分的设计模式体现在对象之间的交互上,需要考虑动态信息,而目前对源码动态分析的研究还相对较少。针对以上问题,本文提出一种基于模糊理论的模式匹配方法,实现设计模式挖掘。其中,使用基于类关系的素数矩阵模型对设计模式结构及源码信息进行描述,将其作为模式匹配的模型基础,该模型灵活性强,能够很好地适应不同定义的模式;采用基于模型的聚类方法对源码模型进行优化,过滤多余信息,以提高模式匹配的效率;将模糊方法与设计模式匹配策略相结合,引入动态信息,将其与静态信息相结合,提高模式匹配的正确性和精确性;最后,利用XML技术实现对设计模式的定位。通过对应用大量设计模式的开源代码JUnit、JHotDraw和JRefactory进行实验分析,证明此方法在精确性和完整性方面得到了很大的提高,并且避免了对特殊模式的失效性。由于设计模式为软件系统提供了设计的可重用性,当用户需求变化时,开发人员需要在某些设计模式的基础上,对系统进行相应的修改。因此,需要一种基于设计模式的重构技术来实现对软件系统中设计模式的修改。本文在挖掘设计模式的基础上,提出了一种基于XSLT技术的设计模式重构方法,针对不同的重构类型提出相应的XSLT转换机制。最后,本文开发了一个设计模式挖掘和重构工具,实现对设计模式挖掘和重构的自动化。通过对开源代码的测试,证明此工具的有效性。