Changes from the Trenches: Should We Automate Them?

05/21/2021
by   Yaroslav Golubev, et al.
0

Code changes constitute one of the most important features of software evolution. Studying them can provide insights into the nature of software development and also lead to practical solutions - recommendations and automations of popular changes for developers. In our work, we developed a tool called PythonChangeMiner that allows to discover code change patterns in the histories of Python projects. We validated the tool and then employed it to discover patterns in the dataset of 120 projects from four different domains of software engineering. We manually categorized patterns that occur in more than one project from the standpoint of their structure and content, and compared different domains and patterns in that regard. We conducted a survey of the authors of the discovered changes: 82.9 their desire to have the changes automated, indicating the ability of the tool to discover valuable patterns. Finally, we interviewed 9 members of a popular integrated development environment (IDE) development team to estimate the feasibility of automating the discovered changes. It was revealed that independence from the context and high precision made a pattern a better candidate for automation. The patterns received mainly positive reviews and several were ranked as very likely for automation.

READ FULL TEXT

page 6

page 7

page 8

research
02/13/2022

Video Game Project Management Anti-patterns

Project Management anti-patterns are well-documented in the software-eng...
research
04/11/2023

A Data Set of Generalizable Python Code Change Patterns

Mining repetitive code changes from version control history is a common ...
research
08/10/2017

More Accurate Recommendations for Method-Level Changes

During the life span of large software projects, developers often apply ...
research
02/21/2023

A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT

Prompt engineering is an increasingly important skill set needed to conv...
research
03/10/2018

Learning Quick Fixes from Code Repositories

Code analyzers such as ErrorProne and FindBugs detect code patterns symp...
research
09/06/2019

ArduCode: Predictive Framework for Automation Engineering

Automation engineering is the task of integrating, via software, various...
research
12/21/2022

Monolith Development History for Microservices Identification: a Comparative Analysis

Recent research has proposed different approaches on the automated ident...

Please sign up or login with your details

Forgot password? Click here to reset