Ohjelmistoarkkitehtuurit Tuoterungot. Kevät 2016

Samankaltaiset tiedostot
10. Tuoterunkoarkkitehtuurit

7. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

Tuoterunkoarkkitehtuurit. Ohjelmistoarkkitehtuurit kevät Uudelleenkäyttö. Johannes Koskinen.

11. Tuoterunkoarkkitehtuurit

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät 2014

Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen: liiketoiminta, organisaatio, prosessi, tekninen Tuoterunkojen etuja ja ongelmia

Ohjelmistoarkkitehtuurit, syksy

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit

Kehyspohjainen ohjelmistokehitys

11. Kehysarkkitehtuurit

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Software product lines

Ohjelmistoarkkitehtuurit. Syksy 2010

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Muunneltavuuden hallinta (Variability management):

9. Muunneltavuuden hallinta

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

12. Kehysarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistokehykset (software frameworks)

JUHA-PEKKA ARIMAA TUOTANNONSUUNNITTELUJÄRJESTELMÄN POHJAINEN KEHITTÄMINEN. Diplomityö

10. Muunneltavuuden hallinta: variaatiopisteet

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Tuoterunko hajautetussa ympäristössä

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

ZENworks Application Virtualization 11

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

10. Muunneltavuuden hallinta: variaatiopisteet

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

13/20: Kierrätys kannattaa koodaamisessakin

Uudelleenkäytön jako kahteen

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Ohjelmistoarkkitehtuurit, syksy

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi

Software engineering

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Tavallisimmat kysymykset

Ohjelmistopohjaisen lisenssin käyttö

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Mitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat

Ohjelmistotekniikka - Luento 2

Suunnitteluvaihe prosessissa

Ohjelmistokehykset (software frameworks)

Ohjelmistoarkkitehtuurit kevät Muunneltavuuden hallinta: variaatiopisteet. Ohjelmistot muuntuvat kahdessa dimensiossa

Suomen avoimien tietojärjestelmien keskus COSS ry

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Ohjelmistojen suunnittelu

Testausautomaation mahdollisuudet käyttöliittymän testauksessa. Anssi Pekkarinen

Useimmin kysytyt kysymykset

KADA (Drupal 7) migraatio uuteen (versioon) webiin

T Testiraportti - järjestelmätestaus

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

SYSTEEMIJOHTAMINEN! Sami Lilja! itsmf Finland 2014! Oct ! Kalastajatorppa, Helsinki! Reaktor 2014

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

T harjoitustyö, kevät 2012

ecome Markkinoiden kehittynein julkaisujärjestelmä

HARAVA-PALVELU AVOIMEN LÄHDEKOODIN TEKNOLOGIOILLA ALPO-seminaari 2013

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Pertti Pennanen License 1 (7) EDUPOLI ICTPro

IT- palvelua käyttäjille - ei tekniikkaa tietohallinnolle. Jari Taimi Toimitusjohtaja SataCom Oy

Ohjelmistoarkkitehtuurit Muunneltavuuden hallintaa, Ylläpidosta kevyesti, Vähän rääppeitä aiemmilta kerroilta

Kuntasektorin kokonaisarkkitehtuuri

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Rajapintapalvelujen INSPIRE-yhteensopivuus

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Test-Driven Development

Moniulotteisten ohjelmistojen hallinta

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Yleisiä asioita. Harkat alkavat ensi viikolla Vierailuluentoa. Slackin #luennot-kanava taas käytössä. Ensi viikon perjantaina, Janne Viitala, Sandvik

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

6. Arkkitehtuurityylit

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

HP ProBook 430 G5 kannettavien käyttöönotto

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

Tietojärjestelmän osat

Hallintatyökaluja Fujitsu-työasemille

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

11. Kehysarkkitehtuurit

Ristiinopiskelun kehittäminen -hanke

3. Komponentit ja rajapinnat

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Kun scrum ei riitä - skaalaa ketterä tuotekehitys SAFe lla Nestori Syynimaa Sovelto Oyj

Transkriptio:

Ohjelmistoarkkitehtuurit Tuoterungot Kevät 2016 Samuel Lahtinen http://www.cs.tut.fi/~ohar/ Ohjelmistoarkkitehtuurit 2016 24.2.2016 1

11. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen: liiketoiminta, organisaatio, prosessi, tekninen Tuoterunkojen etuja ja ongelmia Ohjelmistoarkkitehtuurit 2016 24.2.2016 2

Tuoteperheajattelu yleisesti Samankaltainen tuote eri ominaisuuksin eri kohderyhmille Autot: Varustetason vaihtelu Suorituskyvyn vaihtelu (moottori tai ohjelmistotasolla) Korimallit Facelift-versiot jne. Näytönohjaimet: Suorituskyky, virrankulutus, äänekkyys Sama tuotantolinja, karsitut versiot (esim. testataan premium-kortteja, testejä läpäisemättömät karsittuina versioina matalammalla suorituskyvyllä, toimintojen lamauttaminen mekaanisesti tai biosin avulla) Ohjelmistoarkkitehtuurit 2016 24.2.2016 3

Uudelleenkäyttö opportunistinen: hyödynnetään aikaisempaa koodia, joka sattumalta sopii uuteen sovellukseen. suunniteltu: organisaatio käyttää resursseja yleisesti uudelleenkäytettävien ohjelmistojen kehittämiseen, jotka tarjoavat yrityksen alaan sopivat abstraktiot ja variaatiopisteet. oppotunistinen tapa ei toimi hyvin käytännössä Uudelleenkäyttö vaikeaa, suunniteltukaan tapa ei takaa onnistumista alhaalta-ylös: potentiaalisesti uudelleenkäytettävät komponentit lisätään yleisesti käytössä olevaan komponenttikirjastoon, josta haetaan valmiita komponentteja uuteen sovellukseen. ylhäältä-alas: uudelleenkäytettävät ohjelmistot tehdään johonkin laajempaan kokonaisuuteen sopiviksi (esim. rajapinnat, arkkitehtuurit, kehykset) alhaalta-ylös tapa johtaa matalan tason uudelleenkäyttöön Ohjelmistoarkkitehtuurit 2016 24.2.2016 4

Määritelmiä Tuoteperhe: joukko koordinoidusti kehitettyjä ohjelmistotuotteita, joilla on samankaltainen rakenne ja toiminta. Tuotelinja: kaikki artifaktit, välineet ja prosessit, jotka tukevat tuoteperheen jäsenten kehittämistä ja ylläpitoa. Tuoterunko, tuotealusta: tuoteperheen yhteinen ohjelmistoalusta Tuoterunkoarkkitehtuuri, tuoteperhearkkitehtuuri: tuoteperheen yhteinen arkkitehtuuri, tuoterungon arkkitehtuuri Ohjelmistoarkkitehtuurit 2016 24.2.2016 5

Tuoterunko = yhteiseen arkkitehtuuriin ja alustaan perustuva ohjelmistojen uudelleenkäyttö Tuoterunkoarkkitehtuurit (Product-line Architectures): http://www.sei.cmu.edu/productlines/ http://www.sei.cmu.edu/architecture/essays.html#j azayeri Software Product Line Engineering: Foundations, Principles and Techniques:Klaus Pohl, Günter Böckle, Frank J. van der Linden (2005) http://www.computerscience.nl/wiki/pub/methodengineering/towardsmulti- ViewFBC20122013/Pohl_et_al%282005%29.pdf Ohjelmistoarkkitehtuurit 2016 24.2.2016 6

Anna esimerkkejä tuoterunkoajatteluun sopivista sovellusalueista Ohjelmistoarkkitehtuurit 2016 24.2.2016 7

Tuoterunkoajattelua: tuoteesimerkkejä Angry Birds, Angry Birds Rio, Angry Birds Magic, Angry Birds Space, Angry Birds Star Wars, Angry Birds Star Wars II, Angry Birds Seasons, Angry Birds Stella. Candy crush/ /whatever Saga https://king.com/ Työkaluista http://www.developereconomics.com/21-toolsbehind-success-king-halfbrick-studios/ Ohjelmistoarkkitehtuurit 2016 24.2.2016 8

Tuoterunkoajattelua jatkuu Flockler: räätälöity CMS (weppisivut jne. + niiden hallinta). ~150 asiakasta, jokaiselle yksilöllistettyä sivustoa, mutta alla sama pohja Ruby on Rails ja Javascript (Ember.js) Sandvik: liikkuvat koneet, sama tuoterunko erilaisille koneille Yleisemmin erilaiset laiteperheet Piceasoft: ohjelmistoja tiedon siirtoon puhelimista/puhelimiin. Eri kohderyhmiä, loppukäyttäjä, kännykkämyymälät, operaattorit, pohjalla sama ohjelmisto Vision Systems ja konenäköjärjestelmät Ohjelmistoarkkitehtuurit 2016 24.2.2016 9

Esimerkkejä tuoterungoista Kännykkäalustat Vakuutusjärjestelmäalustat Pankkijärjestelmäalustat Tietokone- ja kännykkäpelialustat Koneenohjausjärjestelmäalustat Ohjelmistoarkkitehtuurit 2016 24.2.2016 10

Tuoteperhe-esimerkki (Vignet terveyspalveluita) http://www.vignetcorp.com/platform-approach Ohjelmistoarkkitehtuurit 2016 24.2.2016 11

Ohjelmistorunko ja laitteet Ohjelmistoarkkitehtuurit 2016 24.2.2016 12

Ohjelmistot eri versioin ja palvelutasoin varustettuna Karvalakki/ilmaisversio/testiversio Perusversio Premium-mallinen Ohjelmistoarkkitehtuurit 2016 24.2.2016 13

Jotain toteutustapoja Rekisteröinti Yksinkertaisin malli, ostaessa saa koodin, jolla voi aktivoida täyden version Sama hieman fiinimpänä, rekisteröinti sovelluksen kautta, sovellus naitetaan laitteeseen, jossa se on Käynnistyksen yhteydessä tehtävä tarkistus, löytyykö lisenssitiedostoa (tai nettiyhteysvarmistus) Lisenssitiedoston tarkistaminen ja koneen tarkistaminen, esimerkiksi Windows Usein kaikki sovellusversiot samassa paketissa, mutta ajoaikaisesti tarkistus, löytyykö lisenssiä Myös kirjastojen käyttö, laajennetun version kirjastototeutuksien lataaminen paremman version rekisteröinnin yhteydessä Ohjelmistoarkkitehtuurit 2016 24.2.2016 14

Tuoterunkoihin pohjautuva ohjelmistokehitys Keskeiset tavoitteet: merkittävä uudelleenkäyttö, lyhyempi kehitysaika, parempi laatu vähemmillä resursseilla, yhdenmukainen ja rationalisoitu kehitysprosessi, yhdenmukaiset tuotteet Edellytykset: halutaan tuoteperhe, jolla on riittävästi yhteisiä ominaisuuksia ja hyvin ymmärretty variaatio: vaatimusten on määriteltävä soveltamisala, yhteiset vaatimukset ja variaatiopisteet Tuoterunkotyyppisiin tilanteisiin joudutaan joskus myös ilman selvää tuoteperhekonseptia: Tuntemattomat vaatimukset johtavat usein variaatiopisteisiin Avoin lähdekoodi on usein tulkittavissa tuoterunkona Tuotteista halutaan räätälöitäviä Ohjelmistoarkkitehtuurit 2016 24.2.2016 15

Tuoterunkoihin pohjautuvan ohjelmistokehityksen näkökulmat Liiketoimintanäkökulma Milloin tuoterunkolähestymistapa kannattaa taloudellisesti? Millaisten taloudellisten mallien pohjalta voidaan tehdä päätöksiä? Organisaationäkökulma Miten organisaatio voi omaksua tuoterunkoajattelun ja tukea tuoterunkoon pohjautuvaa kehittämistä? Prosessinäkökulma Millainen kehitysprosessi sopii tuoteperheille? Tekninen näkökulma Millaisia arkkitehtuurimalleja ja teknologioita käytetään tuoterungoille? Ohjelmistoarkkitehtuurit 2016 24.2.2016 16

Liiketoimintanäkökulma 4C 3C takaisinmaksu perinteinen tuoterunko 2C 1C alustan rakentaminen 0 1 2 3 4 Sovellusten lukumäärä Ohjelmistoarkkitehtuurit 2016 24.2.2016 17

Liiketoimintanäkökulma Perustuu työmääräarviomenetelmiin In H.P. et al.: A quality-based cost estimation model for the product-line life-cycle. CACM 49 (2006), 85-88. Ohjelmistoarkkitehtuurit 2016 24.2.2016 18

Laskentamalleja http://jeffreypoulin.info/papers/ijast97/ijast97.ht ml Ohjelmistoarkkitehtuurit 2016 24.2.2016 19

pulmapelitehdas Yritys pohtii mahdollisuuksia lähteä tuottamaan kännykkään pulmapelituoterunkoalustaan perustuen (Tetris, palluroiden, värien jne. yhdistelypelit) Oletetaan, että pulmapelisovelluksen toteuttamisen keskihinta on 100.000e, ja sovelluksen kehittäminen kestää 6kk (ilman tuotealustaa). Millä edellytyksillä yrityksen kannattaa investoida tuotealustaan, jos tuotealustan perustamiskustannukset ovat 250.000e ja toteutustyöhön kuluu 12kk, ja tämän jälkeen pelisovelluksen hinta on vain 25.000e, ja aikaa tarvitaan vain 2kk per peli? Kuinka monen pelin jälkeen tuoterunko maksaisi itsensä takaisin siinä tapauksessa, että ensimmäinen peli tehdään erikseen rinnan tuotealustan kanssa, ottaen huomioon, että tämän pelin siirtäminen tuotealustan päälle maksaisi 10.000 e? Tarkastele asiaa eri puolilta yrityksen johdon kannalta, ottaen huomioon mahdolliset liiketoimintatavoitteet, henkilöresurssien käyttö, reagointikyky markkinoihin ym. Ohjelmistoarkkitehtuurit 2016 24.2.2016 20

Esimerkki ( oikea ) Sovellusalue: videopelit Perinteinen Santelices R.A., Nussbaum M.: A framework for the development of videogames. Software Practice & Experience 31 (2001), 1091-1107. 1. peli 2. peli 3. peli työtuntia 0 100 200 300 400 500 600 700 800 900 Kehykseen perustuva Kehyksen rakentaminen + koulutus Suorituskyky: aika +70% tila +200% Ohjelmistoarkkitehtuurit 2016 24.2.2016 21

Tuoterungoista ja kustannuksista Tuoterungon tekeminen ilman tuotetta haastavaa Väärien asioiden abstrahointi, yleistäminen Helppo jäädä junnaamaan paikallaan Ilman tuotetta vaikea arvioida olennaisia asioita Yleinen tapa, tehdään ensimmäinen tuote nopeasti Kokemuksien hyödyntäminen, tuoterungon tekeminen helpompaa ja nopeampaa Saadaan tuote nopeasti markkinoille Vaaroja, ensimmäisestä tuotteesta räävitään väkisin yleistettävämpää Ohjelmistoarkkitehtuurit 2016 24.2.2016 22

Tuoterungot, etuja: kirjaa tähän Ohjelmistoarkkitehtuurit 2016 24.2.2016 23

Tuoterungot, ongelmat: kirjaa tähän Ohjelmistoarkkitehtuurit 2016 24.2.2016 24

Tuoterunkojen etuja Etuja: Pitkälle viety koodin, osaamisen uudelleenkäyttö Erikoisosaamisen tarve vähenee tuotteiden toteuttajilla Tuoterunko voi hoitaa laitteistoläheistä, tietokantaspesifistä, vaativaa laskentaa jne. (sovellusten toteuttajissa esim. UI-osaajia jne.) Nopeutunut tuotesykli Tuottavuuden kasvu pitkällä tähtäyksellä Tuotteiden standardointi Kehitysprosessien ja työkalujen standardointi Laadun paraneminen Tukee nopeaa protoilua (jos tuoterunko olemassa) Ohjelmistoarkkitehtuurit 2016 24.2.2016 25

Potentiaalisia ongelmia Henkilökunnan vaihtuvuus: motivointi, asiantuntemus, gurukeskeisyys Jäykistää kehitystä Konfliktit alusta vastaan tuotteet (kattavuus, aikataulut, resurssit ym.) Konfliktit tuotteiden haluttujen ominaisuuksien välillä Tuotantoviive: ensimmäinen tuote kestää kauan Testaus: miten testataan tuoterunko? Tuoterungon fokuksen katoaminen Kvartaaliekonomia Ohjelmistoarkkitehtuurit 2016 24.2.2016 26

Uudelleenkäytön kypsyystasot Konfiguroitava tuoterunko (automaattinen tuki tuotteen rakentamiselle) Kypsyystaso Yhteinen arkkitehtuuri, variaatiopisteet (tuoterunko) Yhteinen alusta, yhteistä toiminnallisuutta Standardisoitu infrastruktuuri (yhteinen OS, DB, GUI jne.) Riippumattomat tuotteet Ohjelmistoarkkitehtuurit 2016 24.2.2016 27

Eri tapoja lähteä tuoterunkopohjaiseen ohjelmistokehitykseen Onko yrityksellä aikaisemmin ohjelmistoa kohdealueella? Tehdäänkö tuoterungon kehittely vähitellen vai yhdellä kertaa? Muunnetaan olemassa olevia komponentteja yleisemmiksi Korvataan olemassa olevat komponentit tuotealustalla Kehitetään uusi tuotealusta asteittain kasvavalle tuoteperheelle (ei olemassa olevaa ohjelmistoa) Kehitetään uusi tuotealusta heti koko suunnitellulle tuoteperheelle (ei olemassa olevaa ohjelmistoa) Ohjelmistoarkkitehtuurit 2016 24.2.2016 28

Tuoterunkoprosessi sisältyy Sovellusalueen käsitemalli Vaatimusmäärittely Muunneltavuusvaatimukset, piirremalli Yhteiset vaatimukset Alustan suunnittelu Alustakehitysprosessi Tuoterunkoarkkitehtuuri Tuoterunkorajapinta Arviointi Alustan toteutus Alusta Variaationhallinta Vaatimusmäärittely Tuotevaatimukset Tuoteen toteutus Tuotekohtainen koodi Tuotekehitysprosessi Ohjelmistoarkkitehtuurit 2016 24.2.2016 29

Yhteenvetoa Ohjelmistoarkkitehtuurit 2016 24.2.2016 30

lisäluettavaa Tulossa: mallipohjaisten menetelmien yhteydessä tuoterunkopuolta kyseisten menetelmien kanssa Tuoterukopuolta: http://www.sei.cmu.edu/productlines/ Feature-oriented software product lines: http://fosd.net/ Feature-oriented software development, määrittelyä: http://www.jot.fm/issues/issue_2009_07/column5/index.htm l Ohjelmistoarkkitehtuurit 2016 24.2.2016 31

Kysyttävää?

Vaatimukset ja suunnittelupäätökset Viime kädessä hankintasopimus määrittelee vaatimukset, kaikki sen jälkeen tulevat päätökset ovat suunnittelua Tuoterungon tapauksessa ei yleensä ole hankintasopimusta, vaan tuoterunko tehdään yrityksen sisäiseen käyttöön (erityisesti) tuoterungon tapauksessa ei selvää eroa vaatimusten ja suunnittelun välillä: myös vaatimukset suunnitellaan Ohjelmistoarkkitehtuurit 2016 24.2.2016 33

Tuoterunko-organisaatio Tuoterungon mahdollisuudet Tuoterungon mahdollisuudet Sovellusalueen ymmärrys Arkkitehtuuriosaaminen Abstrahointikyky Teknologiatuntemus Kommunikaatiokyvyt Markkinointi Asiakkaan tarpeet Tuoterungon ymmärtäminen, sitoutuminen, puolustaminen ( Champion ) Johto Vaatimukset Tuotteen ominaisuudet Asiakas Tuotteen ymmärrys Asiakkaan tarpeiden ymmärrys Komponenttipohjainen kehitys Räätälöintikyky Toteutustekniikoiden tuntemus Tuoterunko ryhmä Komponentit Päivitykset Vaatimukset Mahdollisuudet Tuoteryhmät Tuotteet Palaute Ohjelmistoarkkitehtuurit 2016 24.2.2016 34

Tuoterunkoja tukevia teknologioita Komponenttiteknologiat Olioteknologiat, kehykset Mallipohjaiset menetelmät DSL, sovellusaluesuuntautuneet mallit Parametrisointi, tulkattavat osat Tekstuaalisten ja visuaalisten kielten rakentamisympäristöt Ohjelmistoarkkitehtuurit 2016 24.2.2016 35

Kysyttävää?

Sovellus Sovellus Sovellus Sovellus Sovellus Sovellus Sovellus Sovellus Kerrostyyli tuoterunkoarkkitehtuureille Sovellusalusta Arkkitehtuurialusta Resurssialusta Ohjelmistoarkkitehtuurit 2016 24.2.2016 37

Kerrostyyliin perustuvan tuoterungon suunnittelu 1. Päätä yleiset tukipalvelut ja suunnittele niiden abstrahointi 2. Päätä perusarkkitehtuurityyli ja suunnittele sen tarvitsema infrastruktuuri (esim. viestinvälitys, asiakas-palvelin) 3. Suunnittele tuoteperheen yhteiset komponentit ja variaatiopisteiden toteutus 4. Huom: joku kerroksista voi myös puuttua tai olla hyvin ohut Ohjelmistoarkkitehtuurit 2016 24.2.2016 38

Kerrosarkkitehtuuri auttaa hallitsemaan tuoterunkoa Mihin osiin vaikuttavat tietokantamuutokset? Miten varmistutaan, että ei muuteta tuoterungon perusarkkitehtuuria? Miten varmistutaan, että ei tuoda yksittäiseen tuotteeseen liittyviä asioita perusarkkitehtuuriin? Miten varmistutaan, että ei sotketa tuotekohtaisia asioita sovellusaluekohtaisiin asioihin? Mitkä osat vaikuttavat eniten laatuominaisuuksiin? Mitä osia on (todennäköisesti) muutettava, jos laatuvaatimukset muuttuvat? Ohjelmistoarkkitehtuurit 2016 24.2.2016 39

Kysyttävää?