毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件

上传人:pu****.1 文档编号:565024649 上传时间:2023-12-14 格式:DOC 页数:73 大小:1.70MB
返回 下载 相关 举报
毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件_第1页
第1页 / 共73页
毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件_第2页
第2页 / 共73页
毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件_第3页
第3页 / 共73页
毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件_第4页
第4页 / 共73页
毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件》由会员分享,可在线阅读,更多相关《毕业论文——基于子图发现的设计模式识别系统--可扩展存储结构的图组件(73页珍藏版)》请在金锄头文库上搜索。

1、本 科 毕 业 论 文基于子图发现的设计模式识别系统可扩展存储结构的图组件Design Pattern Detecting System Using Subgraph DiscoveryA Graph Component Supporting ExtendableStorage Structures姓名:学号:学院:软件学院专业:软件工程年级:指导教师:二XX 年 X 月摘要现代软件工业已经广泛地应用设计模式来重用成功的设计实践以提高软件系统的质量,然而受制于软件系统的规模和设计文档的缺失,开发人员无法直观地理解现有软件系统中所应用的设计模式。通过从现有的系统源代码中提取出其所使用的设计模式,

2、可以方便开发人员更容易理解源代码中各个类在整个系统中的职责与作用,从而更好的对其进行维护。源代码中的设计模式识别是研究领域的关键课题。本文中的 CodeMiner 插件是用 Java 语言来开发的 Eclipse IDE 插件,它可将软件源代码的主要特征提取出来并整理成抽象语义图。通过对设计模式与软件项目源代码进行解析,可以生成相应的抽象语义图。通过对所得结果利用子图比较的方式进行挖掘,能识别出软件项目源代码中所使用到的设计模式,并确定各个类在对应设计模式中所扮演的角色,从而为开发人员在维护软件系统时理解源代码提供帮助。而通过引入使用确定的有限自动机,可以大幅度提高 CodeMiner 插件的

3、运行效率,增加其可用性。基于可扩展存储结构的 MiningGraph 组件在 CodeMiner 插件系统中扮演底层组件的角色,它实现了图的基本操作(如图的创建、修改、遍历等)、图的同构判断以及图同构序列的定位等算法的实现,并为 CodeMiner 提供图模型持久化服务。 MiningGraph 隐藏了图的持久化细节,支持可扩展的存储结构,实现了将图保存到文件或数据库中,为 CodeMiner 实现子图匹配算法在代码中挖掘设计模式的使用提供支持。关键字:图;图同构;数据库AbstractDesign patterns have been widely adopted by modern sof

4、tware industry in order to reuse successful practices and improve the quality of software systems. The identification of design patterns as part of the reengineering process can convey important information to the developers. However, many systems are of legacy and the design documents are usually m

5、issing. Besides, existing pattern detection methodologies generally have problems in dealing with one or more of the following issues: Identification of modified pattern versions, search space explosion for large systems and extensibility to novel patterns.The project CodeMiner mentioned in this art

6、icle, is an Eclipse IDE plug- in developed in Java programming language. It can extract the characteristics of software source code and generate Abstract Semantic Graph. By analyzing the source code of Design Patterns and the software project to examine, corresponding Abstract Semantic Graphs can be

7、 generated. Then CodeMiner uses subgraph discovery methodology to identify design patterns used in the software project and determine the role of each class in every pattern, in this way to help developers understand the structure of the source code. And by introducing Deterministic Finite Automata,

8、 performance efficiency can be enhanced greatly, making CodeMiner friendlier to use.MiningGraph, a component aiming at supporting extendable storage structures, plays the role of the base part of CodeMiner. Besides providing basic operations of graph theory, MiningGraph also implements graph isomorp

9、hism detection and isomorphism matching location. MiningGraph hides implementation details of graph persistence, and supports multiple storage structures such as GraphML format and database storage, meeting the requirements of CodeMiner for using subgraph discovery algorithm in source code pattern d

10、etection.Keywords: Graph; Graph Isomorphism; Database Storage.目 录第一章绪论.11.1研究背景及选题意义 .11.2研究现状及存在问题 .21.3主要研究内容及特色 .61.4本文结构安排.7第二章MiningGraph 的相关知识 .92.1图论基本概念.92.1.1图的定义 .92.1.2图的基本操作 .112.1.3图的存储结构 .132.2图同构定义及判定条件 .192.3JGraphT 框架.222.4本章小结.24第三章MiningGraph 的设计.253.1CodeMiner 需求 .253.1.1CodeMiner 总体结构介绍 .253.1.2抽象语义图 ASG.263.1.3有限自动机 DFA.293.2MiningGraph 总体架构 .303.2.1总体架构 .

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 药学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号