Assessing software evolution with the stickiness score: evaluating code persistence across files, folders, and developers

buir.advisorTüzün, Eray
dc.contributor.authorUysal, Selen
dc.date.accessioned2025-04-21T08:04:02Z
dc.date.available2025-04-21T08:04:02Z
dc.date.copyright2025-04
dc.date.issued2025-04
dc.date.submitted2025-04-17
dc.descriptionCataloged from PDF version of article.
dc.descriptionIncludes bibliographical references (leaves 74-79).
dc.description.abstractSoftware evolution involves continuous code changes, making it essential to under-stand factors that influence code stability and persistence. This study introduces a metric called the “Stickiness Score,” measuring the longevity of lines of code (LOC) within a project. It reflects how much of the LOC written by developers or belonging to a specific file or folder has persisted over time. The goal is to examine its correlation with various software metrics: contributor count, developer Stickiness Scores (average, commit-weighted average, and LOC-weighted average), cyclomatic complexity, bug-fix count, and static code analysis metrics, including bug and code smell counts. Stickiness Scores for developers, files, and folders are calculated using the tool developed for this study, Devotion, across five open-source projects. Spearman correlation tests were used to analyze the relationship between file Stickiness Scores and the specified software metrics. Contributor count exhibited a strong negative correlation with file Stickiness Scores. Commit- and LOC-weighted developer Stickiness Scores showed positive correlations, while unweighted averages produced mixed results. Cyclomatic complexity, bug-fix count, and code smell count showed inconsistent correlations. The bug counts in files showed no significant correlation. In conclusion, files with more contributors or frequent bug-related changes tend to be less sticky. In contrast, files modified by high-commit or high-volume contributions from developers with higher stickiness tend to persist longer. The Stickiness Score provides valuable in-sight into how contributor activity, code complexity, bugginess, and smells relate to code longevity.
dc.description.statementofresponsibilityby Selen Uysal
dc.embargo.release2025-10-17
dc.format.extentxiv, 95 leaves : illustrations, charts ; 30 cm.
dc.identifier.itemidB151335
dc.identifier.urihttps://hdl.handle.net/11693/117109
dc.language.isoEnglish
dc.rightsinfo:eu-repo/semantics/openAccess
dc.subjectSoftware development
dc.subjectCode stickiness
dc.subjectCode survival
dc.subjectCode churn
dc.subjectCorrelation analysis
dc.subjectSurvival analysis
dc.titleAssessing software evolution with the stickiness score: evaluating code persistence across files, folders, and developers
dc.title.alternativeYazılım evriminin yapışkanlık skoruyla değerlendirilmesi: dosyalar, klasörler ve yazılımcılar arasında kod kalıcılığının incelenmesi
dc.typeThesis
thesis.degree.disciplineComputer Engineering
thesis.degree.grantorBilkent University
thesis.degree.levelMaster's
thesis.degree.nameMS (Master of Science)

Files

Original bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
B151335.pdf
Size:
9.06 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
2.1 KB
Format:
Item-specific license agreed upon to submission
Description: