Het bevragen van de geschiedenis van de broncode.

Projectdetails

!!Description

Programmabevragende hulpmiddelen identificeren broncode die voldoet aan vrij te specificeren karakteristieken. Deze hebben zich reeds bewezen voor het beantwoorden van vragen over één versie van een programma zoals "waar wordt de database aangesproken buiten onze persistentievoorzieningen?". Voor het beantwoorden van vragen zoals "roept deze code een methode op die reeds lang niet opgeroepen werd?" of "wie heeft deze code het vaakst aangepast?" zijn ontwikkelaars echter op zichzelf aangewezen. Er bestaan namelijk geen hulpmiddelen voor het bevragen van een version repository waarin de geschiedenis van een programma opgeslagen is. Nochtans heeft empirisch onderzoek aangetoond dat ontwikkelaars antwoorden zoeken op geschiedenis-gerelateerde vragen bij het onderhouden van programma's.



Het gebrek aan repositorybevragende hulpmiddelen noopt ontwikkelaars tot ad-hoc oplossingen. Zo kan een repositorybevraging bijvoorbeeld opgesplitst worden in meerdere programmabevragingen over de versies uit de repository. Het is dan echter aan de ontwikkelaar om de antwoorden op de individuele programmabevragingen aan elkaar te relateren. Dit is niet alleen repetitief, maar ook gevoelig voor fouten. Een methode kan bijvoorbeeld via refactorings meermaals van klasse of naam veranderen. Bovendien schaalt deze ad-hoc oplossing niet wegens excessieve geheugen- en rekenvereisten. Informatie over de structuur en het gedrag van het programma wordt opnieuw berekend voor elke afzonderlijke versie, zelfs als twee opeenvolgende versies nagenoeg identiek zijn. Tot slot kunnen programmabevragende hulpmiddelen niet overweg met incomplete informatie. Voor het afleiden van gedragsinformatie hebben zij niet alleen de volledige broncode, maar ook de bibliotheken van het bevraagde programma nodig. Net deze ontbreken vaak in een repository.



Het voorgestelde onderzoek heeft als doel een allesomvattend, wetenschappelijk onderbouwd antwoord te formuleren op bovenstaande problemen en zo de weg te effenen naar repositorybevragende hulpmiddelen .



Het onderzoek is opgevat als een systematische exploratie van de dimensies in het ontwerp van een repositorybevragend hulpmiddel: het specificatieformalisme, de repositoryrepresentatie en het detectiemechanisme. De ideale configuratie in deze ruimte geeft aanleiding tot een industrieel toepasbaar hulpmiddel. Elke verkende configuratie zal geëvalueerd aan de hand van een empirisch opgesteld corpus aan reële ontwikkelaarsvragen enerzijds, en een corpus aan representatieve open sourcerepositories anderzijds.
AcroniemIWT578
StatusGeëindigd
Effectieve start/einddatum1/01/1231/12/15

Flemish discipline codes

  • Mathematical sciences