Decomposing legacy software for incremental modernization of software products - Perceived challenges and usable strategies
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
Instructions for the author
Authors
Date
2005
Department
Major/Subject
Tietojenkäsittelyoppi
Mcode
T-76
Degree programme
Language
en
Pages
93
Series
Abstract
Yhä 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ä.Description
Supervisor
Männistö, TomiThesis advisor
Mäntylä, MikaKeywords
decomposition, osittaminen, legacy system, uudistaminen, modernization, vanha järjestelmä, legacy software, näkökulmat, architectural views, käyttäjänäkökulma, user view, markkinointinäkökulma, marketing view, fyysinen näkökulma, deployment view, konseptinäkökulma, conceptual view, moduulien riippuvuusnäkökulma, module interconnection view, prosessinäkökulma, process view, datanäkökulma, data view, organisaationäkökulma, organizational view, kolmannen osapuolen komponentit, 3rd party component view, COTS, COTS, laatuattribuutit, quality attribute view, vanhan järjestelmän integraatio, legacy system integration, ohjelmiston rakenne, software structure