软件工程数据挖掘研究分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程数据挖掘研究分析.doc

软件工程数据挖掘研究分析   摘 要:计算机软件系统规模的不断壮大,以及构成的日益复杂,为软件工程的管理和控制活动带来了困难,而应运而生的数据挖掘技术为上述难题提供了妥善的解决方法,其不仅可以便捷的获取有效信息,而且为知识智能型软件工程的实现提供了机遇。对此,本文对软件工程数据挖掘作了概述,并着重分析了其在软件工程中的应用。   关键词:软件工程;数据挖掘;代码缺陷   中图分类号:TP311.52 文献标识码:A 文章编号:1674-7712 (2013) 12-0000-01   广泛收集软件产品及其过程数据是软件开发者掌握软件相关信息的重要手段,也已成为当下的标准惯例,但在海量信息面前,仅凭手工活动显然难以奏效,这促使数据挖掘技术得以广泛应用,因其对提高软件开发质量和效率,增强其实用性与可信性具有很大的促进作用,因此软件工程数据挖掘不仅具有不容忽视的学术价值,而且应用前景十分广阔,值得我们深入研究。   一、软件工程数据挖掘概述   (一)基本含义   软件工程数据主要是指开发软件过程中所涉及的各类数据,如需求分析、可行性分析、设计等文档,开发商通信、软件注释、代码、版本、测试用例和结果、使用说明、用户反馈等信息数据,一般情况下其是软件开发者获取软件数据的唯一来源;而数据挖掘是指在海量数据中集中发现有用知识或信息的过程。   (二)工作原理   软件工程数据挖掘主要分为三个阶段,一是数据预处理阶段。二是挖掘阶段,主要运用分类、统计、关联、聚类、异常检测等一系列算法的过程。三是评估阶段,数据挖掘的意义在于其结果应易被用户理解,因此其结果评估主要分为模式过滤和模式表示两个环节。   二、软件工程数据挖掘应用分析   (一)数据挖掘在软件开发环节的应用   软件开发环节主要包括程序编写及其成果提交两大步骤,因此数据挖掘的应用可从这两点着手。   一是编写程序时,应在理解程序结构和功能的基础上检索和发现有用信息。   首先要在现有的代码库中搜寻符合要求的模式,即检索软件重用模式,鉴于手工寻找方式耗费精力效果差,因此可以在代码库中输入关键字,筛选出对应的代码段,并基于用户实际需求加以排序,以此便捷重用模式的寻找,但应保证所输入代码库的查询信息的属性、类型、方法符合规范,并以相关的启发式规则对其进行评分,然后将排序完毕的例程以及带有标注的代码段反馈给软件开发者。   其次应注意发掘上述模式的静态规则,主要包括调用、重载、多重继承等关系,具体应查看并记录具备上述关系特征的类间关系,然后借助Apriori等算法发现频繁项集,并利用递归测试对其进行细致划分,计算项间关联度的可信程度;由于与要求吻合的规则数量较多,因此可按照无用剔除规定对其进行局部修剪和全局裁剪;若查询的是某一类代码,可在遵循规则组的前提下以列表的形式对其进行排序,并通过建立AST图体现开发者所需的数据信息。   最后是充分利用动态规则,其是当下自动发现编程信息领域研究最为深入的一面,其典型应用方法如下:通过将挖掘对象设定为静态代码,使其hash函数为ID值,并将其映射后的序列存储到数据库中,利用FPClose算法生成I→(C?I)规则,即寻找公共子集,然后对程序中可能存在缺陷的代码段进行查找,以此保证数据挖掘的可靠性。   二是在修改提交的编程结果环节,该阶段不仅要排除其中的缺陷代码,还要保证其符合软件开发的行业规定,如标识、注释、函数设计等。在具体实践中用于定位缺陷代码的测试方式有很多,如利用以类为粒度的缺陷定位法,通过记录成员函数在数据中的执行信息,并对其通过失败率进行评分,以此发现缺陷所在。   (二)数据挖掘在软件维护环节的应用   软件维护环节的数据挖掘可以分为修复和改善两部分,其中修复维护的对象为软件的缺陷,而改善维护则关乎软件结构的调整和更改。   (1)软件修复环节   软件修复环节中的缺陷分派可以通过鉴别和评估软件缺陷程序,确定其修复的优先级,从而找到每个缺陷最合适的修复者。在缺陷自动分派方法中,通过将缺陷分派转化为文本类型的问题,以此采取措施加以修复,但其准确率较低,而通过强化检测重复缺陷报告技术,并在缺陷报告中增设执行和自然语言两种相似度信息,然后按照定义的向量维度描述软件缺陷,最后获取两种相似度的加权和,从而为缺陷选择合适的修复者,实验证明,该种方法的正确率为67%左右。   (2)软件改善环节   软件结构的优化应以理解软件设计和程序为前提,也可以简单的理解为借助非编程语言定量描述代码的过程。在理解软件的过程中,我们可以采用跟踪软件需求的方式在需求文档中发现与设计和条目文档具有对应关系的条目,以保证软件功能和行为符合相关法律规定,并自动对重用代码进行分类以获取、区分、标识程序的聚类结果,其中漏

文档评论(0)

ganpeid + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档