Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016

Samankaltaiset tiedostot
Muunneltavuuden hallinta (Variability management):

10. Muunneltavuuden hallinta: variaatiopisteet

10. Muunneltavuuden hallinta: variaatiopisteet

9. Muunneltavuuden hallinta

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

Ohjelmistoarkkitehtuurit

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

7.4 Variability management

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

7. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

10. Tuoterunkoarkkitehtuurit

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät 2014

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit kevät

6. Arkkitehtuurityylit

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

11. Tuoterunkoarkkitehtuurit

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

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

Ohjelmistoarkkitehtuurit. Syksy 2008

11. Tuoterunkoarkkitehtuurit

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

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

Ohjelmistoarkkitehtuuri

Viestinvälitysarkkitehtuurit

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistoarkkitehtuurit kevät

Ohjelmistokehykset (software frameworks)

Palveluperustaiset arkkitehtuurityylit

Valppaan asennus- ja käyttöohje

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistoarkkitehtuurit

12. Kehysarkkitehtuurit

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Ohjelmistoarkkitehtuurit. Syksy 2007

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

11. Kehysarkkitehtuurit

Ohjelmistokehykset (software frameworks)

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

IT Service Desk palvelun käyttöönotto palvelukeskuksissa

Tietojärjestelmän osat

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina

Ohjelmistoarkkitehtuurit Tuoterungot. Kevät 2016

ZENworks Application Virtualization 11

8. Kehysarkkitehtuurit

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Järjestelmäarkkitehtuuri (TK081702)

OHJELMISTOARKKITEHTUURIT

RECO irtaimiston- ja omaisuuden hallinta

Kehyspohjainen ohjelmistokehitys

Ohjelmistoarkkitehtuurit

Tuoterunko hajautetussa ympäristössä

Asiakaslähtöinen globaali tarjousja tilausprosessi tuotehallinnan ehdoilla. Tommi Isotalo

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

3. Komponentit ja rajapinnat

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Lakewave encore. Lakewave Technologies Oy, Hämeenkatu 7 D, Tampere -

Ohjelmistotuotteen hallinnasta

Hirviö. Design Patterns

Arkkitehtuurityylejä ja ratkaisumalleja

Ohjelmistotekniikka - Luento 2

2 Ohjelmistoarkkitehtuurien kuvaus

Affecton uusitun asian- ja dokumenttienhallinnan ratkaisun lanseeraus Timo Helkiö Senior Advisor, Affecto Finland Oy

IT-ERP Tietohallinnon toiminnanohjausratkaisuna. ja ITIL palveluiden kehittämisessä

Moniulotteisten ohjelmistojen hallinta

TIE Ohjelmistojen suunnittelu

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Ohjelmiston toteutussuunnitelma

Harjoitustehtävät viikolle 42

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Service Fusion -konsepti

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

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

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Älykäs verkottuminen ja käyttäjänhallinta. Pekka Töytäri TeliaSonera Finland

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Tapahtumat. Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi.

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

Suunnitteluvaihe prosessissa

Transkriptio:

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

Tulevaa luentosettiä Vierailuluentokausi seuraavan periodin alkupuolella, Veli-Pekka Eloranta, Vincit, From the trenches 9.3. Timo Lehtonen, Solita, : Infrastructure as Code 16.3. Tapio Rautonen, Gofore, Software for the Cloud, 30.3. 2

Viikkoharjoituksia Viikkoharkat jatkuvat 7.3. alkavalla viikolla Arkkitehtuurien arviointia, DCAR & ATAM Pelin toteuttaminen, peliframeworkin käyttö 3

Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään ohjelmistotuotteiden variaatiota. 4

Konfiguraatioiden hallintaa Minkälaisia konfiguraatioita (ohjelmistot, kirjastot, komponentit) missäkin on, miten vaihtaa ja hallita niitä? Konfiguraatiot, mikä versio tuotteesta, mitä muuta on mukana Jotain tuotteita moiseen liittyen: https://www.chef.io/ http://www.ansible.com/configuration-management https://puppetlabs.com/solutions/configuration-management https://cfengine.com/product/ Variaation hallintaa: http://gsd.uwaterloo.ca/sites/default/files/ist14- berger-ecosystems.pdf 5

Konfiguraation hallintaa http://www.sei.cmu.edu/productlines/frame_report/config.man.htm 6

evoluutio, ylläpito Ohjelmistot muuntuvat kahdessa dimensiossa aika... Tässä tarkasteltu dimensio tuoteperheen jäsenet uudelleenkäyttö 7

Tuotevariaatio Tuote 2 Yhteinen osa Kaikille tuotteille yhteinen toiminnallisuus Tuote 1 Tuote 3 Muunneltava osa Loogisesti sama toiminnallisuus, jossa on tuotekohtaisia eroja Toiminnallisuus, joka on useissa tuotteissa mutta ei kaikissa Tuotekohtainen toiminnallisuus 8

Tuotevariaatio ja piirretyypit Yhteinen osa Pakolliset piirteet Kaikille tuotteille yhteinen toiminnallisuus Muunneltava osa Vaihtoehtoiset piirteet Valinnaiset piirteet Loogisesti sama toiminnaliisuus, jossa on pieniä tuotekohtaisia eroja Toiminnallisuus, joka on useissa tuotteissa mutta ei kaikissa Tuotekohtainen toiminnallisuus 9

Variaatiopisteet Variaatiopiste: järjestelmän kohta, jossa voi esiintyä variaatiota - viivästetty suunnittelupäätös Variaatiopiste voi esiintyä eri abstraktiotasoilla/vaiheissa: - vaatimusmäärittely ja analyysi - arkkitehtuurisuunnittelu - yksityiskohtainen suunnittelu - toteutus - linkittäminen - järjestelmän alustus - järjestelmän käyttö 10

Variaatiopisteet Variaatiopisteet voivat olla: suljettuja (mahdolliset variantit on tiedossa ja annettuja) avoimia (uusia, esim. tuotekohtaisia variantteja voi antaa) sidottuja (variantti on kiinnitetty) sitomattomia (varianttia ei ole kiinnitetty) Kiinnittäminen voi tapahtua myös toisessa kehitysprojektissa (tuotealusta tuote) 11

Variaation kuvaaminen vaatimusmäärittelyssä: piirremallit Käytetään UML-profiilia (ei standardi) <<context>> Handheld Device SDK variability <<mandatory>> Network channels { BindingTime = runtime } <<mandatory>> Display orientation { BindingTime = runtime } <<mandatory>> Control method { BindingTime = development } <<optional>> GPS support { BindingTime = development } {xor} {xor} <<alternative>> WLAN <<alternative>> 4G <<mandatory>> Command buttons Yhdistelysääntöjen määritys: OCL <<alternative>> Horizontal <<alternative>> Keyboard Voidaan käyttää myös lukumääräsuhteita <<alternative>> 2G <<alternative>> Vertical <<alternative>> Touch Screen 12

Variaation kuvaaminen vaatimusmäärittelyssä: piirremallit FODA-mallina (Feature-Oriented Domain Analysis ) (Kang et al: Feature-Oriented Domain Analysis. Technical report CMU/SEI-90-TR -21, Nov 1990) 13

Mustattu sektori: mikä hyvänsä kombinaatio mahdollinen Väritön sektori: vain yksi vaihtoehdoista mahdollinen Musta pallo: pakollinen piirre Valkoinen pallo: valinnainen piirre http://www.woggie.net/2012/07/16/drawing-feature-models-in-pgf-tikz/ 14

Kysyttävää?

Variaatiopisteet arkkitehtuuritasolla arkkitehtuurityylin osa korkean tason suunnittelumallin osa rajapinnat (komponentin toteutus) Konfiguraatiokuvaukset Käyttäjän profilointi 16

Muunneltavuus arkkitehtuurityyleissä Tyyli Tuotteissa vaihtuvat Tuotteiden yhteiset osat Kerros Kerrokset Kerrosrajapinnat, alemmat kerrokset Tietovuo Prosessointiyksiköt Tietoformaatti, perusyksiköt Asiakas-palvelin Viestinvälitys MVC Tulkki Asiakkaat, palvelimen toteutus Kommunikoivat komponentit, viestit Näkymä- ja ohjainkomponentit Suoritusalusta, kielen osat Asiakkaiden transaktiorajapinta Viestinvälitysinfra, viestiformaatti Malli Kielen kääntäjä ja tulkki 17

Muunneltavuus kerrosarkkitehtuurissa http://developer.android.com/reference/android/hardware/package-summary.html https://source.android.com/devices/halref/index.html 18

Muunneltavuus tietovuoarkkitehtuurissa Tietoformaatti X Tilauksen käsittely Tietoformaatti Y Tilauksen tarkistus Laskutus Tilauksen käsittely Yritys A Tilauksen käsittely Yritys B 19

Muunneltavuus ja palvelut Erikoistaminen asiakkaalle, käyttöliittymätaso + ominaisuudet, jota tarjotaan käyttöön, käyttöliittymätoteutuksessa ja asiakaspään erikoistuksessa voidaan valita mitä näytetään ja tarjotaan Palvelinpää, yhteinen perustason palvelinpään toteutus Sama pohja, voidaan helposti laajentaa palvelutasoa, tarjota uusia ominaisuuksia, jo olemassa Erikoispyynnöt ja uudet ominaisuudet voidaan toteuttaa ensin yhdelle asiakkaalle: jos toimii & tilausta muualla, mukaan peruspakettiin Yleinen asiakaspään sovelluksen toteutus Palvelinpää ja palvelupyyntöjen ohjaus erikoitetuille versioille, mikropalvelut Erikoistettu asiakasosa Geneerinen yhteinen asiakapään osa Yhteiset palvelinpään ratkaisut Erikoistettu palvelu 20

Korkean tason suunnittelumallin osa CharacterObserver GameCharacter MyCharacterDisplay CharacterModel 21

Rajapinta-variaatiopiste CommManager 1 1..* <<variation point>> CommChannel Binding time = Runtime <<variant>> GSMChannel Muunneltavuus-profiili: Stereotyypit variation point, variant jne. 22

Variaatiopiste voi olla hajautunut arkkitehtuuriin Service MyService-komponentti rekisteröidään räätälöidyssä alustuksessa Registry MyService MyInitialization Initialization 23

Muunneltavat komponenttikonfiguraatiot pakollinen valinnainen Yhteinen alusta vaihtoehtoinen tuotekohtainen Yhteinen alusta Komponentit Tuote Tuotelinja 24

Käyttäjäkohtainen profilointi, esimerkki http://www.ibm.com/developerworks/library/wa-uihealth/ 25

Muunneltavuus, käyttäjän määriteltävissä oleva/ajoaikaisuus Plugin-arkkitehtuurit Konfiguraatiot Palvelinten/pilven käyttö sovellusten osien valintaan tai lataamiseen Tietosisällön valinta profiilien perusteella 26

Adaptiivisuus ja käyttöliittymät Mihin perustuen adaptaatioita voi tehdä: Aikaisemmat käyttökerrat, käyttökokemus Yleisimmin käytetyt komennot, toiminnot Yleinen tilanne, yleiset ilmiöt, ajankohtaisuudet Päätelaitteet, ruudut, syöttölaitteet mittausdata 27

Muunneltavuuden hallinta ja ajoaikaisuus Weppimaailma ja käyttöliittymän erikoistaminen Mitä mainoksia näytetään, mitä oletuskomentoja on tarjolla, jne. Käyttöliittymäpuoli ja adaptiivisuus 28

Muunneltavuus, tuoteversiot Versiohallinta jne. Päähaara, yhteinen tuoterunko Uusien ominaisuuksien teko, feature-haarat Tuotekohtaiset haarat, vain erikoistettu osa Jos tuotetasolla tulee yhteisesti kiinnostava ominaisuus, siirretään tuoterunkotasolle Konfiguraation hallintaa esimerkiksi kirjastotasolla, build- ja CI-työkalut, joilla esimerkiksi eri alustoille/kohdejärjestelmille/asiakkaille kääntäminen 29

Kysyttävää?