数据挖掘在软件工程中的应用解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例子: strathcona是根据上述启发式规则开发的一个eclipse中的插件,他的作用是根据开发者查询的类或方法,返回三样东西:?代码片段,?代码片段的结构化说明,?返回的代码片段和查询的类/方法之间的联系。 Logo Logo 数据挖掘在软件工程中 的应用 Logo 前言 目录 1 技术挑战 2 软件开发阶段的数据挖掘 3 重用模式的检索 3.1 展望 4 静态规则的发现 3.2 动态规则的发现 3.3 Logo 前言 软件工程数据挖掘 在海量的软件工程数据中利用已有的技术或者 开发新的数据挖掘技术和算法,经过提取、分析、 表示等步骤,发现对软件开发者有用的信息/知识 的过程。 Logo 针对不同的任务, 数据挖掘算法主要可以分为 以下几类[1] (1) 分类:分类算法根据给定的类别和一批已标注类别的数据, 训练出一个分类器。分类器将被用来对类别未知的数据进行分类。代表性分类算法包括朴素贝叶斯分类、决策树、kNN(k-nearest eighbor)、SVM(support vector machine)等。 (2) 估值与预测:根据一组已知数据和相应的输出, 估计一个未知数据的输出, 或给定输出, 估计相应的输入数据。遗传算法是常用的估值算法之一。 (3) 频繁子序列与关联规则:对于以序列集形式存在的数据集, 频繁子序列算法如 Apriori、CloSpan(close sequencial pattern)、FPClose等 (4) 聚类:聚类算法对大量未标注数据进行归类。与分类算法不同的是, 聚类算法的初始状态不存在给定的类别, 也不存在已标注的数据。典型的聚类算法有 k-Means等。 (5) 异常检测:指从大量数据中获取与大多数数据分布和产生模式不一样的数据及其隐含的分布或模式。软件缺陷可以看成是正常代码中的异常模式 (6) 复杂数据挖掘算法:指针对结构复杂数据如树/图/网络结构数据、文本、视频、音频及其混合数据等的信息提取和数据挖掘算法。例如, 图同构检测算法等。 Logo 技术挑战 (1)数据复杂:软件工程数据可以分为结构化数据和非结构化数据两大部分, 前者包括缺陷报告和版本信息等,后者包括代码、注释和文档等。两者不能适用相同的算法。同时,两类数据之间又有重要的联系和对应关系。例如,一个缺陷报告对应着包含相应缺陷的代码段。为了挖掘这样的复杂数据,需要开发新的分析算法, (2)非传统分析:数据挖掘的最后步骤和最终目的是把所得到的信息/知识提交给用户,在传统的数据挖掘应用领域中,如电子商务和银行业,信息提交手段包括文字、图表等形式,而软件开发者需要的信息远不止一个统计结果,为了推进软件开发的进程,他们需要具体的实例、编程模板、缺陷定位、软件设计结构的刻画等信息。因此, 软件工程数据挖掘需要研究新的提交信息/知识、 展示和评价信息/知识的手段和方法。 (3)挖掘结果评价标准:传统的数据挖掘应用已经形成了成熟的结果表示和评价体系,而软件工程数据挖掘并非如此。软件开发者所需的信息非常具体而复杂,相应的表示方法也多种多样,彼此之间很难比较,也难以定量地分析数据挖掘结果.因此,一些研究者将数据挖掘结果与缺陷检测定量地联系起来。另一些研究者则提出了自己独特的方法。 。 Logo 软件开发阶段的数据挖掘 在编写代码的过程中,开发者对所要编写的代码和功能理解后,按照自己的理解在软件工程数据库中寻找有用的信息。一般分为以下三类: 第一,开发者在已有的代码库中寻找所需的代码结构,包括代码结构、功能相近的、可重用的模式,包括数据结构、模块、对象、方法等。 第二,开发者在数据库中寻找重用该模式的静态规则,如类的属性,方法和继承规则。 第三,开发者进一步寻找重用模式的动态规则,如API的调用顺序等。 Logo 自动获取重用模式信息存在的问题 用户对所需软件结构和功能智能用文字或结构图表示,如何让计算机理解自然语言和图。 计算机返回给开发者的一般都是代码,数量庞大。如何处理返回的信息,使之接近于开发者理解的形式。 Logo 软件重用模式的检索 最基本的重用问题是开发者知道所需的 class 和 method, 但不知道调用这一方法所需遵循的模 式。手工寻找重用模式的方法需要大量浏览包含已 知关键字(类或方法的标识符)的代码, 根据经验在 其中选择可能的重用模式, 不断尝试所选模式。其 中, 必然有许多代码与用户所需的模式无关, 这种 浏览和尝试会浪费开发者大量的时间和精力。 因此, 数据挖掘技术根据已知关键字从代码库中搜索

文档评论(0)

南非的朋友 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档