Project

Back to overview

Enhanced Code Review: Using Context and Learning from Review Experience

Applicant Bacchelli Alberto
Number 197227
Funding scheme Project funding (Div. I-III)
Research institution Institut für Informatik Universität Zürich
Institution of higher education University of Zurich - ZH
Main discipline Other disciplines of Engineering Sciences
Start/End 01.02.2021 - 31.01.2025
Approved amount 797'296.00
Show all

Keywords (7)

software metrics; software analytics; peer code review; code inspection; mining software repositories; code change classification; empirical software engineering

Lay Summary (Italian)

Lead
La maggior parte dei settori industriali odierni, e.g. ingegneria, agricoltura e salute, fa un affidamento estensivo su sistemi software per il proprio funzionamento. Per questo, le conseguenze di difetti nei sistemi software possono essere potenzialmente drammatiche e di grande impatto pubblico. È dunque fondamentale investigare come migliorare la qualità del software e ridurre gli errori che raggiungono gli utenti finali.
Lay summary

Diversi studi hanno dimostrato che la pratica di 'code review' (revisione manuale del codice fatta da sviluppatori software diversi dall’autore iniziale del codice) è tra le più efficaci nel rilevare in tempo difetti software e migliorarne la qualità. L'esecuzione corretta di revisioni del codice, tuttavia, richiede costoso tempo e zelo: se un revisore si affretta durante una revisione, spesso riconosce solo problemi superficiali ed errori banali.

L'obiettivo di questo progetto è di migliorare l'efficienza e l'efficacia dello sforzo di code review sfruttando il contesto e apprendendo dall'esperienza di revisioni passate. La visione scientifica alla base di questo progetto è duplice: (1) derivare una profonda comprensione del contesto relativo alle attività di revisione del codice e sfruttare tale contesto per creare nuovi modelli, algoritmi e tecniche per migliorare il supporto automatizzato ai revisori e (2) modellare le modifiche al codice come componenti integranti per la comprensione e l'automazione del processo di revisione del codice nel suo insieme.

Raggiungere questi obiettivi scientifici porterebbe a un impatto significativo sulla ricerca e sulla pratica dell'ingegneria del software. Nella ricerca, aprirà nuovi orizzonti sulla reificazione e sfruttamento del contesto per lo sviluppo del software e farà avanzare i modelli di apprendimento automatico del. Nella pratica, supporterà i professionisti nella riduzione dei difetti nel software, nell'accelerazione del ciclo di sviluppo e nel miglioramento complessivo della manutenibilità e dell'affidabilità dei sistemi software.

Direct link to Lay Summary Last update: 31.03.2021

Responsible applicant and co-applicants

Employees

Name Institute

Associated projects

Number Title Start Funding scheme
170529 Data-driven Contemporary Code Review 01.08.2017 SNSF Professorships

Abstract

Most of today’s industries, from engineering to agriculture to health, are run on software, giving every software defect potentially dramatic and often public consequences. Manual peer code review is widely recognized as most effective at detecting software defects and improving software quality: Several studies showed that properly conducted code reviews support software quality and reliability crucially. Properly doing code reviews, though, requires expensive developer time and zeal: If a reviewer races through a review, only shallow problems and trivial errors are recognized, with the additional risk of generating a false sense of safety.My goal is to enhance the efficiency and effectiveness of code review effort by leveraging context and learning from review experience. The vision and scientific aim at the basis of this proposal are two-fold: (1) To derive a deep understanding of context concerning code review tasks and leverage it to create new models, algorithms, and techniques to enhance automated cognitive support and (2) to modeling code changes as integral components to understanding and automating the code review process as a whole, to learn and transfer review experience.Achieving our goal and its underlying scientific aim would lead to a significant impact on software engineering research and practice: It will break new ground on reifying and leveraging context for software development, it will advance machine learning models of code by learning to relate code changes to external context, code review statements, and projects as a whole, and it will support practitioners reducing software defects, speeding up the development cycle, and improving overall maintainability and reliability of software systems.
-