演化软件的特征定位方法精要

上传人:我** 文档编号:117155529 上传时间:2019-11-18 格式:PPTX 页数:10 大小:1.74MB
返回 下载 相关 举报
演化软件的特征定位方法精要_第1页
第1页 / 共10页
演化软件的特征定位方法精要_第2页
第2页 / 共10页
演化软件的特征定位方法精要_第3页
第3页 / 共10页
演化软件的特征定位方法精要_第4页
第4页 / 共10页
演化软件的特征定位方法精要_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《演化软件的特征定位方法精要》由会员分享,可在线阅读,更多相关《演化软件的特征定位方法精要(10页珍藏版)》请在金锄头文库上搜索。

1、演化软件的特征定位方法 摘要 确定演化活动潜在影响的过程称为特征定位。特征定位已经被公认为影响软件 演化项目成败的一个关键因素,如何利用程序的领域知识促进特征定位的准确性已 经成为当前研究的一个重要问题。该方法提取出软件源代码中的特征,并对提取后 的特征进行主题分析,然后通过输入查询语句定位出被修改的源代码。利用现有的 开源软件进行实验,并将实验结果与对应开源软件的Benchmark进行对比,结果 表明所提出方法的精确度有所提高,可以进行软件特征的定位。实验结果中,平均 查全率达到69.16%和100%,平均查准率达到1.28%和 2.43%,平均调和平均数 达到 2.50%和 4.72%,性

2、能较对比方法有较大的提高。 CONTENTS 01引言 Part One 02 软件特征定位方法 Part Two 03 实验数据 Part Three 04 实验测试与结果分析 Part Four 05 Part Five 实验总结及未来研究方向 01 引言 Part One 特征是指软件系统中被需求所定义和被使用的一个功能。 建立软件特征与源代码之间映射关系的过程称为特征定 位。特征定位是顺利实现软件演化意图的前提之一。 02 软件特征定位方法 Part Two 本文研究思路大致分为3个过程,如图1所示:主题语料获取;主题建模;特征定位。3个过程具体步骤将在 2.12.3节中介绍。 2.1

3、 主题语料获取 本文方法原始实验数据为软件的源代码。源代 码中包含了很多文件信息,例如图片、XML ,甚至在代码文件内都有符号、关键字等,这 些信息对描述软件功能的意义并不大,若直接 采用源代码进行实验分析,就会存在大量无用 的信息,实验结果的精确度将会受到很大的影 响。考虑到源代码中很多都是信息量不大的代 码功能语句、关键字等,就需要对源代码进行 处理。 本文实验数据的处理主要有以下4个步骤: 表1为提取特征后部分文件名及其内容的示例。 (1)通过相关的网站下载同一个软件两个不同版本 的源代码。 (2)提取出两个版本软件源代码中的特征(本文主 要是提取变量名、方法名和注释),把提取后的特 征

4、以类为形成一个单独文件的基本单位,并以该类 所在的包的名字加上其类名对该文件进行命名。 (3)考虑到版本间的有些更新删除了某些功能,为 了提高结果的精确性,需要整合两个版本的特征。 因此在处理特征上,本文采取了将低版本中有而高 版本中没有的特征加入到高版本中。具体操作为: 若低版本中有而高版本中没有的文件,则直接把该 文件拷贝到高版本中;若某个文件在低版本和高版 本中均存在,则以行为基础,找出低版本中有而高 版本中没有的行,加入到高版本的该文件中。 (4)预处理,去除停词(类似“this”、“the” 等)和词根还原(例如将“broken”还原为 “break”)。这样可以减少文件的内容,提高

5、了主 题模型生成结果的精度。 2.2 主题建模 主题模型是在自然语言处理和机器学 习领域,用来从一系列文档中提取主题的一 种概率统计模型。从更直观的角度来理解, 就是一篇文章会有一个中心思想,从而会有 一些与该中心思想相关的词汇频繁出现。 通过对从源代码中提取的特征采用主题模型进 行建模后,可以得到主题和词之间的概率模型。表 2为生成的概率模型示例。 2.3 特征定位 选取一条更新报告,并对该条报告做过滤 处理,利用上一步生成的概率模型,计算更新 报告和每一个主题的相似度。对计算出来的相 似度排序,根据排序结果,选取相似度最高的 一个或多个主题所包含的主题词,统计每一个 特征文件中这些主题词出

6、现的次数和该文档的 总词数,使用“出现率”这一指标来对所有特 征文件进行排序,通过排序结果,确定哪些文 件被修改,进而进行特征定位。 03 实验数据 Part Three 数据是实验最重要的一个部分,因此源数据的获取情 况直接关系到最终实验结果的好坏。本文方法中,实验数 据是软件的源代码,为了保证实验结果的可靠性和客观性 ,同时也要提高实验结果的精确性,就需要获取到完整、 有效的软件源代码。 04 实验测试与结果分析 Part Four 4.1 JGibbLDA 本文方法使用的是由Java语 言编写的LDA主题模型建模 程序 JGibbLDA。 4.2 实验结果文件内容 JGibbLDA 实验

7、后,会出现 5 类后缀名 不同的文件。 4.3 形成实验结果 利用文件model-final.twords中的数 据,形成最终的实验结果需要5步。 4.4 定义实验标准 为了验证本文方法的性能,需要使 用某些度量标准来对结果进行度量 和对比。本文采用在信息检索中常 用的查全率(Recall)和查准率( Precision)作为衡量指标,并通过 这两个指标来对输出结果进行评 价。 4.5 实验结果 实验使用了ArgoUML的0.20-0.22版本源代码进行特征提取和处理 ,一共得到1562个类和96个包,在用JGibbLDA处理时,alpha、 beta、ntopics、niters、saves

8、tep 和 twords 的值分别设置为 0.528、0.1、30、1000、100 和 50,选取夹角余弦值最高的 5 个主题的所有主题词进行词频统计。 05 实验总结及未来研究方向 Part Three 软件演化是否与演化目的相符合,或者是否确实进行 了演化,一直是软件演化领域一个重要的研究方向,过去 对软件演化的研究大多都是在理论上的推演。为了能够在 软件演化领域有所突破和创新,希望能够利用实验数据来 进行软件演化的特征定位,因此本文提出了一种基于主题 模型LDA的软件演化被修改代码定位方法,并开发出了一 整套本文方法所使用的定位工具。通过对ArgoUML源代码 进行分析和实验,证明了本文方法的高效性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号