Decomposing legacy software for incremental modernization of software products - Perceived challenges and usable strategies

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorMäntylä, Mika
dc.contributor.authorHalonen, Antti Petteri
dc.contributor.departmentTietotekniikan osastofi
dc.contributor.schoolTeknillinen korkeakoulufi
dc.contributor.schoolHelsinki University of Technologyen
dc.contributor.supervisorMännistö, Tomi
dc.date.accessioned2020-12-04T20:02:11Z
dc.date.available2020-12-04T20:02:11Z
dc.date.issued2005
dc.description.abstractYhä merkittävämpi osuus tietokoneohjelmista on iäkkäitä, mistä johtuen ohjelmistojen ylläpitotarve kasvaa. Ohjelmistojen kunnossapito on työlästä, ja ohjelmistokehityksen tuottavuus heikentyy ohjelmiston vanhetessa kun yhä suurempi osa työajasta käytetään ohjelmiston ylläpitoon. Lopulta tuottavuuden nostaminen onnistuu vain uudistamalla ohjelmisto ja samalla vaihtaen ohjelmistoteknologiaa. Ohjelmistotuoteyrityksille uudistaminen on huomattavasti suurempi haaste kuin ohjelmistoprojektiyrityksille, sillä ohjelmistotuotteesta on välttämätöntä kyetä julkaisemaan versioita jatkuvasti, eikä myynti voi katketa hetkeksikään. Lisäksi uusien versioiden on sisällettävä kaikki aiempien versioiden toimivuus sekä jonkin verran uutta. Ohjelmistotuoteyrityksillä ei täten ole varaa kertarysäyksellä, yhtenä projektina tehtävään uudistamiseen, vaan uudistaminen on tehtävä pikku hiljaa, inkrementaalisesti. Tutkimuksen tavoite on löytää keinoja hyödyntää olemassa olevaa ohjelmistoa mahdollisimman paljon uudistamisessa, minimoiden uudistamisen vaatiman lisätyön heikentämättä ohjelmiston laatua. Tutkimuskysymyksenä on "Kuinka yritysten tulisi osittaa olemassa oleva ohjelmisto voidakseen hyödyntää sitä mahdollisimman paljon inkrementaalisessa uudistamisessa?". Tutkimuksen tavoite on löytää teknisiä keinoja integroida olemassa oleva ohjelmisto uuteen teknologiaan ohjelmistojen osittamisnäkökulmien avulla. Tutkimus koostuu kirjallisuuskatsauksesta ja tapaustutkimuksesta, jossa on haastateltu kolmen yrityksen edustajia. Kirjallisuuskatsauksessa löydettiin kahdeksan erilaista ohjelmistojen osittamisnäkökulmaa. Nämä näkökulmat ovat käyttäjä-, markkinointi-, fyysinen-, konsepti-, moduulien riippuvuus-, prosessi-, data- ja organisaationäkökulmat. Näiden näkökulmien lisäksi löydettiin kaksi täydentävää näkökulmaa - kolmannen osapuolen komponenttien ja laatuattribuuttien näkökulma. Tapaustutkimus tehtiin kolmessa suomalaisessa keskisuuressa ohjelmistotuoteyrityksessä. Tutkimusta varten haastateltiin yhteensä seitsemän henkilöä näissä yrityksissä. Haastatteluiden perusteella näyttäisi siltä, että ohjelmistotuoteyritykset käyttävät monia löydettyjä osittamisnäkökulmia uudistamisen yhteydessä. Osittamisen tavoitteena on haastateltujen henkilöiden mielestä löytää hyviä keinoja integroida vanhat ja uudet alijärjestelmät sekä hyödyntää olemassa olevaa koodia mahdollisimman paljon. Osittamisnäkökulmien käyttö riippui uudistamisen tyypistä - jos laajoja osia kirjoitettiin uudestaan tai kehitettiin uusi osa järjestelmään, osittamisen painopiste oli loogisessa (erityisesti konseptinäkökulma) ja fyysisessä osittamisessa. Vastavuoroisesti jos uudistaminen tehtiin osana jatkuvaa kehitystä, toiminto kerrallaan, painopiste oli käyttäjä- ja markkinointinäkökulmissa. Jokseenkin yllättävä tulos oli, että yritykset näkivät osittamisen tärkeimmäksi hyödyksi uudistamisprosessin luomisen. Tutkimuksen tärkein uutuusarvo on nykyisen arkkitehtuuriosaamisen soveltaminen ohjelmistotuotteiden uudistamisessa. Lisäksi tutkimus tarjoaa kokemuksia näkökulmien käytöstä yrityksissä ja näiden kokemusten perusteella annetaan näkökulmakohtainen suositus käytöstä ohjelmistotuotteen uudistamisen yhteydessä.fi
dc.format.extent93
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/93378
dc.identifier.urnURN:NBN:fi:aalto-2020120452213
dc.language.isoenen
dc.programme.majorTietojenkäsittelyoppifi
dc.programme.mcodeT-76fi
dc.rights.accesslevelclosedAccess
dc.subject.keyworddecompositionen
dc.subject.keywordosittaminenfi
dc.subject.keywordlegacy systemen
dc.subject.keyworduudistaminenfi
dc.subject.keywordmodernizationen
dc.subject.keywordvanha järjestelmäfi
dc.subject.keywordlegacy softwareen
dc.subject.keywordnäkökulmatfi
dc.subject.keywordarchitectural viewsen
dc.subject.keywordkäyttäjänäkökulmafi
dc.subject.keyworduser viewen
dc.subject.keywordmarkkinointinäkökulmafi
dc.subject.keywordmarketing viewen
dc.subject.keywordfyysinen näkökulmafi
dc.subject.keyworddeployment viewen
dc.subject.keywordkonseptinäkökulmafi
dc.subject.keywordconceptual viewen
dc.subject.keywordmoduulien riippuvuusnäkökulmafi
dc.subject.keywordmodule interconnection viewen
dc.subject.keywordprosessinäkökulmafi
dc.subject.keywordprocess viewen
dc.subject.keyworddatanäkökulmafi
dc.subject.keyworddata viewen
dc.subject.keywordorganisaationäkökulmafi
dc.subject.keywordorganizational viewen
dc.subject.keywordkolmannen osapuolen komponentitfi
dc.subject.keyword3rd party component viewen
dc.subject.keywordCOTSfi
dc.subject.keywordCOTSen
dc.subject.keywordlaatuattribuutitfi
dc.subject.keywordquality attribute viewen
dc.subject.keywordvanhan järjestelmän integraatiofi
dc.subject.keywordlegacy system integrationen
dc.subject.keywordohjelmiston rakennefi
dc.subject.keywordsoftware structureen
dc.titleDecomposing legacy software for incremental modernization of software products - Perceived challenges and usable strategiesen
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotMaster's thesisen
dc.type.ontasotPro gradu -tutkielmafi
dc.type.publicationmasterThesis
local.aalto.digiauthask
local.aalto.digifolderAalto_10654
local.aalto.idinssi35430
local.aalto.openaccessno

Files