首页> 外文学位 >Creating, maintaining and building task specific concern maps for supporting as-needed program comprehension.
【24h】

Creating, maintaining and building task specific concern maps for supporting as-needed program comprehension.

机译:创建,维护和构建特定于任务的关注图,以支持所需的程序理解。

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

摘要

Mappings from concerns to their implementation (called "concern maps") can help programmers who use the "As-Needed" program comprehension strategy to more accurately identify code sections that are relevant to their tasks, even when there are cross-cutting concerns. But in order for concern maps to be effective, they must stay up to date. Inaccurate concern maps provide little help and can even mislead programmers.;A concern map can become out of date due to lack of synchrony with evolution of the source code and the underlying conceptual concern. This is a challenging problem, especially for extensional concern maps, which list their members explicitly. To explore the evolvability of different concern map representations, I have created three prototype tools that use different concern map representations and employ varying data sources to synchronize concern members with code. To keep up with concern evolution, these tools provide semi-automatic mechanisms to record new members and provide visualizations to help developers to be more aware of their concern models.;The above tools were used in an empirical study to examine characteristics of concern map representations and mechanisms to keep them up to date during software evolution. This study traced the evolution of the "syntax highlighting" concern of jEdit (98KLOC) across 34 major releases. The results showed that the various concern map representations performed similarly during software evolution. However compared to intensional concern maps, extensional concern maps had a higher fidelity and were more portable.;The use of concern maps in an IDE to help programmers deal with scattered concern implementations was validated in a small user study. Subjects received a task description in a Change Request Proposal (CRP), either on paper or as concern maps in our tool, and they were asked to implement the changes. The results showed that both groups were able to make changes in approximately the same amount of time. However, subjects who used our tool made more accurate changes and were less likely to become disoriented.;While keeping concern maps up to date is important, it is not sufficient. It is not possible to have all concern maps prepared for every future task. To address this challenge, I present an approach for creating an ad hoc concern map by searching a repository, which consists of concern map fragments. These concern map fragments are created from information extracted from common software tools, e.g. changesets from revision control systems. The task descriptions contained in the concern map fragments allows programmers to search for members of a concern using conceptual keywords. To improve the search results, members of these fragments are expanded using a static dependency graph (SDG) and ranked to identify important members.;An empirical study was performed to evaluate the effectiveness of the above technique, especially the usefulness of data sources used to locate concern members. In this study, we compared results of creating ad hoc concern maps using five searchable repositories built from the varying combinations of change sets, bug reports and feature requests, and SDGs. The results showed that using the combination of changesets with bug reports and feature requests provided the best balance of precision and recall rates and a manageable size of results. We also found that the large-scale refactoring decreases the effectiveness of using changesets data.;In summary, incorporating tools that enable programmers to access concern maps show promising results in helping them to better focus on information relevant to their tasks. This dissertation provides an insight into the evolvability of concern map representations and effectiveness of different evolution mechanism. This insight will be useful in informing the design of the tools that integrate concern maps into the software lifecycle. In addition, this dissertation presents a novel approach for creating an ad hoc concern map by searching changesets for members of a concern.
机译:从关注点到其实现的映射(称为“关注点映射”)可以帮助使用“按需”程序理解策略的程序员更准确地标识与其任务相关的代码段,即使存在跨部门关注点也是如此。但是,为了使关注地图有效,它们必须保持最新状态。不正确的关注图提供了很少的帮助,甚至可能误导程序员。;关注图可能由于与源代码的演化和基本概念关注的缺乏同步而变得过时。这是一个具有挑战性的问题,尤其是对于扩展关注地图,它明确列出了其成员。为了探索不同关注地图表示的可演化性,我创建了三个原型工具,这些工具使用不同的关注地图表示并使用不同的数据源来将关注成员与代码同步。为了跟上关注点的发展,这些工具提供了记录新成员的半自动机制,并提供了可视化帮助开发人员更加了解他们的关注点模型。上述工具在一项实证研究中用于检查关注点地图表示的特征。以及使它们在软件开发过程中保持最新状态的机制。这项研究追踪了jEdit(98KLOC)在34个主要发行版中对“语法突出显示”关注的演变。结果表明,在软件演进过程中,各种关注地图的表示方式相似。但是与扩展关注关系图相比,扩展关注关系图具有更高的保真度和更可移植性。一项小型用户研究验证了IDE中关注关系图的使用可帮助程序员处理分散的关注点实现。在纸上或作为我们工具中的关注点图,受试者在变更请求提案(CRP)中收到任务描述,并要求他们实施变更。结果表明,两组都可以在大约相同的时间内进行更改。但是,使用我们工具的受试者进行了更准确的更改,而且不太可能变得迷失方向。;尽管保持关注地图最新很重要,但这还不够。不可能为将来的每一项任务准备所有关注地图。为了解决这一挑战,我提出了一种通过搜索由关注图片段组成的存储库来创建临时关注图的方法。这些关注地图片段是根据从通用软件工具(例如,版本控制系统的变更集。关注点映射片段中包含的任务描述允许程序员使用概念性关键字来搜索关注点的成员。为了改善搜索结果,这些片段的成员使用静态依赖图(SDG)进行了扩展,并对其进行排名以识别重要的成员。;进行了一项实证研究,以评估上述技术的有效性,尤其是用于数据源的有用性。找到关注成员。在本研究中,我们比较了使用五个可搜索的存储库创建临时关注图的结果,这些存储库是根据变更集,错误报告和功能请求以及SDG的不同组合而构建的。结果表明,将变更集与错误报告和功能请求结合使用,可以在准确性和召回率以及可管理的结果大小之间实现最佳平衡。我们还发现,大规模重构降低了使用变更集数据的有效性。总而言之,合并使程序员能够访问关注图的工具显示出令人鼓舞的结果,可以帮助他们更好地关注与任务相关的信息。本文对关注地图表示的可演化性以及不同演化机制的有效性提供了见解。这种见解将有助于告知将关注点图集成到软件生命周期中的工具的设计。此外,本文提出了一种通过搜索变更集以寻找关注成员来创建临时关注地图的新颖方法。

著录项

  • 作者

    Ratanotayanon, Sukanya.;

  • 作者单位

    University of California, Irvine.;

  • 授予单位 University of California, Irvine.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 139 p.
  • 总页数 139
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号