Aspect-Oriented Refactoring of Java Applications

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

2007

Major/Subject

Ohjelmistotekniikka

Mcode

T-106

Degree programme

Language

en

Pages

(12) + 73 s.+ liitt.

Series

Abstract

Olio-ohjelmointi on nykyisin yleisesti käytetty ohjelmointimalli. Se tukee käsitteiden ja ongelmien modulaarisuutta luokkakäsitteen avulla. Tämä on selkeyttänyt ohjelmien jäsentämistä ja ymmärtämistä. Joidenkin toiminnallisuuksien kunnollinen jakaminen olio-ohjelmoinnin keinoin on osoittautunut mahdottomaksi tehtäväksi. Tällaisia toiminnallisuuksia kutsutaan läpileikkaaviksi toiminnallisuuksiksi. Ne aiheuttavat itse läpileikkaavien toiminnallisuuksien hajanaisen toteutuksen ja ei-läpileikkaavien toiminnallisuuksien sekavoittumisen. Esimerkkejä läpileikkaavasta toiminnallisuudesta ovat lokin kirjoitus, ohjelmavuon jäljitys, synkronointi tai parametritarkistus. Refaktorointi on muutosprosessi, jossa ohjelman sisäistä rakennetta muutetaan ilman sen varsinaisen toiminnan muuttamista. Tavoitteena on parantaa ylläpidettävyyttä. Aspektiohjelmointi on ohjelmointimenetelmä, joka tarjoaa keinon läpileikkaavien toiminnallisuuksien jäsentämiseen yhtenäisiksi ohjelmalohkoiksi. Ennen muutosta läpileikkaavat toiminnot on kuitenkin ensin etsittävä ja arvioitava. Manuaalinen etsiminen voi olla vaativaa etenkin isompien sovellusten kohdalla. Mahdollisesti aspekteiksi muutettavan koodin, aspektiehdokkaiden, etsimistä kutsutaan aspektien louhinnaksi. Tässä opinnäytetyössä arvioidaan muutamaa aspektien louhintamenetelmää soveltamalla niitä olemassa oleviin sovelluksiin. Menetelmien tulokset refaktoroidaan aspektikoodiksi ja tuloksia arvioidaan käyttäen tunnettuja koodin ominaisuuksien mittareita.

Description

Supervisor

Saikkonen, Heikki

Thesis advisor

Pokki, Toni

Keywords

aspect oriented programming, aspektiohjelmointi, refactoring, refaktorointi, aspect mining, aspektien louhinta

Other note

Citation