一句话:围绕软件演化中的程序理解,实证探究开发者遗忘的知识、可靠恢复来源与知识-特性追踪,并提供工具支持。
开发者常需花费大量时间理解所维护的系统,即程序理解。软件演化与时间推移带来的遗忘使开发者对系统日渐陌生。为支持程序理解,可利用知识恢复从系统及其托管平台(如 GitHub)逆向工程隐含信息。但有效恢复和呈现知识,需先回答三个问题:开发者会遗忘哪些知识、程度如何;哪些来源可可靠地恢复知识;如何将知识追踪到系统特性。本文围绕这三个问题,旨在提供实证洞察与工具支持,帮助开发者在软件演化与维护中分析、理解系统,并为研究者展示自动化(如逆向工程)的机会。
Developers use a large amount of their time to understand the system they work on, an activity referred to as program comprehension. Especially software evolution and forgetting over time lead to developers becoming unfamiliar with a system. To support them during program comprehension, we can employ knowledge recovery to reverse engineer implicit information from the system and the platform (e.g., GitHub) it is hosted on. However, to recover useful knowledge and to provide it in a useful way, we first need to understand what knowledge developers forget to what extent, what sources are reliable to recover knowledge, and how to trace knowledge to the features in a system. We tackle these three issues, aiming to provide empirical insights and tooling to support developers during software evolution and maintenance. The results help practitioners, as we support the analysis and understanding of systems, as well as researchers, showing opportunities to automate, for example, reverse-engineering techniques.
DOI 原文 ·
@inproceedings{paperbot5108,
title = {Tackling knowledge needs during software evolution},
author = {Jacob Krüger},
booktitle = {FSE},
year = {2019},
doi = {10.1145/3338906.3342505}
}