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

Samankaltaiset tiedostot
10. Muunneltavuuden hallinta: variaatiopisteet

10. Muunneltavuuden hallinta: variaatiopisteet

Muunneltavuuden hallinta (Variability management):

9. Muunneltavuuden hallinta

Ohjelmistoarkkitehtuurit

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

Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016

Kehyspohjainen ohjelmistokehitys

7.4 Variability management

11. Kehysarkkitehtuurit

8. Framework architectures

11. Kehysarkkitehtuurit

Johdanto Kehystyypit Kehysten arkkitehtuurilähestymistavat Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa

12. Kehysarkkitehtuurit

8. Kehysarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit kevät

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Moniulotteisten ohjelmistojen hallinta

10. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

7. Tuoterunkoarkkitehtuurit

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

Palveluperustaiset arkkitehtuurityylit

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistoarkkitehtuurit. Kevät

in condition monitoring

Viestinvälitysarkkitehtuurit

Ohjelmistoarkkitehtuuri

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät 2014

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit kehysarkkitehtuurit. Kevät 2014

Ohjelmistoarkkitehtuurit. Syksy 2008

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit kevät

3. Komponentit ja rajapinnat

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

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit kevät

Komponentit ja rajapinnat

11. Tuoterunkoarkkitehtuurit

Luovu ja luo uutta, uskalla uskaltaa

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

Service Fusion -konsepti

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistoarkkitehtuurit. Syksy 2007

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

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

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

7. Product-line architectures

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

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Ohjelmistoarkkitehtuurit. Kevät

Suunnittelumalleja, MVC. Juha Järvensivu 2008

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

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

Ohjelmistojen suunnittelu

Ohjelmistotekniikka - Luento 2

AKKREDITOITU TESTAUSLABORATORIO ACCREDITED TESTING LABORATORY WE CERTIFICATION OY OPERATOR LABORATORY

Tietojärjestelmän osat

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Rakentamisen 3D-mallit hyötykäyttöön

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

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

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Onnistunut käyttöliittymäprojekti

WP3 Decision Support Technologies

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmoinnin peruskurssien laaja oppimäärä

Sulautettu tietotekniikka Kimmo Ahola

SAP. Lasse Metso

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmistokehykset (software frameworks)

Ohjelmistoarkkitehtuurit

Rajapinnat kuntajärjestelmissä #Kuntamarkkinat

Verkottunut suunnittelu

2 Description of Software Architectures

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Transkriptio:

Ohjelmistoarkkitehtuurit Kevät 2011-2012 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 10. Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään ohjelmistotuotteiden variaatiota. 2 Ohjelmistot muuntuvat kahdessa dimensiossa evoluutio, ylläpito aika... Tässä tarkasteltu dimensio uudelleenkäyttö tuoteperheen jäsenet 3 1

Tuotevariaatio Tuote 2 Yhteinen osa Kaikille tuotteille yhteinen toiminnallisuus Muunneltava osa Loogisesti sama toiminnallisuus, jossa on tuotekohtaisia eroja Tuote 1 Tuote 3 Toiminnallisuus, joka on useissa tuotteissa mutta ei kaikissa Tuotekohtainen toiminnallisuus 4 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 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 2

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 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 3

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 Mobile System Composition Rule: Web requires Internet Display Keypad Camera Operating System Messaging Web Connectivity Screen shape Screen Color Keypad size capacity 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ää? 12 4

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 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 14 Muunneltavuus kerrosarkkitehtuurissa Tietokannan abstrahointikerros Oracle 15 5

Muunneltavuus tietovuoarkkitehtuurissa Tietoformaatti X Tilauksen käsittely Tietoformaatti Y Tilauksen tarkistus Tilauksen käsittely Yritys A Tilauksen käsittely Yritys B Laskutus 16 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 Optional service Location Heterogeneous Database Statistics services [Error] Google Map (OR) Nokia Map [Success] 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 6

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 Muunneltavat komponenttikonfiguraatiot pakollinen valinnainen Yhteinen alusta vaihtoehtoinen tuotekohtainen Yhteinen alusta Komponentit Tuote Tuotelinja 21 7

Kysyttävää? 22 Variaatiopisteet yksityiskohtaisen suunnittelun tasolla Alemman tason suunnittelumallit (esim. Template Method, Strategy) Periyttäminen Takaisinkutsut 23 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 24 8

Variaatiopisteen kuvaus erikoistamismallina Variation point: Creature behavior Structure DefaultCreature move show getx gety interact die growold NewCreature move show getx gety interact die growold Explanations DefaultCreature: Default implementation for creatures NewCreature: Application dependent creature type move: Single movement behavior show: Displays creature on screen interact: Interaction between two creatures die: dying of a creature growold: aging of a creature Constraints move: must call "show" NewCreature: constructor must call super die: must remove the creature from the world growold: must increase age Example class NewCreature extends DefaultCreature { int energy; public NewCreature(int x, int y, int e) { super(x, y); energy = e; public void move() { xcoord = (xcoord+1)%myworld.getsize(); show(); public void show() {... public void interact(abstractcreature c) { if (c!= this && c instanceof NewCreature) { if (((NewCreature)c).energy < energy) { c.die(); 25 Kysyttävää? 26 9