论文部分内容阅读
程序理解实际上是使用各种计算机应用技术,通过对程序源代码的分析,获得程序的结构和设计信息,帮助系统维护人员以及开发人员对遗留系统进行分析和理解。随着计算机应用技术的发展以及用户依靠计算机技术解决问题的期望度不断提高,软件系统的结构和规模也越来越大。因此,现代软件工程越来越多地依靠软件设计模式来解决复杂的软件结构和业务逻辑。在程序理解和软件逆向工程的研究中,对软件设计模式的识别有助于软件技术人员从软件结构上理解系统的设计意图和实现功能。本文正是通过对程序理解中设计模式识别方法的研究以及对设计模式识别结果进行可视化表示来帮助系统维护人员进行程序理解。本文的主要工作和成果如下:1.提出了基于XML Schema技术定义XML文档结构的设计模式定义语言(Design Pattern Definition Language based on XML Schema,简称DPDLXS),从而实现设计模式类角色静态结构信息和动态行为信息的分层表示,为准确描述设计模式特征进而识别设计模式提供了必要的技术基础。2.提出基于DPDLXS语言的信息抽取模型和源代码信息抽取流程。根据该信息抽取流程,对Java源代码信息按类静态结构信息和动态行为信息的分层次结构进行抽取,同时给出了源代码中属性、方法等相关信息的一系列具体抽取流程和抽取算法。3.提出了源代码类之间关联度的概念,结合图论相关理论构建基于关联度的关联类集合;提出基于关联度和特征约束的设计模式识别算法,并运用该算法对具体设计模式进行特征约束识别。4.针对本文提出的设计模式识别方法,对JUnit、JHotDraw和JRefactory三个开源应用程序进行部分设计模式的识别并对识别结果进行分析以验证方法的可行性和效率;最后,完成了基于Java语言实现的设计模式识别和可视化表示系统的设计与实现。