Procedurers inverkan på kodförståelse i Java : En studie med eye-tracking

Detta är en Kandidat-uppsats från KTH/Skolan för elektroteknik och datavetenskap (EECS)

Sammanfattning: 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.

  HÄR KAN DU HÄMTA UPPSATSEN I FULLTEXT. (följ länken till nästa sida)