第一论文网免费提供电子商务毕业论文范文,电子商务毕业论文格式模板下载

软件工程数据挖掘技术的相关研究

  • 投稿我最
  • 更新时间2015-10-13
  • 阅读量647次
  • 评分4
  • 41
  • 0

文/刘乔辉

摘要:随着计算机信息技术和网络技术的快速发展,用户获取数据信息拥有了很多便利条件。借助数据挖掘技术,在软件工程中对数据进行分类、聚类、统计分析,发现潜在的数据、规则,指导软件工程的各项活动,从而达到改善软件产品质量、提升软件开发效率的效果。本文将就软件工程数据挖掘技术展开探讨。

教育期刊网 http://www.jyqkw.com
关键词 :软件工程;数据;挖掘技术

软件工程数据挖掘技术是指在海量数据库内使用已有的技术或新的数据挖掘算法,通过选取、分析、表述等一系列步骤,为软件开发者收集有价值信息的过程。为清晰掌握并管理软件开发的过程,软件开发商必须收集所需的数据,这是行业软件开发的惯例。想要完成上述工作,必须从大量的数据内提取所需的数据信息,收集和选取信息的过程就是数据挖掘过程。目前,数据挖掘技术在软件工程中得到广泛的应用,本文将介绍数据挖掘技术的相关知识及在软件工程的应用情况。

1、数据挖掘技术的分类及标准

1.1 数据挖掘的概念及其分类

数据挖掘是由海量数据中获取所需的有价值的数据信息,这一过程被称作“挖掘”或“捕捞。”数据挖掘就是验证驱动分析办法转向驱动分析数据。对驱动进行验证时,用户可以假设信息的存在,随之进行收集和分析,逐步验证原有假设成立。现阶段,数据存储规模极大、有一定的复杂性,单单采用验证驱动法无法把数据库所有的可用数据充分挖掘出来。发现驱动方法能够对海量数据实时有效的筛选,并自动化识别内部所隐藏的有用信息。进行数据挖掘过程中,对信息进行收集能帮助改进自身产品,所以进行数据收集时要使用各种软件度量标准[1]。数据挖掘技术主要可以分为:分类树技术、聚类技术、人工神经网络、关联技术、可视化数据挖掘技术等等。软件度量数据一般具有高耦合性、多维度的特点,软件工程进行数据挖掘时通常使用统计分析、神经网络、回归建模等特殊处理技术,实际应用中,挑选哪一种挖掘技术,对软件工程实践达到理想目标有重要影响。

1.2 软件工程度量标准

随着软件朝着工程化、大型化不断发展,开发者在这部分数据内获得有价值信息的难度明显增加。基于这种情况,软件开发者使用浏览文档、代码等传统方法,取得软件开发需要的数据信息这一方法已无法满足时代发展需求。软件开发商进行项目开发时,慢慢的把监测和控制软件过程中的各项指标实施量化处理,确保用户能够清晰了解产品整个开发过程。现阶段,度量数据受到更多的重视和关注,软件工程度量必须与数据收集、分析等过程合理结合[2]。设计产品的图表具有多样性的特点,一般采用静态形式进行描述,而图表会因时间的改变而变化,如此导致度量数据实际运用时受到一定的限制。例如:多数图表即使能清晰反应整个产品的生产过程及质量,但却无法当做有利的判断依据。软件工程因其在众多数据上的特殊性,为深入研究数据挖掘带来一定的制约和影响。

2、数据挖掘技术的基本操作流程

通常情况下,数据挖掘技术主要分为以下步骤:挑选数据、预处理、进行数据挖掘、吸收数据。数据挖掘过程具有交互性的特点,有时或许要再次选择数据或要对预处理过程进行改进,基于上述情况,进行数据挖掘时必须设计反馈环。数据挖掘的首要任务是把管理与目标反映至多个挖掘任务内,整个实现过程主要分为以下步骤。①评估产品:产品评估就是对软件产生的生产过程[3]。资源属性实施相对应的检查,且必须根据资源的各类属性,对未知属性进行赋值,必须注意所用的未知属性要进行量化处理,整个评估工作完工后,要对获取的属性值实施预测。②关联属性:关联发现可以识别某一内容中相互存在的关联属性。例如:可以把找到的软件开发属性与产品属性相关联的点找出来。③聚类过程:把某个结构不同的群体划分至另一个拥有相同结构的子群集合内,这一操作称为聚类过程。④数据可视化处理:数据可视化处理就是采用可视化方法对复杂信息进行描述,并对描述的内容进行可视化数据探查,使用数据可视化交互控制对海量数据进行分析和检视[4]。软件工程数据挖掘具体操作过程均满足一般性数据挖掘技术或领域的要求,通常来说,数据挖掘过程主要包括:数据预处理、挖掘、结果评估三个部分,数据挖掘流程如图1所示。数据预处理就是把没有加工的数据转换为适应挖掘出来的形式。预处理过程牵涉各种来源、格式的数据,把非格式的数据转变为格式化数据后,选取与目前数据挖掘任务相关的记录及特征,对数据进行清洗达到消除噪声的目的。挖掘操作就是在海量数据内找出反应本质性或规律性的信息。整个挖掘过程使用一系列的算法,挖掘任务包含频繁序列、关联规则、异常检测等方面的内容。结果评估是对用户展现有用的信息,难点之处为人所理解的信息与计算机理解、表达的信息由一定的差异,数据挖掘能便于人们进行理解。结果评估主要由:模式过滤、模式表示两个步骤,基于不同的设计任务,数据挖掘算法包括分类、估值与预测、聚类、异常检测等步骤。

3、软件工程数据挖掘发展中存在的问题

软件工程数据挖掘的操作过程与传统数据挖掘有一定的相同之处,这是数据挖掘技术的一种特殊形式,该过程主要有预处理、数据挖掘、评估结果三个环节。软件工程数据挖掘对比传统数据挖掘有自身的特殊性,其表现如下:

3.1 数据复杂性更大

软件工程数据不单有软件报告及版本信息等相关的结构化数据,也包含大量的代码、注释这一类的非结构化数据。这两种不相同的数据结构无法采用同一算法展开运算,这两类数据信息又具有极为重要的联系,导致整个工程的数据复杂性明显增大。

3.2 分析结果具有特殊性

传统数据挖掘得到的结果一般通过多种结果形式呈现出来,例如:报表、文字等,软件工程数据挖掘不单单要为用户提供相应的统计结果,也必须给开发软件人员提供详细具体的例子,为其设计结构提供所需的信息。所以,软件工程挖掘会对新型的数据结果提交相应的方法[5]。

3.3 结果评价无法统一

传统数据挖掘技术已经形成相对成熟的评价指标,但从软件工程数据挖掘的角度来说,软件开发人员所需的信息具有复杂性、具体化的特点,相对应的表示方法也呈现多样化,彼此之前无法展开比较,就很难得出相对统一的评价结果。因此,软件工程数据挖掘的难点是在数据预处理和表述挖掘结果这两个环节,深入分析软件开发过程中出现的问题并进行有效解决尤为重要。

4、软件工程数据挖掘技术的发展探讨

近些年,数据挖掘技术被广泛应用在软件工程中,在软件工程内运用数据挖掘能提升软件系统的维护效率,也在一定程度上增加系统的稳定性。

4.1 编程中的数据挖掘

编程作为开发软件的重要内容,对代码进行编写时,开发者要充分理解需要编程代码的结构与功能,根据自身的理解在数据库内选出有价值的信息。通常编程需要的信息分为以下部分:①开发软件者在已有代码库中找出与需要的代码结构、功能相似的、可以重用的模式,如数据结构、对象、方法等等[6];②开发者能够在数据库内找到重用某模式的静态规则,例如:类的方法、继承关系等等;③开发者深入了解分析重用模式的规则,如:API调用顺序。

4.2 开发开源软件的数据挖掘

开源软件是指源代码开发的软件,这一种软件是一种免费为客户提供服务的模式,这是因其免费性的原因,对开源软件的管理和控制比较困难,此时采用数据挖掘技术能提升开源软件的质量。如:牛津大学设计的数据挖掘系统,可以实时跟踪并管理系统的使用者,在一定程度上提升开源软件的使用效率。

4.3 程序代码中使用的数据挖掘

程序代码就是指克隆代码,这种代码是采用复制、粘贴操作可以重复使用的代码。在克隆代码内使用数据挖掘进行检测也比较早,对于克隆代码进行检测主要采用以下形式:文本对比法、基于度量方法、使用潜在语义索引等办法。但在克隆代码内使用数据挖掘还不够成熟,主要因数据挖掘时必须把语义挖掘考虑其中[7]。同时,要对横切关注点进行挖掘,横切关注点使用的挖掘方式较多,例如:对代码文本进行分析过程中,能根据不同的特点划分为基于文本与类型的分析、基于聚类分析法、形式概念分析法等。分析调用关系时候,可以使用扇入分析技术或基于耦合与Page Rank度量办法展开数据挖掘。

4.4 检测软件故障使用数据挖掘技术

数据挖掘技术可以根据程序的执行经历挖掘至程序的规约及交互模式中,从而准确定位和检测软件故障。程序说明中的挖掘技术是指为信息跟踪实施逆向建模,从而强化程序的理解及相应的维护工作。现阶段,通常使用的挖掘方式主要包括基于规则和自动化挖掘这两种形式。基于规则挖掘是根据程序行为找寻相应的规则并采用时态逻辑进行表达,自动化挖掘方式是发展比较成熟的API规则挖掘方法。传统定位软件故障是使用程序切片,这种方式比较复杂,容易出现故障定位不准的情况。随着传统定位方式的逐步改进,目前使用比较成功的是采用程序谱抽象描述程序运行轨迹,并把运行正常的软件与故障运行状态进行对比,根据两者的差异判断故障来源,这些新型的数据挖掘技术能有效提升软件故障检测的准确率和效率。

4.5 软件管理中使用数据挖掘技术

软件项目管理中主要在组织关系和版本控制信息两个方面使用数据挖掘技术,软件项目管理是一项比较复杂的工程,人员组织关系挖掘重点在于合理协调和分配人力资源。如:某一项目或许要有成千上百人参与其中,这个参与过程各个人员需要通过电子邮件、文档等实施交互,交互过程中容易出现秩序混乱的情况,数据挖掘技术能合理区分工作人员之间的组织关系,便于进行项目管理。版本控制能详细记录整个文件内容的变化情况,便于用户查看版本修订状况,把数据挖掘技术应用到版本控制信息内能降低系统后期维护成本。数据挖掘及时可以为日常维护软件系统提供警醒作用,部分挖掘数据能清晰找寻系统修复过程中存在的错误,根据找寻的错误记录便于软件设计者及时避开常见的错误,提升软件项目的修复和管理水平。

结语

总之,数据挖掘技术广泛应用在分析代码、软件故障检测、软件项目管理等方面,能有效提升软件工程的管理和控制能力。值得注意的是,目前数据挖掘技术的研究还不够成熟,必须不断加强软件工程数据挖掘技术的研究,促进软件更好地开发和管理。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 李由.基于DMX语言的数据挖掘算法包原型系统的设计与实现[D].华东师范大学,2010.

[2] 孙雪娟.基于Web2.0和数据挖掘技术的软件专业教学系统设计[J].软件导刊,2013,(12):121-122,123.

[3] 金莲花.数据挖掘在软件缺陷管理中的研究与应用[D].长春理工大学,2010.

[4] 张连育,吕立.基于策略模式的中医数据挖掘平台的设计与研究[J].小型微型计算机系统,2011,32(7):1406-1411.

[5] 毛澄映,卢炎生,胡小华等.数据挖掘技术在软件工程中的应用综述[J].计算机科学,2009,36(5):1-6,26.

[6] 高亚宁.基于数据挖掘的软件测试技术研究[D].北京交通大学,2011.

[7] 刘磊,宋晓玲,陈亮等.基于图像数据挖掘的软件系统研究[J].泰山学院学报,2008,30(6):83-85.

作者简介:刘乔辉,广东轻工职业技术学院,讲师、软件设计师,主要研究方向电子商务、计算机软件。