数据挖掘招聘_软件工程数据挖掘研究分析
本文关键词:软件工程数据挖掘研究进展,由笔耕文化传播整理发布。
当前所在位置:中国论文网 > 政治论文发表 > 软件工程数据挖掘研究分析
软件工程数据挖掘研究分析
发布日期: 2014-05-14 发布:
2013年6期目录 本期共收录文章20篇
摘 要:计算机软件系统规模的不断壮大,以及构成的日益复杂,为软件工程的管理和控制活动带来了困难,而应运而生的数据挖掘技术为上述难题提供了妥善的解决方法,,其不仅可以便捷的获取有效信息,而且为知识智能型软件工程的实现提供了机遇。对此,本文对软件工程数据挖掘作了概述,并着重分析了其在软件工程中的应用。
中国论文网
关键词:软件工程;数据挖掘;代码缺陷
中图分类号:TP311.52 文献标识码:A 文章编号:1674-7712 (2013) 12-0000-01
广泛收集软件产品及其过程数据是软件开发者掌握软件相关信息的重要手段,也已成为当下的标准惯例,但在海量信息面前,仅凭手工活动显然难以奏效,这促使数据挖掘技术得以广泛应用,因其对提高软件开发质量和效率,增强其实用性与可信性具有很大的促进作用,因此软件工程数据挖掘不仅具有不容忽视的学术价值,而且应用前景十分广阔,值得我们深入研究。
一、软件工程数据挖掘概述
(一)基本含义
软件工程数据主要是指开发软件过程中所涉及的各类数据,如需求分析、可行性分析、设计等文档,开发商通信、软件注释、代码、版本、测试用例和结果、使用说明、用户反馈等信息数据,一般情况下其是软件开发者获取软件数据的唯一来源;而数据挖掘是指在海量数据中集中发现有用知识或信息的过程。
(二)工作原理
软件工程数据挖掘主要分为三个阶段,一是数据预处理阶段。二是挖掘阶段,主要运用分类、统计、关联、聚类、异常检测等一系列算法的过程。三是评估阶段,数据挖掘的意义在于其结果应易被用户理解,因此其结果评估主要分为模式过滤和模式表示两个环节。
二、软件工程数据挖掘应用分析
(一)数据挖掘在软件开发环节的应用
软件开发环节主要包括程序编写及其成果提交两大步骤,因此数据挖掘的应用可从这两点着手。
一是编写程序时,应在理解程序结构和功能的基础上检索和发现有用信息。
首先要在现有的代码库中搜寻符合要求的模式,即检索软件重用模式,鉴于手工寻找方式耗费精力效果差,因此可以在代码库中输入关键字,筛选出对应的代码段,并基于用户实际需求加以排序,以此便捷重用模式的寻找,但应保证所输入代码库的查询信息的属性、类型、方法符合规范,并以相关的启发式规则对其进行评分,然后将排序完毕的例程以及带有标注的代码段反馈给软件开发者。
其次应注意发掘上述模式的静态规则,主要包括调用、重载、多重继承等关系,具体应查看并记录具备上述关系特征的类间关系,然后借助Apriori等算法发现频繁项集,并利用递归测试对其进行细致划分,计算项间关联度的可信程度;由于与要求吻合的规则数量较多,因此可按照无用剔除规定对其进行局部修剪和全局裁剪;若查询的是某一类代码,可在遵循规则组的前提下以列表的形式对其进行排序,并通过建立AST图体现开发者所需的数据信息。
最后是充分利用动态规则,其是当下自动发现编程信息领域研究最为深入的一面,其典型应用方法如下:通过将挖掘对象设定为静态代码,使其hash函数为ID值,并将其映射后的序列存储到数据库中,利用FPClose算法生成I→(C?I)规则,即寻找公共子集,然后对程序中可能存在缺陷的代码段进行查找,以此保证数据挖掘的可靠性。
二是在修改提交的编程结果环节,该阶段不仅要排除其中的缺陷代码,还要保证其符合软件开发的行业规定,如标识、注释、函数设计等。在具体实践中用于定位缺陷代码的测试方式有很多,如利用以类为粒度的缺陷定位法,通过记录成员函数在数据中的执行信息,并对其通过失败率进行评分,以此发现缺陷所在。
(二)数据挖掘在软件维护环节的应用
软件维护环节的数据挖掘可以分为修复和改善两部分,其中修复维护的对象为软件的缺陷,而改善维护则关乎软件结构的调整和更改。
(1)软件修复环节
软件修复环节中的缺陷分派可以通过鉴别和评估软件缺陷程序,确定其修复的优先级,从而找到每个缺陷最合适的修复者。在缺陷自动分派方法中,通过将缺陷分派转化为文本类型的问题,以此采取措施加以修复,但其准确率较低,而通过强化检测重复缺陷报告技术,并在缺陷报告中增设执行和自然语言两种相似度信息,然后按照定义的向量维度描述软件缺陷,最后获取两种相似度的加权和,从而为缺陷选择合适的修复者,实验证明,该种方法的正确率为67%左右。
(2)软件改善环节
软件结构的优化应以理解软件设计和程序为前提,也可以简单的理解为借助非编程语言定量描述代码的过程。在理解软件的过程中,我们可以采用跟踪软件需求的方式在需求文档中发现与设计和条目文档具有对应关系的条目,以保证软件功能和行为符合相关法律规定,并自动对重用代码进行分类以获取、区分、标识程序的聚类结果,其中漏洞检测也是用于保证软件质量和可靠性的常用方法,即通过构建软件测试程序,收集、清理和转换漏洞库中的数据,然后借助科学的数据挖掘模型加以训练和验证,从而对其进行定位、分类和描述,并重新对其进行测试,以及时发现和快速修正软件的漏洞和缺陷。同时也可利用软件工程挖掘技术中最热门的克隆代码工具发现软件中重复出现的代码缺陷,以此为及时修复缺陷提供保障。在完成软件程序理解环节后,还应对其设计加以改善,鉴于该项工作任务繁重,因此可TIMNA方法实现软件设计的自动改善,在此基础上,掌握、归纳软件更改的先后关系,从而为挖掘其传播规律提供助益。
随着软件工程数据的日益复杂,对非传统性分析需求的逐渐增加,以及对数据挖掘结果的评价要求的不断提高,软件工程数据挖掘的算法会更完善,更有效,从而使检索和发现重用规则、描述软件行为、定位软件缺陷、自动评价软件设计等更为便捷、高效、可靠,同时机器学习、人工智能等数据挖掘技术也会取得更大进步。
三、结束语
总之,当下的软件工程数据挖掘发展的是如火如荼,具有很高的研究价值和实用价值,但在提取软件数据、挖掘算法、表示挖掘结果等方面尚不成熟,因此必须加大研究力度,使其朝着智能化、高效化、实用化方向发展,从而促进软件工程健康发展。
参考文献:
[1]郁抒思,周永康,关佶红.软件工程数据挖掘研究进展[J].计算机科学与探索,2011(10).
[2]吴戴林.软件数据挖掘的若干问题研究[D].广西师范大学,2009(06).
[作者简介]令瑞林(1992.1.28-),单位:北京邮电大学,职位:学生,学历:本科;高冰洁(1992.5.7-)单位:北京邮电大学,职位:学生,学历:本科。
本文关键词:软件工程数据挖掘研究进展,由笔耕文化传播整理发布。
本文编号:164956
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/164956.html