Return to search

Procedurers inverkan på kodförståelse i Java : En studie med eye-tracking / The impact of procedures in Java on code readability : A study with eye-tracking

I programvarans livscykel spenderas mycket tid i det sista steget, underhållsfasen. I detta stadie är mjukvaran färdigutvecklad och behöver kontinuerligt underhåll för att säkerställa programvarans ständiga funktionalitet och effektivitet [25]. Det är därför viktigt att programvaran är så läsbar som möjligt då nya programmerare oftast tillkommer till projekten och för att snabbt kunna felsöka koden. Procedurer (metoderi Java) lärs ut som ett sätt att hålla koden strukturerad och lättläst. Läsbarhet av kod har blivit mer och mer studerat under de senaste åren och med hjälp av eye-tracking har läsbarhet av kod kunnat studerats på ett konkret sätt. I denna rapport har procedurers inverkan på läsbarhet av kod undersökts vilket har gjorts genom att undersöka tio testpersoners ögonrörelser vid tolkning av ett antal problem i Java, där problemen skilt sig till användandet av procedurer eller ej. Metodiken som valts har varit ett kontrollerat experiment där de tilldelade problemen involverat tolkning av kod samtidigt som deltagarnas ögonrörelser studerats och presenteras som bilder och data i form av diagram över punkter där blicken fixerats i koden. Resultaten visar attnybörjare generellt sett tar längre tid på sig att läsa procedurer jämfört med monolitisk kod (sekventiell kod, motsatsen till proceduruppdelad kod), medan erfarna programmerare inte skilde sig i lika hög gradeller var till och med snabbare på att lösa de procedurellt uppdelade kodsegmenten. Man kan även tyda att erfarna programmerare har ett annat sätt att läsa kod jämfört med nybörjare vilket kan vara intressant att studera ytterligare. Slutsatsen för experimentet är att kontrollflödesabstraktioner i form av procedurer gör det lättare för programmerare att läsa kod men det krävs tid och vana för att ta del av de gynnsamma effekterna utav dem. / In the software life cycle, a great amount of time is spent on the final stage, the maintenance phase. At this stage, the software is fully developed and needs continuous maintenance to ensure constant functionality and efficiency of the software [25]. It is therefore important for the software to be as readable as possible since other programmers might start working on the software. It is also important to keep the code readable to quickly troubleshoot the code. Procedures are taught as a way to keep the code structured and easy to read among other abstractions. In recent years, the study of code readability has gained an increasing popularity and with the help of eye-tracking it has allowed for the study of readability in a more concrete way. In this report, the impact of procedures on code readability has been investigated by conducting a controlled experiment, which has been done by examining the eye movements of ten test subjects who had been tasked with interpreting a number of problems in Java, where the problems ranged from the use of procedures or not (being plain monolithic code blocks). The assigned problems involve the interpretation of code while their eye movements are recorded and presented as images and as data in a spreadsheet. The results show that beginners generally take longer to read methods compared to sequential code, while experienced programmers did not differ as much- or were even faster to resolve the procedural code segments. It can also be said that experienced programmers have a different way of reading code compared to beginners which may be interesting to study further. The conclusion is that control flow abstractions in the form of procedures make it easier for programmers to read code, but it takes time and experience to take advantage of their beneficial effects.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-229792
Date January 2018
CreatorsYtterberg, Kim
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageSwedish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2018:203

Page generated in 0.0016 seconds