Evaluation of Variability Implementation Techniques - Case: Pandia Real Estate

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Date

2011

Major/Subject

Tietojenkäsittelyoppi

Mcode

T-76

Degree programme

Language

en

Pages

[6] + 65

Series

Abstract

Software variability is the ability of a software artefact to be customized for use in different contexts. In software product lines, the commonality and variability of several similar software systems are separated and utilized in a way that allows for a cost efficient creation of product variants. Software variability implementation techniques are the concrete, technical level techniques used for implementing variability into a software system. The case software in this thesis is Pandia Oy's Pandia Real Estate (PRE), which has evolved from a custom product developed for a single customer into more general purpose software sold to a larger number of customers. The technical evolution of PRE from a single non-variable system into a system with customer-specific variability was neither planned nor implemented well, leading to various ad-hoc variability implementations, which have caused problems with, e.g., maintenance and quality assurance. This thesis aimed to find a suitable variability implementation technique or techniques for PRE. The techniques were searched by means of literature review and then evaluated considering the technical restrictions and organizational wishes of Pandia Oy. The evaluation suggests that the most suitable way of implementing variability in PRE is to improve the existing design so that the common and variable parts are better separated. Such improvements then facilitate the use of dependency injection to configure the variable parts for each customer variant. The solution was tested in a sample implementation, which was considered successful.

Varioituvuudella tarkoitetaan ohjelmistoartifaktan kykyä muuntautua eri käyttötarkoituksiin eri konteksteissa. Ohjelmistotuoteperheessä usean samankaltaisen ohjelmistojärjestelmän yhtäläisyydet ja eroavaisuudet erotellaan toisistaan ja erottelua hyödynnetään siten, että tuoteperheestä voidaan kustannustehokkaasti tuottaa uusia tuotevariantteja. Varioituvuuden toteutustekniikat ovat konkreettisia tapoja toteuttaa varioituvuutta ohjelmistojärjestelmään ja tuottaa variantteja ohjelmistojärjestelmästä. Tässä työssä case-ohjelmistona käytetty Pandia Oy:n Pandia Real Estate syntyi yksittäiselle asiakkaalle täysin räätälöitynä ohjelmistona, mutta on sittemmin kehittynyt yleiskäyttöisemmäksi useille yrityksille ohjelmistopalveluna myytäväksi tuotteeksi. Tuotteen teknistä kehitystä yksittäissovelluksesta asiakaskohtaista varioituvuutta sisältäväksi tuotteeksi ei alun perin suunniteltu eikä toteutettu hyvin, mikä on johtanut useisiin kehnoihin varioituvuustoteutuksiin. Huonot varioituvuustoteutukset ovat myöhemmin aiheuttaneet ongelmia mm. järjestelmän ylläpidon ja laadunvarmistuksen suhteen. Tämän työn tavoite oli löytää PRE:hen hyvin sopivia varioituvuuden toteutustekniikoita. Menetelmiä etsittiin kirjallisuuskatsauksella ja löydettyjä menetelmiä arvioitiin ottaen huomioon PRE:n tekniset rajoitteet ja Pandia Oy:n muita toiveita. Arvioinnin perusteella paras tapa toteuttaa varioituvuus PRE:hen on parantaa ohjelmiston rakennetta eriyttämällä kaikille yhteiset osat varioituvista osista ja hyödyntää dependency injection -tekniikkaa asiakaskohtaisesti varioituvien osien konfiguroimiseen. Tekniikkaa testattiin valitussa osassa PRE:ta ja tulosten perusteella valinta oli onnistunut.

Description

Supervisor

Männistö, Tomi

Thesis advisor

Raatikainen, Mikko

Keywords

software variability, ohjelmiston varioituvuus, implementation technique, toteutustekniikat, software product lines, ohjelmistotuoteperheet

Other note

Citation