软件工程数据挖掘进展分析
【摘要】随着改革的开放,科技的飞速发展,科技的发展速度已经超过了人们的脚步,近年来,我们国家的计算机技术越来越成熟,计算机软件也越来越广泛,人们从前获取计算机软件信息的方法是手动获取,但手工获取的信息量是有一定限度的,不能满足现代软件的需求,所以,为了解决这个问题,本文着重于软件工程数据挖掘的研究进展。分别从几个不同的方面对软件工程数据挖掘研究进行了探讨。
【关键词】软件工程;数据挖掘;数据表示;数据预处理;机器学习
1前言
软件工程的数据挖掘指的是在大量的数据中发现有用的信息。因为软件工程的发展前景很广阔,而且软件工程数据挖掘是软件开发不可或缺的一部分,所以现在在软件工程领域以及一些相关领域内软件工程数据挖掘的研究非常火热,人们都争取尽量提高软件工程数据挖掘的速度,有用信息比率,以及智能识别等。从而让软件工程更具特色,为人们提供更大的便利。
2基本概念与技术挑战
2.1基本概念
软件工程在软件开发过程中会累计很多的数据,包括文档数据,测试数据以及用户数据和用户反馈数据,软件工程的开发者为了获取软件的信息就要使用这些数据,但是软件工程开发的软件越来越大,软件工程的数据量不再是手工可以处理的数量级,而且及其复杂,所以人们使用传统的方法来收集数据是非常困难的,基本上是不可能的,所以人们必须研究快速处理数据的方法,也就是软件工程数据挖掘技术。
2.2软件工程开发的过程及其相关信息
软件工程开发时所需要的最重要的一条基本原则就是软件工程学,软件工程学讲的就是软件工程开发。软件工程开发的基本步骤如下,首先进行可行性分析,需求分析,开发者需要先进性调研,来确定用户对软件功能的需求,在确定了大致的软件开发方向之后,开发者开始编写软件代码,然后根据代码的测试进行修改完善,在软件公布之后要持续地为软件进行维护,升级。在软件的开发阶段,每个开发者都不完全了解整个开发的过程,同时又不知道软件的整体信息,所以这些开发者如果缺少这些信息,他们就会无法进行继续开发,从而导致停工。
2.3软件工程的数据挖掘过程与任务
软件工程数据挖掘主要有三项任务,第一步是对数据进行预处理,第二步是对数据进行挖掘,第三步是对挖掘的结果进行分析。①数据预处理,待挖掘的大量数据混杂在了一起,它们的格式和形式是否适合进行数据挖掘,是否符合当前任务的数据特征,这些都是未知的,需要对其进行预处理,预处理就是将大量的数据进行改造,使其都变成适合进行挖掘的形式,并且变成符合任务的数据,整个数据挖掘过程中,预处理是最费时费力的过程,主要的手段是将数据向量化和将数据降维处理。✈②数据的挖掘,数据的挖掘其实就是对预处理之后的数据进行整体探索,找到其中一些有用的信息,所谓有用的信息,指的就是反应本质的数据,还有比如一些具有一定的规律的数据,将这些数据找出来就是软件工程数据挖掘的目的,数据的挖掘主要分为几种,又频繁序列的整理,关联规则的整理,还有ผ对数据进行分类等。③软件工程数据挖掘的结果分析,结果分析像是对一项工程进行检测验收一样,对挖掘之后的数据信息进行检测,将有用的信息展示出来,也就完成了整个软件工程数据挖掘过程,这些挖掘之后的数据很有价值,对计算机软件和客户的使用效果而言有着重要的意义。
3软件工程数据挖掘面临的挑战
因为软件工程的数据与其他的普通数据不同,所以软件工程数据的处理有着很大的困难,其困难主要有三个方面:①软件工程的数据复杂化;②软件工程的数据处理非传统;③对于软件工程数据挖掘的结果分析的标准非常严格。
3.1数据复杂化
软件工程的数据主要分为两大类:①结构化数据;②非结构化数据了。首先结构化的数据主要由缺陷报告和版本信息组成,而非结构化的数据则是由代码和文档组成。这两类数据不能使用同一种算法进行计算,但是这两类数据之间又包含者重要的对应关系,比如一个版本信息中对应包含着一定的文档,而一个代码中又有着缺陷报告,这种纠缠不清的关系让人们很难对其进行整体分析,所以人们为了在数据挖掘时将这两种数据同时挖掘出来,必须开发与之对应的新型算法,这样才能保证不漏掉很多พ有着复杂关系的结构化数据和非结构化数据。
3.2非传统分析
上文提到,软件工程数据挖掘的过程最后的步骤就是对挖掘之后的数据信息进行分析评估,而数据的处理结果最终要交到客户手中,对于客户的各种不同的数据需求,开发者要将挖掘之后的数据进行格式上的转变,这样大大地降低了软件工程数据挖掘的效率,而且往往客户要求的信息远远不止一种信息,有时还会需要具体的事例,编程的代码,缺陷的报告等等信息,所以,软件工程数据挖掘技术还需要进ฝ行新的完善,将要提交的信息进行归类,改变格式化,以及对各种需求都要满足而且保证效率的技术,做到让客户对数据挖掘结果满意,开发者还能从中获取最大利益的技术。3.3数据挖掘结果的评价标准在从前,传统的数据挖掘技术有着完善的对结果的分析标准,而现在,面对海量的软件工程数据,这套规定已经不再适用,对于不同的数据挖掘结果,对应着不同的数据结果ส分析评价标准,每个评价标准之间并没有太多的联系,这就需要开发者对不同类型的数据挖掘结果制定不同的分析标准,同时也需要满足客户的要求,开发者要对数据的结果有着独特的理解,才能对其结果是否满足要求,挖掘的是否成功,这些不定量的问题进行透彻的了解。总而言之,软件工程数据挖掘最终还是为了获取信息,所以,整个软件工程数据挖掘的结果是否将问题完美的解决的标准还是最终的数据是否满足要求,所以,上述挑战将会对数据挖掘的结果造成影响,为了解决这些问题,人们还需要开发新的技术,最终达到软件工程数据挖掘技术的完善。
4对软件工程数据挖掘的展望
软件工程数据挖掘技术对计算机软件的开发,用户的完美体验都有着重要的意义,所以以后软件挖掘技术还会继续的发展下去,要完成软件工程数据挖掘技术的完善,要做到以下几点:①对已经发现的数据挖掘问题进行开发,就比如结构化数据与非结构化数据的捏合整理,这正是人们一直都没做到的重点难点,要攻破这一难关,人们必须在计算结构化与非结构化数据挖掘时舍弃传统的数据算法,开发新的适合这两数据的算法,这样才能一步到位将结构化数据与非结构化数据一起运算出来。②对将要面临的软件工程数据挖掘技术的难题进行预案,对于这些问题要做好准备,开发者要丰富自己的知识面,以免今后遇到问题时不知道怎么办。比如恶意程序,黑客病毒的处理,这些在未来将会越来越多,也就需要开发者对其做好先前的准备,从而在问题来临的时候迎刃而解。
5结束语
随着人们对事物的追求便利,软件工程的应用越来越广泛,所以,对于软件工程中的最重要部分软件工程数据挖掘技术也要大力发展,现在有很多软件工程数据挖掘技术正在兴起。相信随着研究的不断深入,软件工程数据挖掘工具将会越来越实用化、智能化,乃至实现真正的自动软件挖掘。
参考文献
[1]李新,张晓静,米燕涛.软件开发过程中的数据挖掘[J].石家庄职业技术学院学报,2012(02):10~12.
[2]赵丽坤,陈立文,张国宗.基于数据挖掘技术的软件项目管理体系[J].经营与管理,2012(12):34~35.
[3]邹文东,张立厚.数据挖掘在水环境分析信息化中的应用[J].图书馆论坛,2006(05).
作者:解新星单位:同济大学软件学院