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
Instructions for the author
Authors
Date
2008
Department
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, PetriThesis advisor
Kivilahti, RamiKeywords
web applications, web-sovellukset, asynchronous scripting, asynkroninen skriptaus, refactoring, refaktorointi, Moodle, Moodle, code restructuring