Understanding software systems written by others is often challenging. When we want to assess systems to reason about them, ie, to understand dependencies, analyze evolution …
Patching is a common activity in software development. It is generally performed on a source code base to address bugs or add new functionalities. In this context, given the recurrence of …
Code smells are structures in code that often harm its quality. Manually detecting code smells is challenging, so researchers proposed many automatic detectors. Traditional code …
Large-scale cloud systems play a pivotal role in modern IT infrastructure. However, incidents occurring within these systems can lead to service disruptions and adversely affect user …
Reusing existing library components is essential for reducing the cost of software development and maintenance. When library components evolve to accommodate new …
Traditionally, mutation testing generates an abundance of small deviations of a program, called mutants. At industrial systems the scale and size of Facebook's, doing this is …
Software updates typically require stopping and restarting an application, but many systems cannot afford to halt service, or would prefer not to. Dynamic software updating (DSU) …
This paper is about understanding the nature of bug fixing by analyzing thousands of bug fix transactions of software repositories. It then places this learned knowledge in the context of …
Abstract Machine learning approaches to source code authorship attribution attempt to find statistical regularities in human-generated source code that can identify the author or …