9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden variaatiota. 1
Ohjelmistot muuntuvat kahdessa dimensiossa evoluutio, ylläpito aika... Tässä tarkasteltu dimensio tuoteperheen jäsenet uudelleenkäyttö 2
Arkkitehtuurityylit tuoterungon pohjana Tyyli Tuotteissa vaihtuvat Tuotteiden yhteiset osat Kerros Tietovuo Asiakas-palvelin Viestinvälitys Kerrokset Prosessointiyksiköt Asiakkaat, palvelimen toteutus Kommunikoivat komponentit, viestit Kerrosrajapinnat, alemmat kerrokset Tietoformaatti, perusyksiköt Asiakasrajapinta Viestinvälitysinfra 3
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 Tuotekohtanen 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 Tuotekohtanen toiminnallisuus 5
Variaatiopisteet Variaatiopiste: kohta, jossa on jokin 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
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) 7
Variaatiopisteet: MääM äärittely ja sitominen Määrittelyvaihe Sitomisvaihe [Michel Jaring 2005] 8
Variaation kuvaaminen vaatimusmää äärittelyssä: piirremallit Käytetään UML-profiilia <<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>> Horizontal <<alternative>> Pen <<alternative>> GPRS <<alternative>> Vertical <<alternative>> Keyboard 9
Variaation kuvaaminen vaatimusmää äärittelyssä: piirremallit Esimerkki: verkonhallintajärjestelmä 10
Variaation kuvaaminen vaatimusmää äärittelyssä: piirremallit FODA-mallina (Feature Oriented Design Analysis ) 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 12
Variaatiopisteet arkkitehtuuritasolla CommManager - arkkitehtuurityylit - korkean tason suunnittelumallit - rajapinnat (komponentin toteutus) - konfiguraatiokuvaukset 1 1..* <<interface>> CommChannel variationpoint=networkchannels send(message) receive(message) GSMChannel 13
Komponenttipohjainen variaatio pakollinen valinnainen Alusta vaihtoehtoinen Alusta tuotekohtainen Components Tuote Tuotelinja 14
Variaatiopisteet yksityiskohtaisen suunnittelun tasolla Alemman tason suunnittelumallit (esim. Template Method) Periyttäminen Rajapinnat (luokan toteutus) Takaisinkutsut 15
Variaatiopisteet toteutustasolla Parametrit Geneeriset rakenteet (esim. template) Kääntäjän direktiivit (esim. ehdollinen kääntäminen) Build-skriptit 16
Variaatiopisteiden sitominen järjestelmj rjestelmän asennuksessa ja käytk ytössä (mää ääritellään suunnittelutasolla) Asennusparametrit Käyttäjän asetukset GUI räätälöinti Adaptoituvat käyttöliittymät 17