Return to search

Reflektio ja aspektiohjelmointi behavioraalisten suunnittelumallien toteutuksessa

Reflektio ja aspektipohjainen ohjelmointi ovat vielä kohtalaisen uusia käsitteitä, joiden hyödyllisyyttä on käsitelty useissa julkaisuissa. Sekä behavioraalista reflektiota että aspektipohjaista ohjelmointia voidaan käyttää ohjelmistojen virheiden hallintaan ja lokikirjauksiin liittyvän ohjelmakoodin modularisoimiseen.

Reflektiota ja aspektipohjaista ohjelmointia on myös sovellettu perinteisiin GoF-ohjelmistosuunnittelumalleihin. Varsinkin aspektipohjaisen ohjelmoinnin soveltamisesta suunnittelumalleihin on tehty useita julkaisuja, joissa esitettyjä suunnittelumallien muunnelmia tarkastellaan lähemmin käyttäen erilaisia ohjelmistometriikoita. Aspektipohjaista ohjelmointia varten on myös kehitelty omia metriikoita, mutta kyseisiä metriikoita tukevia työkaluja on hyvin vähän.

Aikaisemmasta tutkimuksesta poiketen tässä tutkielmassa verrataan aspektipohjaista ohjelmointia perinteisten oliopohjaisten ohjelmointiratkaisujen lisäksi reflektiivisiin ratkaisuihin. Tutkielma rajoittuu tutkimaan GoF-suunnittelumallien behavioraalista alaryhmää. Alkuperäisinä oliopohjaisina malleina, joihin muunneltuja malleja verrataan, käytetään Hannemannin ja Kiczalesin vuonna 2002 julkaisemia versioita kyseisistä suunnittelumalleista. Vertailussa käytettävät aspektipohjaiset mallit ovat myös peräisin samasta lähteestä. Tutkielmassa käytettävät vastaavat reflektiiviset mallit on toteutettu siten että niiden toiminnallisuus vastaa Hannemannin ja Kiczalesin esittämien oliopohjaisten mallien toiminnallisuutta. Ohjelmointikielissä tutkielma rajoittuu suurelta osin tutkimaan suunnittelumalleja Java-ohjelmointikielessä ja sen AspectJ-laajennuksessa.

Reflektiivisten mallien toteutus pohjautuu suurelta osin kahdessa julkaisussa esitettyihin ratkaisuihin. Behavioraaliseen reflektioon perustuvat suunnittelumallien modifikaatiot on toteutettu Hassounin, Johnsonin ja Counsellin vuonna 2004 julkaiseman teknisen raportin perusteella. Rakenteelliseen reflektioon perustuvat modifikaatiot sen sijaan perustuvat suurelta osin Palsbergin ja Jayn vuonna 1998 esittämiin parannuksiin Visitor-suunnittelumallissa.

Ohjelmointiratkaisuja arvioitiin käyttäen aopmetrics-työkalua, joka on tällä hetkellä ainoa työkalu, joka on vapaasti käytettävissä ja joka tukee aspektipohjaisten metriikka-arvojen mittausta. Ohjelmointiratkaisuja arvioitiin myös sen mukaan kuinka uudelleen käytettävää ohjelmointiratkaisuilla aikaan saatu ohjelmakoodi oli.

Aspektiohjelmoinnin hyödyt katsottiin olevan suurimmillaan suunnittelumalleissa, joiden osapuolten välillä oli paljon vuorovaikutusta keskenään. Behavioraalisen reflektion hyödyt olivat osittain samoilla suunnittelumalleilla kuin aspektiohjelmoinnissakin. Muista menetelmistä poiketen introspektio paransi huomattavasti Memento-suunnittelumallia.

Identiferoai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201306061570
Date15 July 2013
CreatorsReijonen, M. (Matti)
PublisherUniversity of Oulu
Source SetsUniversity of Oulu
LanguageFinnish
Detected LanguageFinnish
Typeinfo:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess, © Matti Reijonen, 2013

Page generated in 0.002 seconds