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
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