Structured Information Retrieval Strategies for Localising Software Changes

11/30/2018
by   Qiuchi Li, et al.
0

During software maintenance and evolution, developers need to deal with a large number of change requests by modifying existing code or adding code into the system. An efficient tackling of change request calls for an accurate localising of software changes, i.e. identifying which code are problematic and where new files should be added for any type of change request at hand, such as a bug report or a feature request. Existing automatic techniques for this change localisation problem are limited in two aspects: on the one hand, they are only limited to tackle a specific type of change request; on the other hand, they are focused on finding files that should be modified for a change request, yet barely capable of recommending what files or packages might be newly created. To address the limitations, we are inspired to propose a generalised change localisation approach to identify the to-be-modified files (mostly for bugs), and at the same time point out where new files or packages should be created (mostly for new feature requests) for an arbitrary type of change request. In order to tackle the key challenge of predicting to-be-created program elements, our proposed SeekChanges approach leverages the hierarchical package structure for Java projects, and model the change localisation problem as a structured information retrieval (IR) task. A systematic investigation of three structured IR strategies is carried out for scoring and ranking both the files that should be modified and the software packages in which the new files should be created to address change requests. Extensive experiments on four open source Java projects from the Apache Software Foundation demonstrate that structured IR strategies have a good performance on recommending newly created files, while the overall performance of localising change requests is equally satisfactory.

READ FULL TEXT

page 2

page 4

page 5

page 6

page 7

page 9

page 10

page 11

research
04/07/2022

Backports: Change Types, Challenges and Strategies

Source code repositories allow developers to manage multiple versions (o...
research
07/12/2018

STRICT: Information Retrieval Based Search Term Identification for Concept Location

During maintenance, software developers deal with numerous change reques...
research
01/16/2021

ConE: A Concurrent Edit Detection Tool for Large ScaleSoftware Development

Modern, complex software systems are being continuously extended and adj...
research
10/05/2015

On The Evolution Of User Support Topics in Computational Science and Engineering Software

We investigate ten years of user support emails in the large-scale solve...
research
05/19/2022

Which bugs are missed in code reviews: An empirical study on SmartSHARK dataset

In pull-based development systems, code reviews and pull request comment...
research
03/02/2020

Detecting and Characterizing Bots that Commit Code

Background: Some developer activity traditionally performed manually, su...
research
03/19/2018

Automated Localization for Unreproducible Builds

Reproducibility is the ability of recreating identical binaries under pr...

Please sign up or login with your details

Forgot password? Click here to reset