Code analysis : Uncovering hidden problems in a codebase by commits to a version control system

Detta är en Kandidat-uppsats från Högskolan i Jönköping/JTH, Datateknik och informatik; Högskolan i Jönköping/JTH, Datateknik och informatik

Sammanfattning: Syfte – Startpunkten för den här studien var att identifiera effektiva och ineffektiva delar av en kodbas som kan leda till förbättringar av koden. Detta utfördes på förfrågan av ett företag. För att stödja begärandet utnyttjades en bok av författaren Adam Tornhill. Han diskuterar flera metoder (också kallade analysmetoder) som används för att lokalisera och analysera platser i kod där effektivitet och ineffektivitet föreligger. De använder alla diverse variabler för det här syftet. En webbapplikation utvecklades för att upptäcka den här varianten av kod med hjälp av dessa variabler. Det spekulerades att det kan saknas samband mellan variablerna som kan upptäckas. Detta skulle ge mer insikt i hur verksam och overksam kod kan urskiljas och evalueras, utöver den insikt Adam Tornhills metoder understöder. Det vetenskapliga syftet och bidraget var därför att särskilja potentiella korrelationer mellan analysmetoderna. En frågeställning härleddes från detta syfte: ● Finns det korrelation hos variabler bland befintliga analysmetoder och i sådant fall, vilka är det? Metod – För att svara på frågeställningen var en noggrannare granskning av variablerna nödvändig för att utvärdera vilka som hade potentiella relationer. Efter det hämtades kvantitativa data av de valda variablerna från 7 open source projekter. Data erhölls från git commit historik från 2 år tillbaka. Informationen presenteras i form av grafer som examinerades för mönster och kontext bland de analysmetoder som var i fokus. Statistiska formler (som Pearsons korrelationskoefficient) utnyttjades i syfte att beräkna exakt korrelation för variablerna. Signifikansnivå sattes på 0,001 och ett p-värde kalkylerades. För de projekt med p-värde mindre än signifikansnivå beräknades även ett median och medelvärde med  deras olika korrelationskoefficienten. Resultat – I slutet påträffades två stycken variabler som undersöktes genom grafer för samband. Utredningen visade ett tydligt mönster som indikerar att när fler personer arbetar på en fil kommer också antalet logiska kopplingar att öka för korresponderande fil. För de olika korrelationsvärden visade det sig att 6 av de 7 projekten hade ett p-värde mindre än den satta signifikansnivån 0,001 som innebär att 6 koefficienter är mycket statistiskt signifikanta. Det var bara för 5 av de 6 projekten med godkänd signifikans som positiv korrelation uppmättes. Medelvärdet för de 6 projekten med p-värde mindre än signifikansnivån var 0.41 och medianvärdet 0.63 vilket indikerar en positiv korrelation mellan antal författare och logiska kopplingar Implikationer – I projekt där många personer jobbar på en fil borde försiktighetsåtgärder erfordras med avseende till logiska kopplingar. Vissa förhindrande medel kanske kan etableras för att vägleda andra att minska, eller i alla fall inte onödigt ackumulera, logiska kopplingar när åtskilliga personer inträder på en fil. Begränsningar – Bara två analysmetoder och deras två variabler undersöktes för korrelation och det kan finnas fler variabler som kan ha korrelation. De 7 projekten som det utvanns data från var alla från open source och därför kanske inte resultatet stämmer för closed source projekt.

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