Software product lines



Samankaltaiset tiedostot
Uudelleenkäytön jako kahteen

Lomalista-sovelluksen määrittely

TIMI TIETOTEKNIIKAN HYÖTYJEN MITTAAMINEN

Suomi jäämässä jälkeen kilpailijamaistaan ICT:n käytössä - mitä tehdä suunnan kääntämiseksi? Tomi Dahlberg TIVIA TALKS

TIETOTEKNIIKAN KOULUTUSOHJELMA

Hieman lisää malleista ja niiden hyödyntämisestä

Advanced Test Automation for Complex Software-Intensive Systems

Perinteiset asennuspaketit

ICT:n johtamisella tuloksia

13/20: Kierrätys kannattaa koodaamisessakin

Software engineering

Gumenius Sebastian, Miettinen Mika Moottoripyörän käynnistysalusta

Kuntayhteisellä palvelunhallintaratkaisulla tehokkuutta tietohallintoon

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Työkalut ohjelmistokehityksen tukena

Opas koulujen VALO-hankintaan. Elias Aarnio Avoimet verkostot oppimiseen -hanke Educoss Innopark Oy

Avoimet ohjelmistot julkisessa hallinnossa. Oskari verkostopäivä Tommi Karttaavi

Mikä sitten on kallista? Milloin raha on viisaasti käytetty? Miten kallis määritellään toimintopistelaskennan näkökulmasta?

Tikli-projektin avausseminaari

JulkICTLab Eteneminen Mikael Vakkari, VM

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2010

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistotuotteen hallinnasta

Infra 2010 loppuseminaari, Helsinki Siltojen tuotemallintamisen ja rakentamisautomaation

UCOT-Sovellusprojekti. Testausraportti

YHTEISTYÖSSÄ ON VALOVOIMAA

Valmistusautomaation uudet mahdollisuudet

AVOIN KOODI YRITTÄJYYDEN LÄHTÖKOHTANA

ohjelman arkkitehtuurista.

Aktiivibioreaktori kasvi- ja eläintiloille. Miika Ilonen - Miilahti Oy

Menetelmäraportti - Konfiguraationhallinta

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Yhdentymisprosessin hyödyt Kymenlaakson ja Mikkelin ammattikorkeakouluille. Heikki Saastamoinen

Ohjelmistoarkkitehtuurit. Syksy 2007

Testauspäivä Hannu-Matti Järvinen

POHJOIS-KARJALAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma. Mikael Partanen VAATIMUSMÄÄRITTELYT

Osaamisen hallinnan palvelu ja SAP Success Factorsin käyttöönotto. Tilaisuus klo 9-11

Opiskelija tekee työasemaympäristöön ja sen hankintaan liittyviä toimistotehtäviä ja laskutoimituksia sekä hyödyntää kielitaitoaan.

Kuinka helpottaa suurten projektien tuskaa pilvipalveluilla?

Ohjelmiston toteutussuunnitelma

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Ohjelmistotekniikka - Luento 2

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistotuotannon itse-automatisointi Avoin menetelmä nykyisten tekijöiden työn radikaaliin tehostamiseen

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

ipad yrityskäytössä AKVA -seminaari Ilona IT Oy Petra Anttila, /

Metropolia Ammattikorkeakoulu lyhyesti

TITANIC TEMPPU, vaan ei karille

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

1 (5) PALVELUKUVAUS JA HINNASTO Requeste palvelut

Mallintaminen; kurssipalautejärjestelmä

Laitteita ja laitoksia uusille puun kyllästys- ja modifiointiteknologioille ja biomassan kuivaukseen. Toimitusjohtaja Jukka Pakarinen, Kit-Sell Oy

Tutkimus: Verkkolasku, automaatio ja liikekumppanien kanssakäynti avoimessa verkossa. Ajankohta helmikuu 2012

TYÖOHJEET VR-HYVINKÄÄ

WINE API ja Virtualisointiohjelmistot

Digitalisaatiota koskevien investointien ohjausmallin kehittäminen O-P Rissanen Digiarkeen neuvottelukunta

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

812341A Olio-ohjelmointi, I Johdanto

Projektiportfolion valinta

Menetelmäraportti Ohjelmakoodin tarkastaminen

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Tulostaminen ja ympäristövaikutukset

Tutkittua tietoa. Tutkittua tietoa 1

Muistitko soittaa asiakkaallesi?

Tietojärjestelmätieteen ohjelmat

Innokylä Hyvinvointi- ja terveysalan innovaatioympäristö

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

YRKK18A Agrologi (ylempi AMK), Ruokaketjun kehittäminen, Ylempi AMK-tutkinto

Työkaluja esimiestyön tehostamiseen

Ketteryys kokeilemalla. Leo Malila Kehittämispäällikkö, Kela

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D

Ohjelmistotekniikan pääaine

Kirjastojärjestelmät ja laitteistoympäristö - tilannekatsaus

KONTTI - Teolliset komponenttiohjelmistot Tekesin ETX-ohjelma

ODINE Open data Incubator for Europe

Suuria säästöjä elpo-elementeillä

Ohjelmistoihin perustuva liiketoiminta: haasteita ja mahdollisuuksia

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

KJ-info Yhteinen Effica askelmerkit

Kulttuurin ja vapaa-ajan toimiala VIDEO

Fassment-projektin alustava analyysi

ArcInfo UUSI ULOTTUVUUS HITSAUSKOULUTUKSEEN

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Julkaisuarkistojen käyttötilastot: Mitä tilastoidaan ja miksi?

ArcInfo, Uusi ulottuvuus hitsauskoulutukseen. ArcInfo UUSI ULOTTUVUUS HITSAUSKOULUTUKSEEN (7)

ArcInfo WEB-POHJAINEN TYÖKALU HITSAUSPARAMETRIDATAN ANALYSOINTIIN

Espoon projekti- ja ohjelmajohtamisen malli EsPro

7. Tuoterunkoarkkitehtuurit

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Maanrakennusalan arki rallattamaan MaaRaksan avulla!

Kemin peruskoulut ja Lukio käyttävät Linux-järjestelmää. Antti Turunen ICT-asiantuntija

Transkriptio:

Thomas Gustafsson, Henrik Heikkilä Software product lines Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Asiantuntijateksti 17.11.2013

Sisällys 1 Johdanto 1 2 Software product lines 1 3 Kehitystavan hyödyt 2 4 Kehitystavan haitat 3 Lähteet 4

1 1 Johdanto Tämä on kirjallinen katsaus software product lines:iin eli ohjelmistotuotelinjan käsitteeseen ja toimintaan, sekä sen hyötyihin ja haittoihin ohjelmistotuotannossa. Kyseisestä aiheesta oli yllättävän vaikea löytää tietoa, sillä esimerkiksi määritelmänä lähestulkoon kaikissa artikkeleissa ja dokumenteissa oli suora lainaus lähteestä numero 1. Myöskään yleispätevää, vain asiasta kertovaa kirjaa ei löytynyt. 2 Software product lines Software product lines:lla (SPL) eli ohjelmistotuotelinjalla tarkoitetaan erilaisia metodeja ja työkaluja jotta saataisiin muodostettua yhteiskäytettävää koodia eri sovelluksissa. [1] Ideana on, että samankaltaisissa ohjelmistoissa käytettäisiin samankaltaista perusrakennetta eli pyrittäisiin mahdollisimman laajamittaiseen uudelleenkäyttöön. Tavoitteena on vähentää suunnittelun ja toteutuksen vaatimaa työtä sekä tehostaa uusien ohjelmistojen kokoamista. [5, s. 14] Varsinaisesti kloonaamisesta ei silti ole kyse, koodia on kuitenkin tarkoitus soveltaa käyttökohteeseensa. Ohjelmistotuotelinjoilla ei myöskään tarkoiteta vain uudelleenkäytettäviä kirjastoja kuten algoritmejä, moduuleja, objekteja tai komponentteja [4, s. 24], vaan tarkoituksena on käyttää strategisesti ja suunnitellusti hyödyksi uudelleen koodia ennakoitavilla tuloksilla. Ohjelmistotuotelinjoja käytetään laajamittaisesti esimerkiksi matkapuhelimien, erilaisten taloussovelluksien, monien samankaltaisten oheislaitteiden kuten tulostimien, lääketieteellisten laitteiden ja niin edelleen kanssa. [4, s. 25-26] Ohjelmistotuotelinjalla saadaan aikaan koodia, jota voidaan käyttää monissa tuotteissa ja tuoteversioissa. Tällaisen toimintamallin käyttöönotto on kuitenkin alkuun työläämpää ja kalliimpaa, jolloin ensimmäisten tuotteiden valmistuskustannukset ovat korkeammat. Pidemmän päälle se kuitenkin maksaa itsensä takaisin, sillä seuraavilla tuotteilla, tai rinnakkaisesti kehitetyillä tuotteilla voidaan käyttää samoja koodin osia sen sijaan että tehtäisi ne kokonaan uudelleen, jolloin säästetään aikaa, vaivaa ja rahaa. [3, s. 25]

2 Esimerkiksi jollakin käyttöjärjestelmällä tai ohjelmistolla voi olla monia eri versioita, joilla on eri ominaisuuksia, mutta perusrakenne on niissä sama. Jollakin käyttöjärjestelmällä voi olla vaikka kaksi versiota, toinen tarkoitettu perus kotikäyttöön, ja toinen yrityskäyttöön. Luonnollisesti näillä on eri käyttötarkoitukset, jolloin niiden sisältö eroaa suuresti, mutta niillä on silti monia yhteisiä piirteitä, joissa voidaan käyttää samoja koodin osia. [4, s. 7] 3 Kehitystavan hyödyt Useille ohjelmistoyrityksille ohjelmistotuotelinjan käyttöönotto on kannattava ratkaisu ja siitä voidaan saada muun muassa seuraavanlaiset hyödyt: [4, s. 31] Aikaansaadaan ohjelmiston osia, joita voidaan käyttää uudelleen muissa tuotteissa. Pidemmän päälle halvempi ratkaisu. Samankaltaisten kokonaisuuksien tuottaminen nopeampaa ja helpompaa. Pienemmällä työmäärällä ja/tai henkilöstöllä saadaan enemmän tuotteita. Useasti tuottaa laadukkaampaa koodia. Mahdollisuus siirtyä nopeasti uusille markkina-alueille. Yleisin syy ohjelmistotuotelinjan käyttöönottoon ovat säästöt [1], mutta kuten yllä nähdään, on ohjelmistotuotelinjasta muitakin hyötyjä.

3 4 Kehitystavan haitat Vaikka ohjelmistotuotelinja olisikin yleensä kannattava, ei sekään ole ilman haittojansa. Haittoja ovat muun muassa: [4, s. 32] Ensimmäisten tuotteiden valmistuskustannukset korkeampia. Jos tuotantoa on vähän tai sovellukset ovat hyvin erilaisia kehittäminen voi tulla kalliimmaksi. Vaatii enemmän koulutusta. Suunnitelmien täytyy olla geneerisempiä tai niihin pitää jättää elämisvaraa. Ohjelmiston testauksessa otettava huomioon mahdolliset variaatiot ja uudelleenkäytettävyys

4 Lähteet 1 Carnegie Mellon University. 2010. Software Product Lines. Verkkodokumentti. http://www.sei.cmu.edu/productlines/ 2 Charles W. Krueger. 2006. Introduction to the Emerging Practice of Software Product Line Development. Verkkodokumentti. http://www.methodsandtools.com/archive/archive.php?id=45 3 John D. McGregor, Linda M. Northrop, Salah Jarrad, Klaus Pohl. 2002. Initiating software product lines. Verkkodokumentti. http://search.proquest.com.ezproxy.metropolia.fi/docview/215828194/fulltextpd F/1418766814B2F80704C/11?accountid=11363 4 Linda M. Northrop. 2008. Software Product Line Essentials. Verkkodokumentti. http://resources.sei.cmu.edu/library/asset-view.cfm?assetid=21564 5 Ville Heikkinen. 2006. Ohjelmistokehistyprosessin kuvaus. Verkkodokumentti. https://publications.theseus.fi/bitstream/handle/10024/815/heikkinen_ville.pdf?s equence=1

(Liitteiden poistaminen tällä kertaa taas olisi rikkonut koko tyylipohjan vaikka kuinka ohjeita olisi noudattanut joten siksi yksi tyhjä sivu.)