University of Oulu

Reflektio ja aspektiohjelmointi behavioraalisten suunnittelumallien toteutuksessa

Saved in:
Author: Reijonen, Matti1
Organizations: 1University of Oulu, Faculty of Science, Department of Information Processing Science, Information Processing Science
Format: ebook
Version: published version
Access: open
Online Access: PDF Full Text (PDF, 2.1 MB)
Persistent link: http://urn.fi/URN:NBN:fi:oulu-201306061570
Language: Finnish
Published: Oulu : M. Reijonen, 2013
Publish Date: 2013-07-15
Physical Description: 98 p.
Thesis type: Master's thesis
Tutor: Vesanen, Ari
Reviewer: Vesanen, Ari
Iisakka, Juha
Description:

Tiivistelmä

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.

see all

Subjects:
Copyright information: © Matti Reijonen, 2013. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.