Muunneltavuuden hallinta (Variability management):

Samankaltaiset tiedostot
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

Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016

7.4 Variability management

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

6. Arkkitehtuurityylit

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

10. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Viestinvälitysarkkitehtuurit

7. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit. Syksy 2008

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät 2014

11. Tuoterunkoarkkitehtuurit

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

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

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Palveluperustaiset arkkitehtuurityylit

3. Komponentit ja rajapinnat

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistoarkkitehtuurit, syksy

in condition monitoring

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

12. Kehysarkkitehtuurit

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

Luovu ja luo uutta, uskalla uskaltaa

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

Ohjelmistoarkkitehtuurit. Syksy 2010

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit kevät

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Ohjelmistoarkkitehtuurit

Ohjelmistotekniikka - Luento 2

Ohjelmistoarkkitehtuurit. Syksy 2007

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

PLA Mobiiliohjelmointi. Mika Saari

Ohjelmistojen suunnittelu

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

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

Tietojärjestelmän osat

A Service-Oriented Architecture (SOA) View of IHE Profiles

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

2 Ohjelmistoarkkitehtuurien kuvaus

Harjoitustehtävät viikolle 42

Järjestelmäarkkitehtuuri (TK081702)

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Kehyspohjainen ohjelmistokehitys

SAP. Lasse Metso

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

PLA Mobiiliohjelmointi. Mika Saari

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

11. Kehysarkkitehtuurit

Ohjelmistokehykset (software frameworks)

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmistoarkkitehtuurit Tuoterungot. Kevät 2016

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

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

Ohjelmistojen mallintaminen, kesä 2010

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

Ohjelmistoarkkitehtuurit. Kevät

Arkkitehtuurityylejä ja ratkaisumalleja

Ohjelmistoarkkitehtuurit kevät

Service Fusion -konsepti

Moniulotteisten ohjelmistojen hallinta

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

Hirviö. Design Patterns

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Comment [k1]: Tuote n:o EAN

Ohjelmistoarkkitehtuurit, syksy

OHJELMISTOARKKITEHTUURIT

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Visualisoi tapahtumat ja selvitä niiden kulku

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

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

SPS ZOOM D Laserkeilain

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

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

arvostelija OSDA ja UDDI palveluhakemistoina.

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

Ohjelmistoarkkitehtuurit kevät

Transkriptio:

11. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään ohjelmistotuotteiden variaatiota. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistot muuntuvat kahdessa dimensiossa evoluutio, ylläpito aika... Tässä tarkasteltu dimensio tuoteperheen jäsenet uudelleenkäyttö Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 2

Tuotevariaatio Tuote 2 Yhteinen osa Kaikille tuotteille yhteinen toiminnallisuus Tuote 1 Tuote 3 Muunneltava osa Loogisesti sama toiminnallisuus, jossa on pieniä tuotekohtaisia eroja Toiminnallisuus, joka on useissa tuotteissa mutta ei kaikissa Tuotekohtainen toiminnallisuus Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 3

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 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 4

Variaatiopisteet Variaatiopiste: viivästetyn suunnittelupäätöksen kuvaus 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ö 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) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 5

Variaatiopisteet: Määrittely ja sitominen Määrittelyvaihe Sitomisvaihe [Michel Jaring 2005] Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 6

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} <<alternative>> WLAN <<alternative>> GSM Data <<mandatory>> Command buttons <<alternative>> GPRS <<alternative>> Vertical <<alternative>> Horizontal <<alternative>> Keyboard <<alternative>> Pen Yhdistelysääntöjen määritys: OCL Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 7

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) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 8

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 Valkoinen sektori: vain yksi vaihtoehdoista mahdollinen Musta pallo: pakollinen piirre Valkoinen pallo: valinnainen piirre Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 9

Harjoitustyön pisteytyksestä: Suunnitelman pisteytys 0-4p, lopullinen pisteytys tehdään vasta arvioinnin jälkeen revisoidun suunnitelman perusteella. (Revisoinnilla voi nostaa alkuperäisen pisteytyksen max 2:lla pisteellä) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 10

Variaatiopisteet arkkitehtuuritasolla arkkitehtuurityylin osa palvelu (SOA) korkean tason suunnittelumallin osa rajapinnat (komponentin toteutus) konfiguraatiokuvaukset Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 11

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 Malli Kielen kääntäjä Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 12

Muunneltavuus kerrosarkkitehtuurissa Tietokannan abstrahointikerros Oracle Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 13

Muunneltavuus tietovuoarkkitehtuurissa Tietoformaatti X Tilauksen käsittely Tietoformaatti Y Tilauksen tarkistus Laskutus Tilauksen käsittely Yritys A Tilauksen käsittely Yritys B Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 14

Muunneltavuus palveluarkkitehtuurissa CountriesList Käyttäjä valitsee maan Sequence variation 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 Google Map [Success] Heterogeneous services (OR) Nokia Map Optional service Statistics Valinnaisuus: palveluun voidaan ottaa mukaan tilastointitoiminto Vaihtoehtoisuus: voidaan käyttää joko Googlen tai Nokian karttapalvelua Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 15

Korkean tason suunnittelumallin osa GameCharacter CharacterObserver MyCharacterDisplay CharacterModel Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 16

Rajapinta-variaatiopiste CommManager 1 1..* <<variation point>> CommChannel Binding time = Runtime <<variant>> GSMChannel Muunneltavuus-profiili: Stereotyypit variation point, variant jne. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 17

Variaatiopiste voi olla hajautunut arkkitehtuuriin Service MyService-komponentti rekisteröidään räätälöidyssä alustuksessa Registry MyService MyInitialization Initialization Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 18

Muunneltavat komponenttikonfiguraatiot pakollinen valinnainen Yhteinen alusta vaihtoehtoinen tuotekohtainen Yhteinen alusta Komponentit Tuote Tuotelinja Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 19

Variaatiopisteet yksityiskohtaisen suunnittelun tasolla Alemman tason suunnittelumallit (esim. Template Method, Strategy) Periyttäminen Rajapinnat (luokan toteutus) Takaisinkutsut Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 20

Variaatiopisteet toteutustasolla Parametrit Geneeriset rakenteet (esim. template) Kääntäjän direktiivit (esim. ehdollinen kääntäminen) Build-skriptit Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 21

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 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 22