Finding expert developers using artifact traceability graphs

Limited Access
This item is unavailable until:
2025-03-13

Date

2024-09

Editor(s)

Advisor

Tüzün, Eray

Supervisor

Co-Advisor

Co-Supervisor

Instructor

BUIR Usage Stats
11
views
0
downloads

Series

Abstract

Mentoring is a commonly used practice in the software industry where mentors and mentees are matched to ease the onboarding process of the mentee, who is a newcomer. Also, during a project’s life cycle, developers work on sections of the codebase that are unfamiliar to them. Both cases raise the task of finding an expert developer to contact for possible questions. With this study, we aim to construct an algorithm that recommends expert developers for a specific part of the codebase, namely folders, files, and methods, based on previous developer activities such as commits and code reviews. We construct an artifact traceability graph using commit history, method change history, code review history, and issue history. The relationships in the graph are weighted according to recency and a weight coefficient we determine intuitively. Utilizing this graph, we calculate a score representing the developer’s expertise level on a folder, file, or method, and recommend developers with the highest expertise. To evaluate the success of our algorithm, Expert Developer Finder, we compare its recommendation with the developers who commented on related issues. We run our algorithm on three open-source projects - Nutch, OpenNLP, and Curator. On average, for weighted recommendations, we reached up to 84% accuracy for folders, 82% accuracy for files, and 88% accuracy for methods. On average, for unweighted recommendations, we reached up to 84% accuracy for folders, 84% accuracy for files, and 93% accuracy for methods. We believe that our results show that the Expert Developer Finder algorithm is able to recommend experts by utilizing the historical data of projects. However, further work is required to fine-tune the weights set in the artifact traceability graph.

Source Title

Publisher

Course

Other identifiers

Book Title

Degree Discipline

Computer Engineering

Degree Level

Master's

Degree Name

MS (Master of Science)

Citation

Published Version (Please cite this version)

Language

English

Type