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

6. Arkkitehtuurityylit

Viestinvälitysarkkitehtuurit

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät 2014

Ohjelmistoarkkitehtuurit. Syksy 2008

Palveluperustaiset arkkitehtuurityylit

7. Tuoterunkoarkkitehtuurit

10. Tuoterunkoarkkitehtuurit

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Syksy 2007

12. Kehysarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

in condition monitoring

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Ohjelmistoarkkitehtuurit. Kevät

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

11. Tuoterunkoarkkitehtuurit

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

3. Komponentit ja rajapinnat

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistoarkkitehtuurit. Kevät

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

1.3 Katsaus ohjelmistotuotannon kehittymiseen

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit. Kevät

Moniulotteisten ohjelmistojen hallinta

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

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

Service Fusion -konsepti

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistotekniikka - Luento 2

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

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

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

Arkkitehtuurityylejä ja ratkaisumalleja

OHJELMISTOARKKITEHTUURIT

Tietojärjestelmän osat

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Kehyspohjainen ohjelmistokehitys

PLA Mobiiliohjelmointi. Mika Saari

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

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

SAP. Lasse Metso

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Ohjelmistokehykset (software frameworks)

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

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

Teknologia-arkkitehtuurit. Valinta ja mallinnus

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

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Visualisoi tapahtumat ja selvitä niiden kulku

9. Ohjelmistoarkkitehtuurien arviointi

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Ohjelmistoarkkitehtuurit, syksy

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

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit kevät

Harjoitustehtävät viikolle 42

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

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

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

Hirviö. Design Patterns

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

Rajapinnat kuntajärjestelmissä #Kuntamarkkinat

Ohjelmistoarkkitehtuurit kevät

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Johdantoluento. Ohjelmien ylläpito

Komponentit ja rajapinnat

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

Transkriptio:

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

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

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

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ö 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 2010 TTY Ohjelmistotekniikka 5

Variaatiopisteet: Määrittely ja sitominen Määrittelyvaihe Sitomisvaihe [Michel Jaring 2005] Ohjelmistoarkkitehtuurit Syksy 2010 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 Yhdistelysääntöjen määritys: OCL <<alternative>> Horizontal <<alternative>> Pen Voidaan käyttää myös lukumääräsuhteita <<alternative>> GPRS <<alternative>> Vertical <<alternative>> Keyboard Ohjelmistoarkkitehtuurit Syksy 2010 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 2010 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 Väritön sektori: vain yksi vaihtoehdoista mahdollinen Musta pallo: pakollinen piirre Valkoinen pallo: valinnainen piirre Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 9

Variaatiopisteet arkkitehtuuritasolla arkkitehtuurityylin osa korkean tason suunnittelumallin osa rajapinnat (komponentin toteutus) konfiguraatiokuvaukset Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 10

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 Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 11

Muunneltavuus kerrosarkkitehtuurissa Tietokannan abstrahointikerros Oracle Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 12

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

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 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 Hadaytullah, Koskimies K., Systä T.: Using Model Customization for Variability Management in Service Compositions. Proc. ICWS, Los Angeles. IEEE CS Press 2009, 687-694 Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 14

Korkean tason suunnittelumallin osa GameCharacter CharacterObserver MyCharacterDisplay CharacterModel Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 15

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

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

Muunneltavat komponenttikonfiguraatiot pakollinen valinnainen Yhteinen alusta vaihtoehtoinen tuotekohtainen Yhteinen alusta Komponentit Tuote Tuotelinja Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 18

Variaatiopisteet yksityiskohtaisen suunnittelun tasolla Alemman tason suunnittelumallit (esim. Template Method, Strategy) Periyttäminen Takaisinkutsut Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 19

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 2010 TTY Ohjelmistotekniikka 20