数据挖掘技术在软件工程中的应用探究

数据挖掘技术在软件工程中的应用探究

广州航天海特系统工程有限公司广东省广州市510663

摘要:软件技术随着信息技术发展而快速发展,但是其可控性并不是特别强。软件在应用过程中会产生大量数据,数据作为一种宝贵的资源,有效的利用可以带来价值增值。作为软件开发行业,数据挖掘技术应用则实现了数据资源的有效利用,通过对其中规律进行研究,为软件工程提供相应指导,并且对于系统故障能够有效处理,成本评估的有效性也能够提升。

关键词:数据;挖掘技术;软件工程;应用探究

导言:在当前我国科学技术全面发展背景下,软件技术得到了各个领域的广泛应用,但是从自身可控性角度来说,并不显著。在运用软件时,将会形成大规模的数据,而数据作为一项价值性较高的资源,可以给各个领域创造更好的效益。针对软件开发企业来说,数据挖掘技术的运用,可以促进数据资源的应用效果,同时实现系统故障的及时处理,从而达到成本评估时效性提高的目的。下面,将进一步对数据挖掘技术在软件工程中的应用进行阐述和分析。

1、背景

随着网络通信技术的不断发展,各种信息技术也需要更加具有针对性的软件提供服务,并且针对网络中的信息进行整合及过滤。传统的软件工程领域普遍存在数据处理问题,导致信息不能稳定传输,软件运行出现错误和卡顿,使得用户体验很差。在软件工程的开发过程中采用新型数据挖掘技术,可以很好避免这种问题,保证信息数据正确传输,提升处理数据的能力,更好过滤和收集信息,保证信息来源的准确性。数据挖掘技术是目前软件工程领域的一种新型实用性手段,可以保证信息来源的准确性和安全性,提升数据的转化效率。人们对数据信息的要求越来越高,数据挖掘技术可以很好满足用户的需求。利用数据挖掘技术,可以收集更多的有用信息存放到数据库中,过滤掉无用和危险信息,如病毒和广告等,同时,可以整理数据信息,提升文档的整体安全性,正确引导软件工程领域中的软件开发。

2、软件工程数据挖掘的概念和特点

2.1软件工程数据挖掘的概念

在海量的数据中挖掘出所需要的信息,这个过程就叫数据挖掘;在软件工程领域中通过一种新的自动地搜寻,得到想要获取的数据,这就是软件工程数据挖掘。从专业角度出发,对软件工程的开发和策略所存储的结构化数据和非结构数据的挖掘也是软件工程数据挖掘,其中在搜索信息数据时,采用了已有的陈旧的或者开发新的技术手段或者算法。

2.2软件工程数据挖掘的特点

区别于传统的数据挖掘,软件工程数据挖掘有自己的特色。传统的数据挖掘包含软件报告及版本信息等相关结构化数据,软件工程数据挖掘所得到的系统数据还包含了大量的代码、注释这一类非结构化数据,两者在算法上不一致,但存在密切的联系,因此,数据的复杂性是软件工程数据挖掘的一大特点。传统的数据挖掘所需要具备的功能是为用户提供经由报表子系统的处理后的测试结果,软件工程数据挖掘不单需要这种结果,更需要为用户提供符合或者推翻结果的相关实例或软件缺陷定位方面的信息。

2.3数据挖掘的概念

数据挖掘(DataMining)是从数据仓库中提取出具有一定正确性的、新颖的、可利用的,并能被人理解的模式的高级处理过程。它是一种知识发现的形式,依赖计算机对数据进行穷举搜索,以发现模式和趋势。知识首先要被多次提取,然后筛选出相关数据,接下来再选用合理的算法进行处理,进而达到提高学习效率的目的。数据挖掘的目的是为了得到好的、实用的思想,同时也可以对已有的知识进行验证和拓展。

3、在软件工程中应用存在的问题

3.1信息数据自身存在的复杂性

通常情况下,软件工程涉及的数据主要划分为两种类型,一个是结构化数据,另一个是非结构化数据。其中非结构化数据在其中起到了关键性作用,而对结构化数据带来的影响一般以软件版本数据为主。结构化数据和非结构化数据在某种程度上有着直接的关联。要想促进数据的高效应用,需要借助对应技术来探索其规律。数据挖掘技术刚好可以迎合其要求。在数据挖掘技术的作用下,实现结构化数据和非结构化数据的整合,进而促进其应用价值的提高。

3.2在评价标准方面缺乏一致性

通常情况下,数据挖掘技术广泛的运用在实际生活中,利用数据挖掘技术,可以实现对真实状况的评估,进而促进结果优化。然而,因为缺少统一标准,使得软件数据更具一定的繁琐性。而在表达性方式上又含有一定差异。数据获取人员不能对数据应用加以比较,而数据不具备统一标准的主要因素就是评价方式不统一。

4、软件工程中数据挖掘技术的具体应用

软件工程中所应用设计到的数据信息一般都会在储存在软件代码库中,也就是我们通常所说的数据库中。如果这些数据信息得以充分利用,可以最大程度地提高软件系统开发人员的工作效率,帮助系统工作人员对系统框架有更进一步的了解。在软件工程中,每一次对统一软件的开发循环,都会产生大量的数据,而这些数据就是软件系统开发时所需要挖掘的数据。数据挖掘技术在软件工程中的应用主要体现在开源软件开发、软件工程管理、软件故障检测以及建立数据信息软件中等。

4.1数据挖掘技术在开源软件设计中的应用

开源软件(OSS)是源代码开放软件,对大多数客户免费开放使用,可以提高信息资源利用率。但也正因为开源软件的开放性特点,使源数据管理和控制难度较大。数据挖掘技术在开源软件设计开发过程中的应用,能够有效解决这方面问题,提高软件开发质量。许多分布式数据挖掘系统已经在开源软件开发项目中得到了应用,通过对大规模系统和多个开源软件进行挖掘,并对系统开发人员和使用人员进行跟踪管理,在提高开源软件使用率的同时,为开源软件质量提供保障。

4.2数据挖掘技术在软件程序开发中的应用

软件程序开发是软件工程的核心环节,对软件工程开发效率和产品功能性能有直接影响。为提高软件程序开发速度,在目前的软件工程中,广泛应用克隆代码技术,即对复用率较高的程序模块进行简单的复制粘贴,实现代码的再次利用,从而降低重复性编程。数据挖掘技术在程序开发过程中的使用主要是指对克隆代码进行检测,这也是数据挖掘技术的早期应用领域之一。克隆代码检测方法主要包括文本比对法、标识符比对法和度量比对法等。

对横切关注点(Aspect)进行挖掘也是数据挖掘技术的重要应用方向。在大规模程序开发项目中,许多关注点的程序代码非常相似,或为同一段代码,需要对其进行深度挖掘。数据挖掘技术为其提供了多种挖掘方式,可以在代码文本分析过程中,采用概念分析方法、聚类分析方法以及基于方法执行关系的挖掘方法等。在进行调用关系分析时,还可采用数据分析软件,利用基于耦合和度量的挖掘方法进行分析。

此外,数据挖掘技术还可以在软件程序开发过程中用于挖掘数据库的有用代码。具体方法包括对输入输出关系记录进行检索、利用关键词进行索引、根据代码源和语义的相似性进行检索、利用构建交互关系图进行索引以及采用形式化描述方法进行数据挖等。其原理与百度、谷歌等搜索引擎的功能原理类似。

4.3数据挖掘技术在软件故障检测中的应用

在软件工程项目开发过程中,程序设计不可避免地会出现一些漏洞,或因编程人员的操作失误,使软件功能受到影响。需要对软件故障问题进行快速定位和检测,从而尽快对程序代码加以完善,确保各项功能的正常发挥。采用数据挖掘技术主要通过对信息进行跟踪检测,或采用逆向建模方法,及时发现软件故障问题,提高程序的可维护性。

数据挖掘技术在软件故障检测中的应用主要包括两种方式,一是基于规则的挖掘方式,二是基于自动化的挖掘方式。基于规则的挖掘方式是根据程序行为总结运行规则,并采用时态逻辑进行表达。基于自动化的挖掘方式具体是指基于自动机抽象表示的API规则挖掘方法。两种方法都能够有效发现软件故障问题。传统的软件故障监测主要采用程序切片定位技术,不仅过程较为复杂、定位准确性低且耗时较长。采用数据挖掘技术代替传统软件故障监测方法,可以有效提高故障检测效率,同时对故障点进行精确定位,为软件检测和调试提供方便。

4.4数据挖掘技术在软件项目管理中的应用

在软件工程中,软件项目管理对产品最终的开发质量具有重要影响,需要采用科学的项目管理方法,对软件开发流程进行合理规划,并控制好每个环节的软件开发质量,从而实现预期的软件开发目标。数据挖掘技术为软件项目管理提供的帮助主要集中在以下两方面。

4.4.1对版本控制信息进行挖掘

在软件工程中,版本控制信息主要包括文件内容的变化记录,为用户查看版本修订情况提供方便。在版本控制信息管理中引入数据挖掘技术,可以为系统维护提供警示信息,挖掘系统修复中存在的错误记录,帮助设计者成功规避设计漏洞,降低后期的软件维护成本,提高项目管理水平。

4.4.2对项目组织关系进行挖掘

随着软件工程规模的不断提升,工程项目管理越来越复杂,在进行人员组织安排和工作协调时,具有较大难度。通过采用数据挖掘技术,深入分析人员组织关系,从而对人力资源进行高效调配,可以在降低项目人力成本的同时,确保项目的高效运转。比如,在项目开发过程中,人员之间的交流主要通过电子邮件和项目文档进行,在管理过程中容易出现混乱,采用数据挖掘技术梳理人员组织关系,可以确保项目管理工作的顺利开展。

4.5版本信息

在版本信息中应用数据挖掘系统时,需要注意项目参与者的相关档案必须是相同的,这样一来,不仅为信息挖掘提供了方便,也对系统更新来说较为方便。利用版本信息对开发软件以及系统管理进行控制在软件工程中是一件十分寻常的工作,通过对不同版本信息的利用,可以获取到数据信息和资源,还能对其存在的漏洞和问题进行检查。随着数据挖掘系统在软件工程中的应用越来越广泛,软件技术人员对系统的把控也有所增强,推动了软件的良好开发。

4.6面向项目管理数据集的挖掘

软件开发工作到目前已经是将多学科集中于一体。如经济学,组织行为学,管理学等。对于软件开发者而言,关注的重点除过技术方面革新外,同时也需要科学规范的管理。除过对于版本控制信息挖掘外,还有人员组织关系挖掘。对于大规模的软件开发工作而言,对人力资源的有效分配与协调也是软件工作领域需要面对的问题。例如在大型系统开发过程中,往往会有许多人参与其中,人员之间需要进行沟通交流。交流方式包括了面对面沟通,文档传递,电子信息等。通过对人员之间的关系进行挖掘,有利于管理工作开展。员工群体存在的网络是社会网络。通过人员合理组织与分配,将会影响到项目进度,成本,成功的可能性。而对该方面实施研究通常采用的是模拟建模。

5、未来软件工程数据挖掘的发展方向

自软件工程数据挖掘技术划分了不同方向后,其研究工作进行得如火如荼,每个方向的研究都有或多或少的成果,其对软件开发的效率及质量的影响也极大。如今软件工程数据挖掘利用多是一些陈旧的方法,不能与时俱进,但现如今,机器学习有方法越来越好,并且探索出一些新型的学习算法为其所用,如流形学习、主动学习。检索的方式也发生了巨大变化,以往必须通过精准的关键词进行检索,返回的内容也只是简单句,现如今可以通过自然语言进行检索,并且自然语言也不受传统格式地限制,完整的文档也可以成为其返回的内容。

6、结束语

从目前软件工程领域发展状况来看,软件工程的发展非常迅速,但是高速发展带来的各种技术难题也在不断增加。为了使软件开发过程更加准确,可以利用数据挖掘技术处理软件开发过程,可以较好保证软件开发的稳定性。随着社会迅速发展,数据挖掘技术也在不断发展,软件工程中已广泛运用这种技术,提升了经济效益。因此,应大力支持数据挖掘技术的发展,并且在软件工程领域广泛运用数据挖掘技术,促进其进一步发展。

参考文献:

[1]李红兰.试论数据挖掘技术在软件工程中的应用综述[J].电脑知识与技术,2016,12(34):98-99.

[2]耿正熙.数据挖掘技术在软件工程中的应用研究[J].信息通信,2016(11):85-88.

[3]雷蕾.关于数据挖掘技术在软件工程中的应用综述[J].电子测试,2014(2):128-129.

[4]李莹.数据挖掘技术在无线传感网络中的应用[J].电子技术与软件工程,2015(15):205-206.

[5]鲁静,付郁.数据挖掘技术在气象数据中的应用[J].电子技术与软件工程,2015(21):186.

标签:;  ;  ;  

数据挖掘技术在软件工程中的应用探究
下载Doc文档

猜你喜欢