首页> 中文学位 >基于监督学习的bug报告和源代码摘要
【6h】

基于监督学习的bug报告和源代码摘要

代理获取

目录

声明

Abstract

摘要

CONTENTS

List of Figures and Tables

Table of Major Symbols and Units

1 Introduction

1.1 Thesis Statement

1.2 Contribution

1.3 Organization

2 Background and State of the Art

2.1 Mining Software Repositories

2.2 A Summarization Process:Common Steps

2.2.1 Corpus Creation

2.2.2 Normalization

2.2.3 Experimentation and Summary

2.2.4 Evaluation

2.3 Automatic Summarization

2.4 State of the Art

2.4.1 IR based Studies

2.4.2 NLP based Studies

2.4.3 Studies using Stereotype Identification

2.4.4 Program Analysis based Studies

2.4.5 Machine Learning based Studies

2.5 Applications of Software Artifact Summarization

3 Summarizing Bug ReportseoortS

3.1 Introduction

3.1.1 Hypothesis

3.1.2 Solution

3.2 Motivation

3.3 Corpus Collection

3.3.1 The MBRC Corpus

3.3.2 The OSCAR Corpus

3.3.3 The Annotation Process

3.4 Bug Report Summarizer-PRST

3.4.1 Sentence Splitter

3.4.2 Ranking Module

3.4.3 Regression Module

3.4.4 Prediction Module

3.4.5 Ranking Merger

3.4.6 PRST Algorithm

3.4.7 Features

3.4.8 Example Summary

3.5 Analytical Evaluation

3.5.1 Performance Evaluation

3.5.2 Threats to the Validity

3.6 Summary

4 Code Fragment Summarization

4.1 Introduction

4.2 Approach

4.2.1 Corpus Creation

4.2.2 Corpus Annotation

4.2.3 Feature Extraction through Crowdsourcing

4.3 Code Fragment Summarizer

4.4 Algorithm for CFS

4.5 Evaluation

4.5.1 Statistical Evaluation

4.5.2 Feature Selection Analysis

4.6 Summary

5 Discussion and Future Work

5.1 Discussion

5.1.1 Producing Bug Report Summaries

5.1.2 Producing Source to Source Summaries

5.1.3 Type of Summary Generated

5.1.4 Bug Reports and Mailing Lists

5.1.5 Summary Perspective

5.2 Future Directions

5.2.1 Crowdsourcing

5.2.2 Heterogeneous Artifacts

5.2.3 Industry and Academia Collaboration

Conclusion

Abstract of Innovation Points

References

Published Academic Papers during PhD Period

Acknowledgement

About the Author

展开▼

摘要

开发者在执行软件任务时,需要与软件工件如bug报告、源代码仓库等进行交互,为了获取所需要的信息,也许需要彻底地通读整个工件。然而,从bug报告和源代码中提取有价值的信息是一项十分繁琐且耗时的任务。为了高效地求解这个任务,研究者建议为软件工件自动化地建立摘要信息。
  在本文,为了方便开发者从bug报告和源代码仓库中高效地提取所需要的信息,我们提出使用有监督的学习技术来建立摘要信息。我们使用重复的bug报告来建立bug报告摘要信息,作为自然语言文本摘要任务的一个实例。在另一个调研中,我们执行源代码片段摘要,作为源代码到源代码摘要任务的一个实例。
  对于bug报告,我们开发了一种基于PageRank的bug报告摘要算法(PageRankbased Summarization Technique),简称为PRST。该算法使用三种不同的相似度度量方法,分别基于VSM、Jaccard和WordNet,来计算主bug报告和对应的重复的bug报告之间的相似度。由于公共可用的bug报告语料库中缺乏主bug报告和重复bug报告的对应关系,无法利用重复bug报告中包含的信息来执行bug报告摘要任务。因此,我们从Mozilla、KDE、Gnome和Eclipse项目中抽取出59个bug报告并建立了一个独立的bug报告语料库,称为OSCAR。同时,我们通过增加重复的bug报告来重构已有的BRC语料库,并将其作为对比语料库。我们采用几种先进的统计评价指标,即精度(Precision)、召回率(Recall),F-Score和Pyramid Precision,外在地评价所提出的算法的有效性。结果显示我们提出的算法能够获得相对准确的bug报告摘要信息,并且,提高了已有的有监督的bug报告和精度。
  同样地,为了建立源代码摘要信息,我们开发了一种基于SVM和NB分类器的代码片段摘要算法(Code Fragment Summarization,CFS)自动生成源代码片段中源到源摘要信息。在软件工件摘要范式中,我们首次引入了基于数据驱动的小规模的众包方法来帮助我们抽取源代码句法特征。我们从Eclipse和NetBeans官方FAQs中检索到127个代码片段并构建一个用于测试的代码片段语料库。我们同样采用先前提到的统计评价指标并比较已有的方法来验证我们提出的方法的有效性。结果显示我们的代码片段摘要器在精度上超过已有的代码片段摘要生成方法,同时句法特征对生成的摘要信息上的准确度有着重要的影响。生成的摘要信息能够有效地帮助开发者解决在手的软件任务,并有效地改善软件的性能和质量。

著录项

  • 作者

    NAJAM NAZAR;

  • 作者单位

    大连理工大学;

  • 授予单位 大连理工大学;
  • 学科 软件工程
  • 授予学位 博士
  • 导师姓名 江贺;
  • 年度 2016
  • 页码
  • 总页数
  • 原文格式 PDF
  • 正文语种 中文
  • 中图分类 TP311.52;
  • 关键词

    软件开发; bug报告; 源代码摘要; 监督学习;

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号