数据挖掘技术在软件工程中的应用
2017-11-15
(河北农业大学 河北 保定 071000)
每个行业的发展都离不开信息传递和解读,而每一个信息的产生都可以看作是庞大的数据杂糅,其中的数据又分为不同的重要等级,而数据的挖掘就是在这些冗杂的数据中进行分类,进一步的挖掘出重要数据,并将这些数据进行加工,然后传递给下一级。将此技术应用到软件工程中必将具有很大的前景。
1 基本概念及数据挖掘的流程
数据挖掘是一种技术,它结合了传统的数据分析方法和现在先进的处理大量数据的复杂算法相结合。在大量数据中自动的发现有用的信息的过程。极大的挖掘出数据的潜在价值,提高数据的利用率。
一个软件的开发大致可以分为以下几个阶段,首先要确定软件所要面对的特定用户,根据这些用户的某些特性来构思整个软件的框架,将框架搭载完毕之后在内部对该软件进行软件测试,然后进行用户的模拟公测,调查用户的满意程度,收集用户的实际体验,反馈用户的建议和意见等。这些步骤都离不开信息的收集、整理、传输。数据挖掘就是依靠一些特殊的工具和媒介对信息进行收集、甄别和运用,来满足软件开发的需求。
1.1数据挖掘和“爬虫”的比较。当前比较在信息领域比较流行的一个技术是“爬虫”,大量的数据信息工作者提起数据挖掘的时候都会想到“爬虫”,把两者混为一谈。“爬虫”和数据挖掘是两个大小不同的概念,“爬虫”只能称得上是数据挖掘的前提,但是数据挖掘的前提不仅仅只依靠“爬虫”来获取信息,还可以依靠自媒体,小程序以及问卷调查等获取数据信息。数据挖掘将收集到的数据通过高端算法进行分类、筛选、甄别和计算,获得有效的信息数据,摒弃无效的信息数据,最后将这些有用信息分别送入不同的驱动器,利用这些数据直接驱动其他系统进行工作。从当前数据挖掘的技术来看,虽然数据挖掘技术的效率还不是很高,但是随着该领域不同人员的共同努力,数据挖掘在以后信息领域绝对是一个佼佼者。
1.2数据挖掘技术对软件开发的重要性。数据挖掘技术无论是在传统的汽车电子行业还是在新兴智能家居的开发等领域都有着十分重要的影响,而软件工程却是其中最大的受益者,因为数据挖掘的整个阶段和软件工程的开发时间段十分契合,可以说数据挖掘技术就是为软件工程量身设计的一门专业性技术。软件工程如果借助传统的方法进行数据收集和分析,需要大量的人力物力,而利用数据挖掘技术则只需要更换不同的算法即可,大大缩短了软件开发的周期。
1.3从数据的预处理到数据挖掘结果后处理的过程:
2 软件工程中数据挖掘技术的应用
数据挖掘技术目前还被视为新兴技术,但是从长远的影响力可以看出,数据挖掘技术已经成为软件工程领域最闪耀的技术,下面将从开源软件、软件项目管理和程序代码三个方面来介绍软件工程中数据挖掘技术的应用。
2.1开源软件和代码克隆挖掘。由于软件工程中大多电脑软件都处于开源状态,而且许多程序语言也为用户提供了大量可移植的功能,用户可以根据自身的需要对软件进行改进,有能力还能够直接在原有软件的基础上进行二次开发。正是由于开源软件的这种特性,虽然赢得了庞大用户的青睐,但是问题也逐渐显现出来,开源软件的良莠不齐使得该领域存在一定的风险。数据挖掘技术能够对这种二次开发的软件进行筛选,屏蔽存在巨大漏洞的软件,大大降低了开源软件运行的风险。
算法是一个软件能够运行的核心,而程序代码则是算法的骨架,但是从当前软件工程的保护力度来看,对于代码的保护力度是最小的,大量的软件都是通过代码中某些变量关系的替换把自己包装成一个新的程序,这种实际上侵犯了原作者的权益。
2.2软件项目管理。软件项目管理基本上采用抽屉存放和“八叉树”两种方法对成员关系进行一对多匹配,在这样的匹配过程中有些成员隶属于两个或者两个以上的组织,这样对于软件项目管理可能会存在交叉的现象,无论是对软件的协调关系,还是对软件运行的硬件要求都会提高。为了解决这一问题,可以在软件项目管理之前,利用数据挖掘技术对样本进行分析,利用科学的算法对样本中的每一个成员和组织关系进行评价,剔除影响较小的关系,就能够保障软件项目管理的良好运行。
2.3软件漏洞检测挖掘。软件漏洞存在于软件生命周期的整个过程,有些漏洞不易发现且一旦爆发危害极大。利用数据挖掘技术合理的进行软件测试尽可能发现软件漏洞,挖掘过程分为:通过对源码的发掘发现代码中可能出现的问题;通过对已存在的软件漏洞进行发掘,对比发现软件开发中的漏洞;通过利用模型检测等技术对未知的软件漏洞进行挖掘,搜索出分险性漏洞并及时修复,从而提高软件的稳定性、安全性、鲁棒性。
3 结束语
数据挖掘在软件工程中的运用前景是十分广阔的,只要我们能够将数据挖掘技术运用得当,就能够使软件工程向前跨越出创造性的一步。