数据挖掘技术在软件工程的应用探索
2016-08-26孙洁
孙洁
[摘 要]当前是信息化的大数据时代,人们每天都生活在大量的数据中,生活和工作中信息无处不在,但如何能够在海量信息中定位自己的需求信息是现代人关注的焦。数据挖掘技术很好的解决了这个问题,不仅能够实现信息的定位还能在短时间内完成,大大的缩短了处理数据的时间。本文就以数据挖掘技术为中心点,首先对其概念进行简单的阐述,之后在此基础上分析了软件工程中的应用,以期能为相关专业的技术人员提供一定的技术参考。
[关键词]数据挖掘技术;软件工程;应用
中图分类号:TP311.5 文献标识码:A 文章编号:1009-914X(2016)17-0267-01
1.数据挖掘技术概述
所谓数据挖掘,主要指的是在大量的数据信息中利用科学、有效的算法第一时间获取到有用信息的筛选过程。大量的信息存在于生产和生活领域,使得人们在处理事情是无从下手,这样大大降低了人们的工作效率,也浪费了工作人员宝贵的时间。而这一问题通过数据挖掘技术的使用得到了很好的解决。
1.1 数据挖掘技术所采用的方法
在具体的操作中,数据挖掘技术会通过很多方法来使任务得以完成。具体的方法有如下几种:
1.1.1 遗传算法的使用
所谓遗传算法,主要是指基于生物自然选择与遗传激励的随机搜索算法,也是数据挖掘技术常用的一种操作方法[1]。遗传算法的有点就在于表面上看似无联系的事物,却能在事物模型间建立相关的练习,实现事物之间共同发展,现在生物界越来越重视的遗传基因等的研究,所以这种方法很受人们的欢迎。
1.1.2 采用决策树方法
这种方法主要用于对信息的分类和整合,在遇到大量的信息的时候,能够在短时间内找出关键的信息,能够使信息分类的快速化和简单化,并且保证了信息分类的准确度,但是此方法的不足之处就在于具有较差的抗噪性能,不能全面的来表述较为复杂的概念。
1.1.3 采用统计分析法
往往会利用回归分析和主成分分析等方法来分析数据库字段之间的关系。在字段之间的关系包括相关关系,函数关系也是其中的一种,不同的是函数关系可以用公式来表示,而相关关系则不能通过公示来表示关系,系统分析法的使用为这种关系的分析提供了便利。
1.1.4 采用可视化技术
可视化技术是采用一些图表来对数据进行表现,便于对数据的理解,比如,使用简单图形来展示存在于数据库中的多个数据,使研究者看起来一目了然,使单调的数据形象化,更容易掌握数据的相关信息。
1.1.5 采用神经网络方法
它模拟人脑神经元结构,以 MP 模型和Hebb学习规则为基础,用神经网络连接的权值表示知识,其学习体现在神经网络权值的逐步计算上。前馈式网络、反馈式网络和自组织网络是常用的三种神经网络模型,分别用于预测、联想记忆和聚类等。
2.数据挖掘技术在软件工程中的应用
2.1关于程序代码及结构方面的挖掘
①克隆代码检测的方法。克隆代码主要指的是根据软件工程运行需求,对某一代码段进行复制、粘贴,若有特殊需求,也可以对部分代码进行适当更改,对于上述代码的检测主要是为了避免故障传播,对系统进行简要维护,以此来满足软件系统运行需求。目前,克隆代码检测的方法主要包括4种,即文本对比、标识符对比、度量和程序结构[2]。每一种检测方法都有其不同的检测流程和判断依据,需要结合实际情况选取最佳的检测方法。
②Aspect 挖掘。Aspect 挖掘就是我们常说的横切关注点挖掘,在软件工程系统中,Aspect 挖掘是系统改造成面向方面软件所必须要处理好的重要问题。在此项问题的处理中,可供采用的方法有很多,最具针对性的就是度量分析法和形式概念分析法。上述两种方法可以利用候选集的重构将横切点关注挖掘相关问题有效解决。实际上,数据挖掘技术还可以在很多方面产生不错的影响。
③代码检索。在软件开发方法学中提倡着复用这个重要的原则,近年来有一个软件复用这方面领域里的很重重要的议题,也就是关于在本地或者是面向 WEB 这些代码库中检索出符合现阶段项目的代码之类的议题,已经出现了几种比较有代代表性的方式,比如分类存储并检索、基于输入-输出映射的检索、基于构件形式化描述、基于代码相似性等等方法,这些方式主要会涉及到有关于聚类、分类、语义分析等等几种比较主要的技术。由于其Web的应用范围不断的扩大,也就不再单单只有文档在其中,还有许多犹如 Google Cod 以及 Mica 等等类型的代码搜索引擎也随着那些 Web 中的可供参考的代码而出现
2.2软件项目管理中数据挖掘技术的应用
数据挖掘技术在项目管理中的应用主要体现在两个方面,即对组织关系的挖掘和对版本控制信息的挖掘。由于软件项目管理是一个全面而又系统的工程,因此,有关组织关系的挖掘包含了多个方面的内容,最主要的就是对人力资源的有效协调和分配。另一方面是对版本控制信息的挖掘,版本信息控制的功能主要是为工作人员查看版本信息提供方便,数据挖掘技术在此方面的应用一方面可以自动对系统修复情况进行检测,并在此基础上为系统提供警示作用,另一方面则可以避开很多常见错误,确保系统正常运行,以此来提高软件项目管理水平。
2.3故障检测中数据挖掘技术的应用
在软件工程系统不断优化与完善的今天,势必要对故障检测方法进行改进。数据挖掘技术的应用充分满足了这一需求。数据挖掘技术对故障的检测主要是从两个方面展开,分别为程序说明和交互模式。对程序说明进行挖掘主要是为了对于系统运行相关的信息进行跟踪检测,便于发现系统运行问题,从而做到对系统的有效检测和维护。就当前常用的挖掘方法来看,主要可分为基于规则和基于自动化两种。两种方法分别依据程序行为规则和API规则开展挖掘工作。
3.数据挖掘技术在软件工程中的应用方法
3.1关联方法
挖掘技术应用与软件工程中的关联方法,其规则在于发现大量数据中所具有的相关联系及有趣关联。并且关联规则具有两个重要特征,其一为支持度,表示为 P(A ∪B),表明 A、 B 两个子集在事物集中出现的概率是相同的;其二为置信度,可表示为 P(B|A),说明 A 在事物集中所具有的概率,同样 B 也会出现[3]。
3.2聚类方法
聚类方式的应用,顾名思义,便是把对象数据分为多个簇或类,并且保证统一类或簇中的数据的相似度较高,同时不同类或簇中的对象具有明显的差别。
3.3分类方法
分类方式的应用,主要是对离散值和分类标号进行操作,一般情况下,首先需建立起相应的模型,对其概念集和数据类集进行描述,之后应用模型完成分类
4.结语
综上所述,数据挖掘技术是软件工程向更加完善、优化方向发展的必然之路,更是时代发展的要求。随着社会信息化程度的不断加深,数据挖掘技术的应用将会更加的广泛。研究人员对此项技术也要引起重视,通过不断的研究和探索,进一步的提升其自身的水平及其应用的价值,为人类的不断发展,社会的进步体现更大的价值。
参考文献:
[1]李明江,唐颖,周力军. 数据挖掘技术及应用[J]. 中国新通信,2012,22:66-67+74.
[2]陈建桦. 数据挖掘技术在软件工程中的应用研究[J]. 硅谷,2014,01:73+51.
[3]刘玉峰. 数据挖掘技术在软件知识库中的应用研究[D].广西师范大学,2010.