Finding classic web application refactorings Case study on Moodle course management system

No Thumbnail Available

URL

Journal Title

Journal ISSN

Volume Title

Helsinki University of Technology | Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author

Date

2008

Major/Subject

Vuorovaikutteinen digitaalinen media

Mcode

T-111

Degree programme

Language

en

Pages

(8) + 101

Series

Abstract

Uusien web-sovellusten ja edellisen sukupolven web-sovellusten välinen kuilu kasvaa. Uusimmat web-sovellukset on kehitetty alusta alkaen tukemaan asynkronisia skriptaustekniikoita ja kehittynyttä käyttöliittymää. Mutta suurinta osaa klassisista web-sovelluksista ei ole suunniteltu näitä toiminnallisuuksia silmällä pitäen. Näiden web-sovellusten rakentaminen uudelleen merkitsisi toimivan ja testatun ohjelmakoodin hylkäämistä. Tämä ei selvästikään ole optimaalisin mahdollinen ratkaisu. Monet ovatkin kehittäneet ylimääräisen kerroksen tukemaan asynkronisia skriptaustekniikoita. Tämä lisäkerros on kuitenkin usein kehitetty vasta myöhäisessä sovelluskehityksen vaiheessa ja erillisenä sovelluksen alkuperäisestä suunnitelmasta. Siitä syystä tämä kerros lisää sovelluskehityksen ja ohjelmistotestauksen kuormaa. Suurimmalla osalla klassisista web-sovelluksista, jotka ovat yhä aktiivisessa käytössä, on laaja käyttäjäkunta ja niiden on tuettava useita eri alustoja. Kaikki alustat eivät tue asynkronisia skriptaustekniikoita. Siksi klassisten web-sovellusten on toimittava myös ilman näitä laajennuksia. Samasta syystä klassisten sovellusten muuntaminen kokonaan asynkronisia skriptaustekniikoita käyttäviksi ei ole mahdollista. Monet web-sovellukset eivät sisällä arkkitehtuurisia ratkaisuja, jotka mahdollistaisivat asynkronisten tekniikoiden saumattoman soveltamisen. Ratkaisu on muokata arkkitehtuuria siten, että näiden uusien tekniikoiden tukeminen olisi helpompaa. Vanhaa koodia ei tule hylätä eikä toiminnallisuutta hajottaa. Tällaista koodin muokkaamista ilman sen ulkoisen toiminnallisuuden muuttamista kutsutaan refaktoroinniksi. Se on kehitetty olio-ohjelmointia silmällä pitäen. Suuri osa nykyisistä web-sovelluksista ei noudata olio-ohjelmoinnin periaatteita. Näiden web-sovellusten arkkitehtuuri on kehittynyt pitkän sovelluskehityksen tuloksena, eikä suurin osa nykyisistä refaktoroinneista ei päde niihin sellaisenaan. Tässä tutkimuksessa kehitetään klassisten web-sovellusten refaktorointeja, joiden avulla niihin voi lisätä asynkronisia skriptaustekniikoita tukevan kerroksen. Ensiksi laajan web-sovelluksen arkkitehtuuri selvitetään purkamalla sovelluksen toiminta. Sitten kehitetään valintakriteerit käyttöliittymän toiminnoille, jotka voidaan toteuttaa myös asynkronisilla tekniikoilla. Tämän kriteeristön perusteella valitaan käyttöliittymän osia, jotka toteutetaan asynkronisilla tekniikoilla. Vaadittavat arkkitehtuurin muutokset analysoidaan. Soveltuvat refaktoroinnit valitaan ja muokataan. Uusia refaktorointeja kehitetään tarpeen mukaan.

Description

Supervisor

Vuorimaa, Petri

Thesis advisor

Kivilahti, Rami

Keywords

web applications, web-sovellukset, asynchronous scripting, asynkroninen skriptaus, refactoring, refaktorointi, Moodle, Moodle, code restructuring

Other note

Citation