首页> 外文学位 >Supporting software maintenance by mining software update records.
【24h】

Supporting software maintenance by mining software update records.

机译:通过挖掘软件更新记录来支持软件维护。

获取原文
获取原文并翻译 | 示例

摘要

It is well known that maintenance is the most expensive stage of the software life cycle. Most large real world software systems consist of a very large number of source code files. Important knowledge about different aspects of a software system is embedded in a rich set of implicit relationships among these files. Those relationships are partly reflected in system documentation at its different levels, but more often than not are never made explicit and become part of the expertise of system maintainers. Finding existing relations between source code components is a difficult task, especially in the case of legacy systems.; When a maintenance programmer is looking at a piece of code in a source file, one of the important questions that he or she needs to answer is: “which other files should I know about, i.e. what else might be relevant to this piece of code?”. This is an example of a more general Relevance Relation that maps a set of entities in a software system into a relevance value.; How can we discover and render explicit these relationships without looking over the shoulder of a programmer involved in a maintenance task? We turn to inductive methods that are capable of extracting structural patterns or models from data. They can learn concepts or models from experience observed in the past to predict outcomes of future unseen cases.; This thesis lies at the intersection of two research fields, which has been widely ignored by researchers in the machine learning and software engineering communities. It investigates the application of inductive methods to daily software maintenance at the source code level. Therefore in this thesis we first lay out the general idea of relevance among different entities in a software system. Then using inductive learning methods and a variety of data sources used by maintenance programmers, we extract (i.e. learn) what we call a maintenance relevance relation among files in a large legacy system. In effect we learn from past maintenance experience in the form of problem reports and update records, to be able to make predictions that are useful in future maintenance activities. This relation, which is called the Co-update relation, predicts whether updating one source file may require a change in another file.; To learn the Co-update relation we have performed a large number of experiments using syntactic features such as function calls or variable definitions. We have also performed experiments that use text based features such as source code comments and problem reports, and the combination of these features. The results obtained show that while using syntactic features is encouraging in terms of the predictive power of the results of learning, using text based features yields highly accurate models, with precision and recall measures that make these models viable to be used in a real world setting. As part of the contribution of this thesis we also report on challenges encountered in the process and the lessons learned.
机译:众所周知,维护是软件生命周期中最昂贵的阶段。大多数大型的现实世界软件系统都包含大量的源代码文件。有关软件系统不同方面的重要知识嵌入在这些文件之间的一组丰富的隐式关系中。这些关系部分反映在不同级别的系统文档中,但更多时候从来没有明确表明它们并成为系统维护人员专业知识的一部分。查找源代码组件之间的现有关系是一项艰巨的任务,尤其是在旧系统的情况下。当维护程序员查看源文件中的一段代码时,他或她需要回答的重要问题之一是:“我还应该知道哪些其他文件,即与该段代码有关的其他内容?”。这是一个更一般的关联关系的示例,该关联关系将软件系统中的一组实体映射到关联值。我们如何发现并显式地显示这些关系,而又不用看涉及维护任务的程序员的肩膀呢?我们转向能够从数据中提取结构模式或模型的归纳方法。他们可以从过去观察到的经验中学习概念或模型,以预测未来未见病例的结果。本文处于两个研究领域的交汇处,被机器学习和软件工程界的研究人员广泛忽略。它在源代码级别研究归纳方法在日常软件维护中的应用。因此,在本文中,我们首先提出了软件系统中不同实体之间相关性的一般概念。然后使用归纳学习方法和维护程序员使用的各种数据源,我们提取(即学习)大型遗留系统中文件之间所谓的维护相关关系。实际上,我们以问题报告和更新记录的形式从过去的维护经验中学习,以便能够做出对将来的维护活动有用的预测。这种关系称为共同更新关系,它预测更新一个源文件是否可能需要更改另一个文件。为了学习协同更新关系,我们使用了语法特征(例如函数调用或变量定义)进行了大量实验。我们还进行了使用基于文本的功能(例如源代码注释和问题报告)以及这些功能的组合的实验。获得的结果表明,尽管从学习结果的预测能力来看,使用语法功能令人鼓舞,但使用基于文本的功能可以生成高度准确的模型,其精确度和召回率使这些模型可在现实世界中使用。 。作为本论文的一部分,我们还报告了在此过程中遇到的挑战和经验教训。

著录项

  • 作者

    Sayyad Shirabad, Jelber.;

  • 作者单位

    University of Ottawa (Canada).;

  • 授予单位 University of Ottawa (Canada).;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2003
  • 页码 236 p.
  • 总页数 236
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号