25.07.2014 Views

Analysis and Testing of Ajax-based Single-page Web Applications

Analysis and Testing of Ajax-based Single-page Web Applications

Analysis and Testing of Ajax-based Single-page Web Applications

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Echter, de introductie van deze technologie verloopt niet probleemloos.<br />

Voor de s<strong>of</strong>tware-ontwikkelaar die overweegt <strong>Ajax</strong> toe te passen blijft namelijk<br />

nog een reeks vragen open. Heeft het gebruik van <strong>Ajax</strong> invloed op de<br />

architectuur? Hoe kunnen traditionele web-applicaties worden gemigreerd<br />

naar moderne single-<strong>page</strong> <strong>Ajax</strong> varianten? Hoe staat het met de betrouwbaarheid<br />

en veiligheid wanneer veel JavaScript code wordt geladen? Hoe<br />

bereikbaar zijn de dynamische toest<strong>and</strong>en voor zoekmachines? Hoe zit het<br />

met de performance, aan de kant van zowel de server als de browser? Is<br />

al dat geprogrammeer in JavaScript nog wel te doorgronden voor de gemiddelde<br />

s<strong>of</strong>tware-ontwikkelaar? En: als de code niet gemakkelijk kan worden<br />

doorgrond, hoe kan dan aannemelijk worden gemaakt dat de applicatie doet<br />

wat zij moet doen?<br />

Het vinden van een antwoord op dergelijke vragen is van groot belang voor<br />

de praktijk, en is een uitdaging die dit proefschrift aangaat.<br />

Resultaten<br />

De belangrijkste resultaten van dit proefschrift kunnen als volgt worden samengevat.<br />

Architectuur. Er zijn talloze s<strong>of</strong>tware-raamwerken en -bibliotheken geschreven<br />

die gebaseerd zijn op <strong>Ajax</strong>, en er komen nog dagelijks nieuwe bij. Om de<br />

essentie van <strong>Ajax</strong> te begrijpen, hebben we getracht een wat abstracter perspectief<br />

op <strong>Ajax</strong> te ontwikkelen. In dit kader hebben we diverse <strong>Ajax</strong>-raamwerken<br />

bestudeerd om hun architectuurkenmerken in kaart te brengen, zoals voorgesteld<br />

in ho<strong>of</strong>dstuk 2. Onze analyse van de besta<strong>and</strong>e literatuur over s<strong>of</strong>twarearchitectuur<br />

en -raamwerken heeft geleid tot onze nieuwe architectuurstijl genaamd<br />

Spiar. Deze stijl combineert een serie gewenste eigenschappen (t.w. interactiviteit<br />

en ontwikkelgemak) met vereisten waaraan een <strong>Ajax</strong>-architectuur<br />

moet voldoen (zoals componentgebaseerde gebruikersinterfaces en deltacommunicatie<br />

tussen client en server) om deze eigenschappen te realiseren. We<br />

hebben aan de h<strong>and</strong> van onze Spiar-architectuurstijl laten zien hoe concepten<br />

vanuit de architectuurwereld, zoals architectuureigenschappen, -restricties, en<br />

-elementen, ons kunnen steunen om een complexe en dynamische technologie<br />

als <strong>Ajax</strong> te begrijpen. Ons werk is gestoeld op de grondslagen van de klassieke<br />

webstijl (Rest) en biedt een analyse van deze stijl met betrekking tot het<br />

bouwen van moderne web-applicaties. Spiar beschrijft de essentie van <strong>Ajax</strong><br />

en s<strong>of</strong>tware engineering-principes die door ontwikkelaars gebruikt kunnen<br />

worden tijdens het bouwen en analyseren van <strong>Ajax</strong>-applicaties.<br />

Migratie. De kernvraag die in ho<strong>of</strong>dstuk 3 wordt beh<strong>and</strong>eld is hoe we<br />

automatisch besta<strong>and</strong>e traditionele multi-<strong>page</strong> web-applicaties kunnen migreren<br />

naar single-<strong>page</strong> <strong>Ajax</strong>. Hiertoe hebben we onderzocht hoe single<strong>page</strong><br />

gebruikersinterfacecomponent-k<strong>and</strong>idaten gedetecteerd kunnen worden<br />

in traditionele web-applicaties. Het begrijpen van het navigatiemodel van het<br />

te migreren systeem is cruciaal in een migratieproces. Ons onderzoek naar dit<br />

probleem richt zich erop om met behulp van reverse engineering-algoritmen<br />

172

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!