浅析数据挖掘技术在软件工程中的应用
2018-01-15陈俊伟
陈俊伟
摘 要: 在现代的信息社会中,信息呈现了爆炸式的增长态势,人们面对海量的信息,需要正确处理信息的处理,如何处理复杂的信息和数据是当前重要的课题,充分挖掘数据对我们有重要意义,因此,我们需要对数据挖掘技术在软件工程领域的应用进行基本分析。
关键词: 数据挖掘;技术分析;软件工程
1.引言
当前,社会经济以前所未有的速度狂奔,社会物质财富不断增加,信息技术的进步使得人们的生活模式和形态出现了巨大的变化和进步,特别是随着信息技术的日新月异发展,进一步增强了社会发展的动力,巨量的信息使得人们不得不面对和处理,而这些信息都使得人们的信息接收和处理新事物都显得更加便捷,人们需要认真分析海量的信息,并通过信息获取有价值的内容,进而帮助自己更好认识客观事物。通过对数据的整理和挖掘,提取价值内容,至于软件工程,我们更需要对信息和数据进行充分分析和挖掘,获取更大的价值。
2 软件工程数据挖掘技术的基本内容
2.1软件工程中数据挖掘技术的应用发展
数据挖掘是一种处理信息的方式,提取信息资源需要将数据库与技术进行融合,实现技术与数据的有效统一。从数据挖掘到技术的实践应用,这些都使得技术更多肩负了功能意义,同时在技术中融入重要的技术。之余软件工程而言,其是20世纪六十年代兴起的一种信息工程,这项内容的提出就开始受到了更多的关注,对其研究也不断增多,应而就其基本的功能意义而言,其主要是采用了一种工程化的途径或者是方法对具有实用意义的并且高质量的和存在一定功能效用的软件内容进行构造和创建,这样的软件建构的基本预期就是在一定的背景条件下,对成本基础进行分析,从而研发出能够满足使用者基本需求的产品,在二十世纪的后半期,我们可以发现对软件工程的研究已经意识到了对数据的挖掘的意义实质上是不大的,这就需要对数据特性和工程类软件进行有机结合,相互攫取双方的有点,极大程度上提高数据挖掘技术的作用。
2.2数据挖掘技术分析
在数据挖掘的技术方面,分析过程和聚类过程是数据挖掘过程中最为重要的环节,应而也具有这重要的意义和影响,通过聚类分析能够有效缩小我们进行分析的数据和信息的范围,从而为我们更快更准定义我们需要的数据创造良好的条件,并获取我们需要的信息。
2.3数据挖掘的主要内容
在数据挖掘的完整过程中,从阶段性来观察,数据挖掘实质上是包括了选择、提前处理以及吸收等过程的,与其他的过程阶段相比,选择阶段实质上也是最为重要的,这个过程需要我们对实际情况进行了解,然后从巨量的具有交互性的数据中进行筛选,从而在实际的工作进程中,我们需要适应不断变化更新的数据,从而对数据集合进行重新筛选,进而实现自己的预期目的。对于那些预先处理的数据,我们处理过程都是需要将数据进行必要的转换,这样就能够使得数据呈现出我们需要的样态,然而由于很多数据都是有着自身他特性的,数据之间的差异性都会影响我们进行数据挖掘,所以,我们应当转变视角,对数据进行必要的加工和分析处理,进而通过合理的技术对需要的数据进行整理。最后对于吸收过程而言,由于这一过程在数据挖掘的整个过程中是居于后期的工作范畴,所以对这些工作进行处理就显得更加有意义。
3.软件工程中数据挖掘技术的基本应用
3.1在软件项目中的应用
一般情况,软件的项目管理在数据挖掘中应当有两个范畴,第一個就是对组织关系的挖掘,这是一个对版本控制信息的挖掘,由于软件工程的项目管理是一个复杂的过程,特别是对人员的组织关系的挖掘更多是对人力资源的协调和分配。最简单的理解,可以是这样的,即一个工程项目包括了千百人,在参与的过程中,人们之间的交互过程主要是通过邮件和文档而进行的,这种家交互过程很容易对原本的秩序产生影响,导致混乱,然而数据挖掘技术的使用可以实现秩序的稳定,可以将工作人员之间的组织关系更加有序,通过区分使得组织关系有序,从而使得软件项目管理更加顺利。
3.2在开源软件中的应用
开源软件实质上是一个对带源代码的一种开放式应用,基于其开放性,相比其他软件,开源软件更受消费者的欢迎,因此这类软件多是免费类的软件,可是任何事情都是具有两面性的,由于其开放性使得消费者都比较欢迎,但是另一方面,这也加大了对各类软件进程中的管理难度,所以,这就需要根据实际情况,合力使用数据挖掘技术,从而有效提升开源软件的整体质量的提升。
3.3在机构代码中的应用
机构代码的程序代码主要是克隆代码,其指的是通过简单的福祉和粘贴从而对代码进行再次使用,对克隆代码的检测也是数据挖掘中应用最早的,目前对克隆代码的检测主要有以下几种方式,基于文本对比方法、基于标识符对比方法、基于度量的方法、基于程序结构表示的方法及运用潜在语义索引等方法。另外,还需要对横切关注点(Aspect)进行挖掘,之所以要进行挖掘,是由于部分的关注点在程序中的代码非常相似甚至是同一代码段。最后一点就是挖掘有用的代码的方法主要是通过记录的输入和关系检索,以及对关键词进行索引,还有一些方法,例如寻找相似的代码源和语义、基于构建交互关系图的方法及对所需构件进行形式化描述等等,还有我们经常使用的数据检索包括使用Google、百度等搜索引擎。
3.4软件故障中的应用
一般的数据挖掘技术,除了对必要的任务进行完成之外,还需要对实际的程序执行进行记录,并对具体说明进行挖掘,然后凭借程序对软件的故障进行判断,从而进行测定。另外,在对程序的挖掘过程中,我们应当基于一定的目的而展开,才能够对需要的信息进行跟踪,同时进行建模处理,通过一系列的措施能够对加深我们对程序的了解和后续工作。目前使用最为广泛的方式和种类是比较多的,但是主要包括基于规则以及自动化两类。
软件的正常运行,往往会基于多种因素而互相影响和作用,应而不可避免出现一定的概率出现事故,虽然基于传统的技术能够实现对故障的很好处理,可是基于整体性的程序分析而言,这个过程市比较繁琐的,应而其效率低下,定位的精准度也不高。特别是这些年以来,由于对新的定位技术研究力度不断加大,传统定位的方式进行了革新,并进一步加强了对程序的具体运行轨迹,通过两两对比的方式来找到故障的源头,从而在较大程度上提高了故障检测的准确性以及判断效率。
3.5在软件维护中的应用
数据挖掘技术对于软件的维护主要体现在对软件的改善方面,因为软件结构的优化主要是以对软件的设计和程序为基础的,而这些也都是对非编程语言的一种定量描述过程,所以在理解软件的过程中,我们需要通过跟踪软件需求的形式实现对需求文档的发现和设计的对应关系,这样能够有效保证软件的功能和行为是契合法律规定的,同时能够实现对重用代码的自动扥类,实现对代码的获取和区分,以及识别等聚类结果。
软件爱你的质量和可靠性常用方法是漏洞检测,就是一种通过构建软件测试程序,收集、清理和转换漏洞库中的数据,然后借助科学的数据挖掘模型加以训练和验证,从而对其进行定位、分类和描述,并重新对其进行测试,以及时发现和快速修正软件的漏洞和缺陷。另外,还可以利用软件工程进行数据挖掘,这种使用较多的就是克隆代码工具,在过程中发现重复出现的代码缺陷,从而为修复缺陷提供支撑性条件。这种软件程序环节后,应该对设计进行有效改善,然而由于工作任务较为繁重,所以可以通过一定的方法进行软件设计进行自动改善,这些都能够为数据挖掘提供良好的益处。
参考文献
[1]王祎菡.软件工程中数据挖掘技术的应用[J].电子技术与软件工程,2014(14):200.
[2]王刚,赵玥.软件工程数据挖掘研究进展[J].计算机光盘软件与应用,2014(7):78.