论文部分内容阅读
本文在调研大量国内外文献的基础上,研究了软件资源信息挖掘的理论和方法,同时调研了软件逆向工程及软件切片的理论和技术,并将这两项技术应用于软件资源信息挖掘系统的设计和实现当中。目前对于一些庞大的软件系统当中存在着大量的隐藏信息,而软件系统在开发的过程中往往存在设计文档不完善,设计文档与代码不同步,设计文档丢失,以及设计文档不精确或难以理解等问题,这就造成了再次对该软件系统进行改进或者在该软件系统上进行实施时由于对该软件系统一无所知导致无法入手。
本文设计了基于代码层次的软件资源信息挖掘系统,该系统通过分析基于JAVA语言平台的客户软件系统的源代码,提取出系统中类之间的依赖关系,并通过树及有向图这两种数据结构表示系统中所有类的依赖关系,同时基于系统中类的依赖关系按照一定的策略对客户软件系统进行模块划分,以使得客户软件系统在进一步进行改进或者在第三方软件实施系统对其进行实施时可以按模块独立进行,以尽量少的造成对其它无关模块的影响。同时考虑到系统会在已有结构的基础上新增一些类,且在分析时不希望破坏原先的依赖关系结构及模块结构,本系统专门设计了对于保持原结构不变的情况下对新增类部分的分析,并将新增类部分的结构与系统中原有部分相关联起来。
本文首先简要的对软件资源信息挖掘的理论做了描述,然后在理论指导下参与了系统的需求分析,进行了分析系统模型及策略的概要设计,设计系统包结构及类结构的详细设计,系统实现及系统测试,并分析了系统设计与实现中遇到的关键问题及解决方案。