论文部分内容阅读
在今天的企业软件开发环境中,软件工程工具和软件工程协作环境得到了非常广泛的部署和应用。这些工具和协作环境在软件生命周期中积累了大量的数据信息,例如软件静态历史信息库,软件运行信息库,和软件的代码库等。以上数据在过去主要被用来支持企业软件过程的历史缺陷查看,历史版本的代码查看,以及存档管理等等功能。现实的软件工程过程中,有很多的问题难以通过传统的软件工程方法,或者软件工程工具得以很好的解决,比如零散的非结构化需求文件的分析管理,开发团队的优化协调管理,代码的快速阅读理解,代码的自动编写,等等。然而随着软件工程相关数据在软件工程生命周期中不断积累,很多以往难以通过传统的软件工程的方法解决的问题,可以通过面向这些积累的软件工程数据进行挖掘来解决。软件生命周期的阶段非常的多,其中软件开发和软件测试是其中很重要的阶段。如果能够有更加智能的方法来提高代码阅读的效率,缩短软件开发的周期,降低软件测试的开销,保证软件测试的覆盖,将会大大的提高软件工程的效率。因此,在本文中,我们主要通过面向软件工程数据挖掘的方法,以解决在软件工程的过程中,尤其是在实际的公司项目中,在开发测试中都会遇到的三个问题,代码理解,代码开发,回归测试,从而提高软件工程的效率。具体而言,本文开展了以下研究工作并作出了相应的贡献。1提出了一种新的基于源代码分析的两阶段迭代层次化软件聚类算法,其中第一阶段为基于调用入口的模块化聚类,第二阶段则是基于PageRank演化的模块化聚类。对于聚类的结果,实现了支持动态多粒度的,软件模块间依赖关系的可视化。通过专业IT公司程序员的试用证明,该方法明显的提高了程序员代码阅读理解的效率。2提出了通过面向XML配置文件的频繁子树挖掘的相关算法,来对基于XML配置框架的J2EE应用中的XML配置部分代码进行自动推荐。该频繁子树挖掘的方法结合了XML配置文件中XML树的特点进行了定制化的优化,大大的改进了频繁子树挖掘的效率和准确性。从实验中可以发现,本方法通过自动生成可以重用的XML子结构,和与节点属性相关的例程,提高了XML配置文件部分的编码效率。3提出了通过面向XML配置文件以及上下文代码之间的树结构的关联规则进行挖掘的方法,对基于XML配置文件的J2EE应用中的配置部分代码中的节点值和属性值进行自动推荐。通过实验验证,本方法可以根据上下文自动生成可以重用的XML配置文件中的节点值或者属性值,同时可以在编译时自动的检测节点值或者属性值的语义错误,从而提高XML配置文件部分的编码效率。4提出了安全的针对于基于XML配置框架的J2EE应用的回归测试例选择方法。这个方法通过建立端到端的测试例运行态行为模型,两个版本间的全面的原子更新点分析,安全的找出那些可能在新版本中有不同运行行为的回归测试例集合。通过在真实的项目中的使用证明,该方法在基于XML配置框架的J2EE应用中,可以找到所有能够发现缺陷的回归测试例。5提出了一个回归测试例优选的方法,它不仅简单的将测试例分类为需要回归测试的测试例集合,和不需要重新测试的测试例集合,并且对于需要回归测试的测试例集合,根据他们发现缺陷的启发式规则和测试时的实时反馈进一步动态的进行分类和排序。通过实验证明,该方法可以在最小的测试代价下,最快速的发现代码中缺陷。