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



Samankaltaiset tiedostot
10. Muunneltavuuden hallinta: variaatiopisteet

10. Muunneltavuuden hallinta: variaatiopisteet

9. Muunneltavuuden hallinta

Muunneltavuuden hallinta (Variability management):

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 2014

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit kevät

6. Arkkitehtuurityylit

Johdantoluento. Ohjelmien ylläpito

Palveluperustaiset arkkitehtuurityylit

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

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Syksy 2007

12. Kehysarkkitehtuurit

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

ohjelman arkkitehtuurista.

Ohjelmistoarkkitehtuurit. Syksy 2010

7. Tuoterunkoarkkitehtuurit

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

2 Ohjelmistoarkkitehtuurien kuvaus

10. Tuoterunkoarkkitehtuurit

3. Komponentit ja rajapinnat

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

1.3 Katsaus ohjelmistotuotannon kehittymiseen

in condition monitoring

Tietojärjestelmän osat

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen suunnittelu

11. Tuoterunkoarkkitehtuurit

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

Moniulotteisten ohjelmistojen hallinta

Ohjelmistoarkkitehtuurit kevät

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

Ylläpito. Ylläpidon lajeja

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Harjoitustehtävät viikolle 42

Ohjelmistoarkkitehtuurit. Kevät

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

Ohjelmistoarkkitehtuurit. Kevät

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Kehyspohjainen ohjelmistokehitys

Service Fusion -konsepti

11. Kehysarkkitehtuurit

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistokehykset (software frameworks)

11. Tuoterunkoarkkitehtuurit

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

Ohjelmistoarkkitehtuurit kevät

Komponentit ja rajapinnat

PLA Mobiiliohjelmointi. Mika Saari

TIE Ohjelmistojen suunnittelu

Luovu ja luo uutta, uskalla uskaltaa

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

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Arkkitehtuurityylejä ja ratkaisumalleja

Visualisoi tapahtumat ja selvitä niiden kulku

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

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

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Ohjelmistoarkkitehtuurit. Kevät

OHJELMISTOARKKITEHTUURIT

Ohjelmiston toteutussuunnitelma

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Ohjelmistoarkkitehtuurit, syksy

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi

TIE Ohjelmistojen suunnittelu

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

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

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

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

Toimilohkojen turvallisuus tulevaisuudessa

9. Ohjelmistoarkkitehtuurien arviointi

Kiinteistöjen paloturvallisuuden ajankohtaispäivät 2016 Muuttuva ympäristö ja teknologian haasteet Palontorjunnan laitteistot Lauri Lehto,

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

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Transkriptio:

Ohjelmistoarkkitehtuurit Muunneltavuuden hallintaa, Ylläpidosta kevyesti, Vähän rääppeitä aiemmilta kerroilta Kevät 2014 Samuel Lahtinen (Johannes Koskinen) http://www.cs.tut.fi/~ohar/ 1

Yleisiä asioita Luennot keskiviikkoisin 10:15- Viikkoharjoitukset jatkuvat ATAM/DCAR-session yhteistyöryhmän tiedot IDLEssä (TTY) ATAM-sessiot lähestyvät, varatkaa aika (TTY ja IDLE) Palauttakaa ATAM-sessioiden dokumentaatio (IDLE & yhteistyöryhmän porukka) Bonusharkka tulossa (koodaustakin), tarjolla enempi pisteitä 2

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

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

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 5

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 6

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

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) 8

Variaatiopisteet: Määrittely ja sitominen Määrittelyvaihe Sitomisvaihe [Michel Jaring 2005] 9

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 10

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) 11

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 12

Kysyttävää?

Variaatiopisteet arkkitehtuuritasolla arkkitehtuurityylin osa korkean tason suunnittelumallin osa rajapinnat (komponentin toteutus) konfiguraatiokuvaukset 14

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 15

Muunneltavuus kerrosarkkitehtuurissa Tietokannan abstrahointikerros Oracle 16

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

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 18

Korkean tason suunnittelumallin osa CharacterObserver GameCharacter MyCharacterDisplay CharacterModel 19

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

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

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

Kysyttävää?

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

Template Method ja Strategy 25

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 26

Kysyttävää?

Ohjelmien ylläpito & evoluutio Eritasoisia ylläpitotehtäviä Yksinkertaiset bugikorjaukset, lähdekoodi saatavilla, rajoittuvat muutettaviin koodilohkoihin (ehkä ) Laajentaminen Mukauttaminen (vaihtuvat komponentit, osakokonaisuudet) Rakenteen uusiminen 29

Ohjelmien ylläpidosta / muuntelusta Arkkitehtuuritason muutokset usein kalliita Yksittäisten toteutusosien muuntelu helpompaa Yhteistoiminta ja isommat muutokset Tarve ymmärtää ohjelman rakenne, arkkitehtuuri Muutostarpeita: Korjaukset, päivitykset Järjestelmän uudistaminen (pala palalta) Rautatason muutokset 30

Kurssilla opittuja työkaluja Muunneltavuuden hallinta ja ylläpito/päivitykset Päivitykset, muutokset helpompi Ei-suunnitellut muutokset, enemmän työtä/rakenteeseen koskemista esim. pattern-henkinen lähestymistapa: millä tämän ongelman saisi ratkaistua? Dokumentaatiota arkkitehtuuriratkaisuista, helpompi ymmärtää mitä ollaan tekemässä 31

Käärimistä (wrapping) Kääriminen, rajapintojen uudistamista =Black-box re-engineering (riittää kun tietää mitä mokkula tekee, ei tarvi tietää toteutusta) Toteutusten tai tiedon/tietoesitysten kääriminen mukauttavaa ylläpitoa: käärittävien toimintojen ja tietoalkioiden tunnistamista Uudistava ylläpito: lähdetään rakentamaan järjestelmää uudestaan (toteutetaan järjestelmä uuden mallin mukaisesti) 32

Käärintälähestymistapoja Hajoita ja hallitse (divide-and-conquer) vähittäinen uudistaminen rajapinnan tarjoaminen uudistettujen ja uudistamattomien osien välille Hajoita ja kääri (divide-and-wrap) kaikkien (uudistamattomien) osien kääriminen käärittyjen osien vähittäinen uudistaminen Yhdistä ja hallitse ohjelmistokehyksen rakentaminen uusien ja vanhojen osien välille kehys mallintaa järjestelmän sovellustoiminnallisuutta 33

Toiminnallisuuden vaihto 34

Uudelleenkäyttö 35

Kysyttävää?