Praca magisterska
Brak miniatury
Licencja

ClosedAccessDostęp zamknięty
 

Automated evaluation of code readability

Uproszczony widok
dc.abstract.enAs software engineers spend more time reading code than actually writing it, it is important that code is easy and effortless to read. However, software engineers often lack proper experience and tools, helping them to judge how readable is their code and how to improve it. This thesis attempts to fill this gap, focusing on the concept of code readability. It shows that code readability can be quantitatively measured in a manner similar to natural language readability. By extracting specific features from code snippets, the study explores some approaches to measuring code readability. As a part of this thesis, a code survey has been conducted, where human raters (software engineers) were rating given code snippets. The data from the survey was used to explore correlations between human readability ratings and particular code features, such as average line length. The learnings from these correlations are discussed, showing which features impact code readability the most. As a result, a code readability model is being built, which is able to predict the readability of a given code snippet in Go. The model is publicly available in a GitHub repository, allowing it to be used to rate code or to be trained with custom data. The thesis also explores correlations of that model with human perception of code readability and with other software quality metrics.
dc.abstract.plW codziennej pracy programisty, czytanie istniejącego kodu zajmuje o wiele więcej czasu niż pisanie nowego. Z tego powodu ważne jest by kod był jak najłatwiejszy w zrozumieniu, a czytanie go nie nastręczało niepotrzebnych trudności. Programistom brakuje jednak często doświadczenia i niezbędnych narzędzi, pozwalających ocenić jak czytelny jest ich kod i jak można by go usprawnić. Praca próbuje wypełnić tę lukę, koncentrując się na pojęciu czytelności kodu, pokazując że czytelność kodu można mierzyć w sposób podobny do czytelności języka naturalnego. Poprzez wyodrębnienie różnych cech z fragmentów kodu i policzeniu na ich podstawie ilościowych miar, praca bada jak można automatycznie mierzyć czytelność kodu. W ramach pracy przeprowadzono ankietę, w której uczestników (zawodowych programistów) poproszono o ocenę podanych fragmentów kodu. Wyniki ankiety zostały skorelowane z miarami (takimi jak np. średnia długość linii), wyodrębnionymi automatycznie z tych fragmentów kodu. W rezultacie powstał model czytelności kodu, który pozwala na ocenę czytelności dowolnego fragmentu kodu w Go. Model jest publicznie dostępny w repozytorium GitHub, pozwalając na jego użycie, testowanie i trenowanie na własnych danych. Praca bada również korelacje stworzonego modelu z ludzką percepcją czytelności kodu oraz innymi metrykami jakości oprogramowania.
dc.affiliationUniwersytet Warszawski
dc.affiliation.departmentWydział Matematyki, Informatyki i Mechaniki
dc.contributor.authorNosek, Piotr
dc.date.accessioned2025-01-09T11:35:47Z
dc.date.available2025-01-09T11:35:47Z
dc.date.defence2024-11-28
dc.date.issued2024
dc.date.submitted2024-10-31
dc.description.promoterDąbrowski, Robert
dc.description.reviewerStencel, Krzysztof
dc.description.reviewerDąbrowski, Robert
dc.identifier.apd194866
dc.identifier.urihttps://repozytorium.uw.edu.pl//handle/item/160855
dc.languageen
dc.language.otherpl
dc.publisherUniwersytet Warszawski
dc.rightsClosedAccess
dc.subject.encode readability
dc.subject.ensoftware quality
dc.subject.ensoftware metrics
dc.subject.encode quality
dc.subject.enreadability metrics
dc.subject.encode features
dc.subject.ensoftware engineering
dc.subject.enprogramming best practices
dc.subject.plczytelność kodu
dc.subject.pljakość oprogramowania
dc.subject.plmetryki oprogramowania
dc.subject.pljakość kodu
dc.subject.plmetryki czytelności
dc.subject.plcechy kodu
dc.subject.plwytwarzanie oprogramowania
dc.subject.plnajlepsze praktyki wytwarzania oprogramowania
dc.titleAutomated evaluation of code readability
dc.title.alternativeAutomatyczna ocena czytelności kodu
dc.typeMasterThesis
dspace.entity.typePublication