10. Muunneltavuuden hallinta: variaatiopisteet



Samankaltaiset tiedostot
10. Muunneltavuuden hallinta: variaatiopisteet

9. Muunneltavuuden hallinta

Muunneltavuuden hallinta (Variability management):

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

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

Ohjelmistoarkkitehtuurit

Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016

7.4 Variability management

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Ohjelmistoarkkitehtuurit kevät

6. Arkkitehtuurityylit

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät 2014

Viestinvälitysarkkitehtuurit Lähtökohta:

Viestinvälitysarkkitehtuurit

Palveluperustaiset arkkitehtuurityylit

Ohjelmistoarkkitehtuuri

7. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

10. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

in condition monitoring

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

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

Ohjelmistoarkkitehtuurit. Kevät

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

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

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Syksy 2007

Kaikki analogiset järjestelmät digitaalisiksi ja verkkokäyttöisiksi - jo tänään Kustannustekkuutta ja joustavuutta työskentelyyn

Luovu ja luo uutta, uskalla uskaltaa

Ohjelmistoarkkitehtuurit, syksy

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Moniulotteisten ohjelmistojen hallinta

12. Kehysarkkitehtuurit

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

Service Fusion -konsepti

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

2 Ohjelmistoarkkitehtuurien kuvaus

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte TE213 Päivystys ti klo 14-16

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen suunnittelu

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistoarkkitehtuurit kevät

Tietojärjestelmän osat

SOA SIG SOA Tuotetoimittajan näkökulma

Arkkitehtuurityylejä ja ratkaisumalleja

3. Komponentit ja rajapinnat

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

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Kehyspohjainen ohjelmistokehitys

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Komponentit ja rajapinnat

PLA Mobiiliohjelmointi. Mika Saari

IP-verkkojen luotettavuus huoltovarmuuden näkökulmasta. IPLU-II-projektin päätösseminaari Kari Wirman

Ohjelmistotekniikka - Luento 2

SAP. Lasse Metso

Ohjelmistoarkkitehtuurit. Syksy 2010

OHJELMISTOARKKITEHTUURIT

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Teknologia-arkkitehtuurit. Valinta ja mallinnus

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

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

Ohjelmistokehykset (software frameworks)

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Visualisoi tapahtumat ja selvitä niiden kulku

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

ruovedellä pohjois-hämeessä. lepounit.com (yritys) lepo.net (oma)

9. Ohjelmistoarkkitehtuurien arviointi

Perinteisesti käytettävät tiedon (datan) tyypit

Harjoitustehtävät viikolle 42

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Hirviö. Design Patterns

Rajapinnat kuntajärjestelmissä #Kuntamarkkinat

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications


11. Kehysarkkitehtuurit

Sulautettu tietotekniikka Kimmo Ahola

Tietokannasta palveluiksi ajoneuvonavigointi ja palveluhaku

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Toimilohkojen turvallisuus tulevaisuudessa

Transkriptio:

Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 10. Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään ohjelmistotuotteiden variaatiota. 2 1

Ohjelmistot muuntuvat kahdessa dimensiossa evoluutio, ylläpito aika... Tässä tarkasteltu dimensio tuoteperheen jäsenet uudelleenkäyttö 3 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 4 2

Tuotevariaatio ja piirretyypit Pakolliset piirteet Yhteinen osa 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 5 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ö 6 3

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) 7 Variaatiopisteet: Määrittely ja sitominen Määrittelyvaihe Sitomisvaihe [Michel Jaring 2005] 8 4

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 = development } <<mandatory>> Control method { BindingTime = development } <<optional>> GPS support { BindingTime = development } {xor} {xor} WLAN GSM Data <<mandatory>> Command buttons Yhdistelysääntöjen määritys: OCL Horizontal Pen Voidaan käyttää myös lukumääräsuhteita GPRS Vertical Keyboard 9 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) 10 5

Mobile System Composition Rule: Web requires Internet Display Keypad Camera Operating System Messaging Web Connectivity Screen shape Screen Color size capacity Keypad type Key press type Linux Symbian SMS Fax MMS Email Cable Infrared Internet Bluetooth Large Medium Small Rationale: Large for game applications Simultaneous Key press No Simultaneous Key press S60 S80 Mustattu sektori: mikä hyvänsä kombinaatio mahdollinen Väritön sektori: vain yksi vaihtoehdoista mahdollinen Musta pallo: pakollinen piirre Valkoinen pallo: valinnainen piirre 11 Kysyttävää? 6

Variaatiopisteet arkkitehtuuritasolla arkkitehtuurityylin osa korkean tason suunnittelumallin osa rajapinnat (komponentin toteutus) konfiguraatiokuvaukset 13 Muunneltavuus arkkitehtuurityyleissä Tyyli Tuotteissa vaihtuvat Tuotteiden yhteiset osat Kerros Kerrokset Kerrosrajapinnat, alemmat kerrokset Tietovuo Prosessointiyksiköt Tietoformaatti, perusyksiköt Asiakas-palvelin Viestinvälitys Asiakkaat, palvelimen toteutus Kommunikoivat komponentit, viestit Asiakkaiden transaktiorajapinta Viestinvälitysinfra, viestiformaatti MVC Tulkki Näkymä- ja ohjainkomponentit Suoritusalusta, kielen osat Malli Kielen kääntäjä ja tulkki 14 7

Muunneltavuus kerrosarkkitehtuurissa Tietokannan abstrahointikerros Oracle 15 Muunneltavuus tietovuoarkkitehtuurissa Tietoformaatti X Tilauksen käsittely Tietoformaatti Y Tilauksen tarkistus Laskutus Tilauksen käsittely Yritys A Tilauksen käsittely Yritys B 16 8

Muunneltavuus palveluarkkitehtuurissa Orkestraatio (UML akt. kaav.) CountriesList Sequence variation Käyttäjä valitsee maan CitiesList YellowPages (OR) YellowPages CitiesList Palvelujärjestystä koskeva variaatiopiste: käyttäjä joko valitsee kaupungin ja sieltä yrityksen, tai yrityksen ja sitten sen toimipisteen tietyssä kaupungissa [Error] Location Database [Success] Heterogeneous services Google Map (OR) Nokia Map Optional service Statistics Valinnaisuus: palveluun voidaan ottaa mukaan tilastointitoiminto Vaihtoehtoisuus: voidaan käyttää joko Googlen tai Nokian karttapalvelua Hadaytullah, Koskimies K., Systä T.: Using Model Customization for Variability Management in Service Compositions. Proc. ICWS, Los Angeles. IEEE CS Press 2009, 687-694 17 Korkean tason suunnittelumallin osa GameCharacter CharacterObserver MyCharacterDisplay CharacterModel 18 9

Rajapinta-variaatiopiste CommManager 1 1..* <<variation point>> CommChannel Binding time = Runtime <<variant>> GSMChannel Muunneltavuus-profiili: Stereotyypit variation point, variant jne. 19 Variaatiopiste voi olla hajautunut arkkitehtuuriin Service MyService-komponentti rekisteröidään räätälöidyssä alustuksessa Registry MyService MyInitialization Initialization 20 10

Muunneltavat komponenttikonfiguraatiot pakollinen valinnainen Yhteinen alusta vaihtoehtoinen tuotekohtainen Yhteinen alusta Komponentit Tuote Tuotelinja 21 Kysyttävää? 11

Variaatiopisteet yksityiskohtaisen suunnittelun tasolla Alemman tason suunnittelumallit (esim. Template Method, Strategy) Periyttäminen Takaisinkutsut 23 Template Method ja Strategy 24 12

Variaatiopisteiden sitominen järjestelmän asennuksessa ja käytössä Määritellään suunnittelutasolla Asennusparametrit Käyttäjän asetukset GUI räätälöinti Adaptoituvat käyttöliittymät Tulkattava skripti 25 Kysyttävää? 13