Ohjelmistoarkkitehtuuri



Samankaltaiset tiedostot
Arkkitehtuuriperustainen. Tuoterunkoihin perustuva ohjelmistotuotanto. Tuoterunkoarkkitehtuurien hyödyntäminen uudistamisessa

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

6. Arkkitehtuurityylit

Viestinvälitysarkkitehtuurit

Ohjelmistojen suunnittelu

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit kevät

Johdantoluento. Ohjelmien ylläpito

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Viestinvälitysarkkitehtuurit Lähtökohta:

ohjelman arkkitehtuurista.

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

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

2 Ohjelmistoarkkitehtuurien kuvaus

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

Suunnitteluvaihe prosessissa

Ohjelmistoarkkitehtuurit

Ylläpito. Ylläpidon lajeja

Uudelleenkäytön jako kahteen

Ohjelmistoarkkitehtuurit. Kevät

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

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

10. Muunneltavuuden hallinta: variaatiopisteet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

9. Muunneltavuuden hallinta

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Ohjelmiston toteutussuunnitelma

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

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

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Ohjelmistoarkkitehtuurit. Kevät

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Palveluperustaiset arkkitehtuurityylit

3. Käsiteanalyysi ja käsitekaavio

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistoarkkitehtuurit kevät

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

10. Muunneltavuuden hallinta: variaatiopisteet

Arkkitehtuurityylejä ja ratkaisumalleja

12. Kehysarkkitehtuurit

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Bosch-malli. Kolme vaihetta. Termistöä. Ohjelm!toarkkitehtuu"n

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

Kanta. Potilastiedon arkiston arkistonhoitajan opas

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Johdatus rakenteisiin dokumentteihin

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Muunneltavuuden hallinta (Variability management):

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Ohjelmistoarkkitehtuurit

Integrointi. Ohjelmistotekniikka kevät 2003

Hieman lisää malleista ja niiden hyödyntämisestä

Ohjelmistotuotanto. Luento

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmien analysointi. ER-kaaviot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

Koodimalli Code Model

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Järjestelmäarkkitehtuuri (TK081702)

RECO irtaimiston- ja omaisuuden hallinta

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Harjoitustehtävät ja ratkaisut viikolle 48

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Harjoitustehtävät viikolle 42

SEPA - Design Patterns

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

3. Komponentit ja rajapinnat

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

Ohjelmistoarkkitehtuurit. Syksy 2008

Muutamia peruskäsitteitä

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

TIE Ohjelmistojen suunnittelu

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

ITK130 Ohjelmistojen luonne

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita

Suomen avoimien tietojärjestelmien keskus COSS ry

Visual Case 2. Miika Kasnio (C9767)

Maailma visuaalivalmistajan näkökulmasta

11. Kehysarkkitehtuurit

Luokka- ja oliokaaviot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Projektinhallintaa paikkatiedon avulla

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

SecGo. Sähköinen allekirjoitus ja sen käyttö. Ari-Pekka Paananen, SecGo VE Oy Director,technology

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Transkriptio:

Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri Sisältää järjestelmän komponentit, niiden suhteet toisiinsa ja ympäristöönsä TTY Ohjelmistotekniikka 2 1

Arkkitehtuurityylejä Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluperustaiset arkkitehtuurit Viestinvälitysarkkitehtuurit MVC (model view controller) TTY Ohjelmistotekniikka 3 Kerrosarkkitehtuurit Järjestelmä on organisoitu käsitetasoltaan nouseviin kerroksiin Käyttöliittymä Sovelluskohtainen logiikka Sovellusaluekohtainen logiikka Tietokanta TTY Ohjelmistotekniikka 4 2

Tietovuoarkkitehtuurit Komponentit (filter) tuottavat ja kuluttavat tietoalkioita Väylät (pipe) kuljettavat tietoalkioita komponentilta toiselle Leksikaalianalyysi Syntaksianalyysi Semanttinen analyysi Välikoodin generointi Koodin optimointi Koodin generointi TTY Ohjelmistotekniikka 5 Palveluperustaiset arkkitehtuurit Palvelin kontrolloi jotakin resurssia ja tarjoaa siihen liittyviä palveluita Asiakkaat tarvitsevat kyseistä palvelua Palvelun pyytäjä Palvelun tarjoaja Palvelun pyytäjä TTY Ohjelmistotekniikka 6 3

Viestinvälitysarkkitehtuurit Useita keskenään kommunikoivia komponentteja Komponenttien lukumäärää tai niiden palveluita ei tiedetä etukäteen Asiakas palvelupyyntö Palvelija Asiakas palvelun tulos Viestinvälittäjä Palvelija Asiakas Palvelija TTY Ohjelmistotekniikka 7 MVC Käyttöliittymän erottaminen sovelluslogiikasta Erilaisia näkymiä sovelluksen tilasta tilan muutokset heijastuvat käyttöliittymään komento vaste Ohjain (controller) sovelluksen toiminto Malli (model) Näkymä (view) sovelluksen tilan muutos TTY Ohjelmistotekniikka 8 4

Muutettavuus Laatuvaatimuksia Suorituskyky Muutettavuus [prosessi] Muutettavuus [data] Suorituskyky [muisti] Suorituskyky [aika] Uudelleenkäytettävyys TTY Ohjelmistotekniikka 9 Arkkitehtuurityylit vs. laatuvaatimukset Kerros Tietovuo Palveluperustainen Viestinvälitys MVC Muutettavuus [prosessi] + + + + + Muutettavuus [data] ++ - - ++ + Suorituskyky [muisti] -- ++ Suorituskyky [aika] - - - Uudelleenkäytettävyys + + - + + TTY Ohjelmistotekniikka 10 5

Arkkitehtuurin uudistamisen vaiheet 1. Arkkitehtuurin tunnistaminen 2. Arkkitehtuurin muuttaminen 3. Uuteen arkkitehtuuriin perustuva ohjelmiston kehittäminen vrt. takaisinmallinnuksen kautta tapahtuva uudistaminen TTY Ohjelmistotekniikka 11 Arkkitehtuurin uudistaminen T u n n i s t a m i n e n Toiminnallinen taso Arkkitehtuurin muuttaminen Koodaustyylit Kooditaso Vanha lähdekoodi Suunnittelumallit ja -tyylit Ohjelman toiminnalliset suunnitelmat Arkkitehtuuritaso Uusi lähdekoodi K e h i t t ä m i n e n TTY Ohjelmistotekniikka 12 6

Kooditason muutokset (1) 1. taso Tekstuaaliset muutokset merkkijonojen sovittaminen ja korvaaminen esim. Y2K nimien ja tunnusten muuttaminen esim. järjestelmän siirtäminen uuteen ympäristöön muutokset yksinkertaisia, suoraviivaisia ja halpoja Jäsennyspuuhun kohdistuvat muutokset muutokset eivät riipu yksityiskohtaisesta syntaksista esim. uuteen ohjelmointikieleen siirtyminen automaattiset koodimuunnokset esim. Y2K TTY Ohjelmistotekniikka 13 Kooditason muutokset (2) 1. taso Sopivat seuraaviin tilanteisiin: muutokset t rajoittuvat t yksittäisiin ii koodikohtiin rakenteelliset tai toiminnalliset muutokset eivät ole tarpeellisia lähdekoodi on pääasiallisin tai ainoa saatavilla oleva tietolähde käytettävissä olevat resurssit rajoittavat uudistamista rakenteellisten (isompien) muutosten aiheuttama riski on suurempi kuin niiden tuoma hyöty Olennaisia i asioita it (vaatimuksia): i käytettävissä olevat työkalut tekstin ja jäsennyspuun käsittelyyn ohjelmoijien saatavuus lähdekoodin hallinta TTY Ohjelmistotekniikka 14 7

Toiminnallisen tason muutokset (1) Muutokset ohjelman osien välisissä suhteissa esim. funktioiden kutsusuhteet esim. koodin ja datan väliset suhteet esim. tiedostojen väliset suhteet (uudet ryhmittelyt) Muutosten toteuttaminen toiminnallisuuden kapselointi (kääriminen) erilaista ympäristöä varten esim. siirtyminen proseduraalisista ohjelmista oliokeskeisiin toiminnallisuuden pelastaminen (salvage) uuteen ympäristöön uudelleenkäyttö 2. taso TTY Ohjelmistotekniikka 15 Toiminnallisen tason muutokset (2) Sopivat seuraaviin tilanteisiin: rakenteelliset muutokset ovat välttämättömiä ohjelman osien ja niiden välisten yhteyksien rakenne on hyvin dokumentoitu tai se voidaan jäljittää käytettävissä olevat resurssit rajoittavat vain jonkin verran uudistamista rakenteellisten muutosten aiheuttamat riskit ovat keskinkertaisia Olennaisia asioita (vaatimuksia): käytettävissä olevat työkalut moduulien ja rajapintojen tunnistamiseen järjestelmän asiantuntijoiden ja ohjelmoijien saatavuus uudelleenkäytettävien osien tunnistaminen ja kapselointi 2. taso TTY Ohjelmistotekniikka 16 8

Arkkitehtuuritason muutokset (1) 3. taso Arkkitehtuurin elementtien muuttaminen esim. komponenttien tyypin ja rakenteen muuttaminen esim. komponenttien välisten suhteiden (connector) muuttaminen esim. järjestelmän ajoaikaisten mallien muuttaminen Suurten muutosten tai puutteiden vaatima rakenteellinen muutos Vaatii paljon resursseja, mutta tuo suurimmat hyödyt TTY Ohjelmistotekniikka 17 Arkkitehtuuritason muutokset (2) Sopivat seuraaviin tilanteisiin: pyrkimykset k tuotteen tt parantamiseen ovat korkeat k järjestelmän arkkitehtuuri on hyvin dokumentoitu käytettävissä olevat resurssit eivät suuresti rajoita uudistamista järjestelmän ylläpidon jatkaminen aiheuttaa suuremman riskin kuin järjestelmän kehittäminen Olennaisia asioita (vaatimuksia): käytettävissä olevat työkalut arkkitehtuurin tunnistamiseen järjestelmän rakentajien, asiantuntijoiden ja ohjelmoijien saatavuus arkkitehtuuriin perustuva kehittäminen tuoterunkoarkkitehtuurin tunnistaminen 3. taso TTY Ohjelmistotekniikka 18 9

Arkkitehtuurin ominaisuuksia 1. vaihe Sovellusalueesta riippumattomat ominaisuudet tiedon siirto (parametrivälitys, globaalit muuttujat) järjestelmän kontrolli (aktiivinen, passiivinen) dynaaminen käyttäytyminen (prosessit, samanaikaisuus) järjestelmän rakenne (kerroksittainen, tietovirtaan perustuva) Sovelluskohtaiset ominaisuudet varmistus (kaksinkertaiset tiedot, tarkistussummat) turvallisuus (kryptaus, digitaaliset it t allekirjoitukset) it k t) Tuoteperheeseen liittyvät ominaisuudet varianssi (standardit, käyttäjien tarpeet) arkkitehtuurityyli TTY Ohjelmistotekniikka 19 Arkkitehtuurin muuttaminen Suunniteltu (käsitteellinen) arkkitehtuuri Toteutettu (konkreettinen) arkkitehtuuri Etenevä muuttaminen konkreettinen arkkitehtuuri muutetaan vastaamaan käsitteellistä arkkitehtuuria Peruuttava muuttaminen käsitteellinen arkkitehtuuri muutetaan vastaamaan konkreettista arkkitehtuuria 2. vaihe TTY Ohjelmistotekniikka 20 10

Arkkitehtuuriperustainen ohjelmistokehitys 3. vaihe Tarvittavien komponenttien toteuttaminen Arkkitehtuurityylin huomioon ottaminen Uudistaminen voi ulottua monelle tasolle: arkkitehtuuritasolla komponentit ja niiden suhteet muuttuvat toiminnallisella tasolla olemassa olevaa koodia voidaan kääriä kooditasolla ohjelmointikielet ja ympäristöt (alustat) voivat muuttua TTY Ohjelmistotekniikka 21 Esimerkki (1/2) Alkutilanne: Kulukorvaukset Henkilöstö Tilit Palkanmaksu Hankintakulut Asiakaslaskutus Varasto Hankinnat TTY Ohjelmistotekniikka 22 11

Tavoite: Esimerkki (2/2) Kulukorvaukset Palkanmaksu Henkilöstö Tilit Hankinnat Hankintakulut k t Asiakaslaskutus Varasto TTY Ohjelmistotekniikka 23 Arkkitehtuurin uudistamisen ongelmatilanteita? Arkkitehtuurin uudistamisen malleja Mikä on riittävä joukko arkkitehtuurinäkymiä? Miten voidaan säilyttää yhteys suunnitellun ja toteutetun arkkitehtuurin välillä? Miten arkkitehtuurin elementit vaikuttavat laatutekijöihin ja millaisia vaikutuksia laatutekijän muuttumisella on? Miten tunnistetaan yhteiset ja vaihtelevat osat (toisiaan muistuttavissa järjestelmissä)? Miten arkkitehtuurin uudistamisessa voidaan hyödyntää valmiita komponentteja? TTY Ohjelmistotekniikka 24 12

Arkkitehtuurinäkymät Kuvaus: arkkitehtuurin uudelleendokumentointiin kuuluu näkymien ja niiden suhteiden tunnistaminen Ongelma: mikä on riittävä määrä näkymiä Ratkaisu: arkkitehtuurinäkymien luettelo näkymät eri rooleissa olevien kannalta (kehittäjä, arkkitehti, projektin johtaja, ylläpitäjä, testaaja) sopivan notaation käyttö näkymät ovat erilaisia eri tyyppisille järjestelmille esim. oliokeskeiset tai proseduraaliset järjestelmät esim. räätälöidyt tai tuoterunkoarkkitehtuuriin perustuvat TTY Ohjelmistotekniikka 25 Suunniteltu vs. toteutettu arkkitehtuuri Kuvaus: arkkitehtuurityyleille ei ole vastaavia käsitteitä ohjelmointikielissä laatuvaatimusten huomioiminen voi rikkoa arkkitehtuuria Ongelma: miten arkkitehtuurin suunnittelusta voidaan päätellä sen toteutus (ja päinvastoin) Ratkaisu: toteutustyökalun pitäisi pakottaa arkkitehtuurin toteutuksen noudattamaan suunnittelua järjestelmän perustuminen hyvin määriteltyihin komponentteihin TTY Ohjelmistotekniikka 26 13

Laatutekijän sijainti Kuvaus: suunnitteluratkaisut on valittu sen perusteella, mitä laatuvaatimuksia ti i järjestelmän j ä tulee täyttäättää eri laatuvaatimukset voivat olla ristiriitaisia toistensa kanssa Ongelma: miten voidaan päätellä arkkitehtuurielementtien ja laatuvaatimusten suhde Esimerkki: web-pohjaiseen ympäristöön siirtyminen tehokkuus, varmuus (security) Ratkaisu: työkalu tai menetelmä, joka auttaa selvittämään, miten järjestelmä tukee jotakin tiettyä laatutekijää selvitetään, mikä arkkitehtuurityyli tukee mitäkin laatutekijää (miten tämä voidaan mitata?) TTY Ohjelmistotekniikka 27 Yhteiset ja vaihtelevat osat Kuvaus: oleellista tuoterunkoarkkitehtuureissa Ongelma: miten tunnistetaan yhteiset osat olemassa olevista järjestelmistä Esimerkki: yrityksen kolmella osastolla kehitetään samanlaisia tuotteita valitaan joka osastolta tyypillinen tuote ja verrataan niiden samanlaisuutta Ratkaisu: työkalu tai menetelmä samankaltaisuuden tunnistamiseen vertailu kooditasolla ongelmallista erilaiset koodirakenteet, nimeämiskäytännöt, ohjelmointikielet arkkitehtuurikuvausten vertailu arkkitehtuurimallit, laatutekijät, komponenttien rajapinnat, suunnitteluperusteet TTY Ohjelmistotekniikka 28 14

Kaupalliset komponentit Kuvaus: valmiita komponentteja käytetään yhä enemmän komponenttien toiminnan ymmärtämisen tärkeys Ongelma: miten uusi arkkitehtuuri voi hyödyntää valmiita komponentteja Esimerkki: järjestelmään tulee komponentteja eri toimittajilta, jolloin joudutaan selvittämään, mitä liimakoodia tarvitaan Ratkaisu: työkalu tai menetelmä, joka tukee arkkitehtuurin rakentamista valmiista komponenteista avoimia kysymyksiä: milloin komponentin kuvaus on riittävä? mistä tiedetään, että komponentti sopii järjestelmän arkkitehtuuriin? miten luotettavia komponenttien kuvaukset ovat? TTY Ohjelmistotekniikka 29 Järjestelmän arkkitehtuurin arviointi Skenaarioihin perustuva arviointi SAAM (software architecture analysis method) ATAM (architecture trade-off analysis method) Kysymyksiin perustuva arviointi Tarkistuslistaan perustuva arviointi Simulaatioon perustuva arviointi i Metriikkoihin perustuva arviointi TTY Ohjelmistotekniikka 30 15

SAAM-menetelmä 1. Laadi skenaarioita a 2. Kuvaa arkkitehtuuri(t) uu() 3. Luokittele skenaariot 4. Arvioi epäsuorat 6. Suorita lopullinen skenaariot arviointi 5. Arvioi skenaarioiden vaikutukset toisiinsa TTY Ohjelmistotekniikka 31 SAAM-menetelmän vaiheet Skenaarioiden laatiminen skenaarioille annetaan painoarvo (kerroin) Arkkitehtuuri(e)n kuvaaminen karkealla tasolla Skenaarioiden luokittelu suora skenaario arkkitehtuuri tukee skenaariota suoraan, ei tarvita muutoksia epäsuora skenaario arkkitehtuuria joudutaan muuttamaan Epäsuorien skenaarioiden arviointi tarvittavat t muutokset t ja niiden vaikeusasteet t Skenaarioiden vaikutukset toisiinsa vaativatko muutosta samaan komponenttiin? Lopullinen arviointi tuloksena paras tapa jakaa järjestelmä komponentteihin TTY Ohjelmistotekniikka 32 16

Arvioinnin tavoite Kahden (tai useamman) arkkitehtuurin vertailu Yhden arkkitehtuurin arviointi tavoitteet laatutekijöille esimerkkitavoitteita muutettavuudelle: järjestelmä on helposti muutettava, jos todennäköisimmät muutokset onnistuvat vain korkeintaan kahta komponenttia muuttamalla edellisen tulee olla voimassa vähintään 50 % muutoksista, jotka arvioinnissa otetaan huomioon TTY Ohjelmistotekniikka 33 Skenaarioiden kattavuus Varastonhallintajärjestelmä tietokannan muuttaminen järjestelmä olemassa olevien rajapintojen muuttaminen järjestelmän rajapinnat käyttöliittymän muuttaminen näyttöjen muuttaminen kommunikaatioteknologian muuttaminen sisällön muuttaminen toimittajan muuttuminen käyttöjärjestelmän muuttaminen uusien rajapintojen lisääminen ominaisuuden muuttaminen ominaisuuden lisääminen käyttäjän toiminnon muuttaminen sisäisen toiminnon muuttaminen käyttäjän toiminnon lisääminen sisäisen toiminnon lisääminen A B C D E F G H I J TTY Ohjelmistotekniikka 34 17

Esimerkkejä muutosskenaarioista A Uusia tekstikenttiä lisätään asiakastietodialogiin. M-1 C Asiakas- tai tuotenumeroiden tietotyyppiä laajennetaan. M-2 C Uusi pakkaustyyppi lisätään. M-3 C Tuotteille lisätään uusia attribuutteja (esim. väri, koko). M-4 D Tietokannan toimittaja vaihtuu. M-5 E Käyttöjärjestelmä muuttuu. M-6 F Järjestelmä muutetaan automaattiseksi tietovarastoksi M-7 (data warehouse). G Tilaustoimintoa muutetaan niin, että tilaus voidaan ottaa M-8 vastaan, vaikka kaikkia tavaroita ei ole heti saatavissa. H Järjestelmään lisätään uusi käyttäjätyyppi (pääkäyttäjän, M-9 operaattorin ja vuoropäällikön lisäksi). I Järjestelmään lisätään tuntiraportointi. M-10 J Joitakin toimintoja muutetaan niin, että niiden M-11 suorittaminen on mahdollista vain varaston sisältä. TTY Ohjelmistotekniikka 35 Esimerkkejä käyttöskenaarioista Vastaanottaja antoi tuotteiden määrän väärin, ja K-1 virhe yritetään korjata vahvistuksen jälkeen. Operaattori yrittää perua aikaisemmin tehdyn tilauksen mutta ei tiedä tilausnumeroa. Tavallinen käyttäjä toimii vuoropäällikön sijaisena ja tarvitsee väliaikaisesti laajemmat käyttöoikeudet. Aikaisemmin tehty tapahtuma täytyy ajaa uudelleen lokitietojen perusteella. K-2 K-3 K-4 TTY Ohjelmistotekniikka 36 18

Arkkitehtuurin kuvaaminen Asiakas1 Asiakas2 Asiakas3 Asiakashallinta Viestijono Käsittelijä1 Käsittelijä2 Käsittelijä3 Java database connectivity JDBC Tietokanta TTY Ohjelmistotekniikka 37 Uusia skenaarioita Tuotteiden vastaanottoa muutetaan niin, että jos tuotetta ei ole vielä rekisteröity, niin se rekisteröidään vastaanoton yhteydessä. Asiakkaiden määrä ylittää asiakashallinnan kapasiteetin. M-12 M-13 TTY Ohjelmistotekniikka 38 19

Skenaarioiden luokittelu Skenaario M2 vaatii vain yhden koodirivin muutoksen tuotteiden ja asiakkaiden ID-numeroita varten on oma tietotyyppi lisäksi tarvitaan pieni muutos tietokantatauluihin skenaariota voidaan pitää suorana Skenaario M5 on suora JDBC erottaa tietokannan käsittelijöistä Muut skenaariot ovat epäsuoria TTY Ohjelmistotekniikka 39 Epäsuorien skenaarioiden arviointi (esimerkkejä) M-1: Tekstikenttien lisääminen ei ole kovin suuri muutos XML-pohjaisessa viestin välityksessä, mutta lisäksi tarvitaan muutos viestien käsittelyssä. M-3: Pakkaustyypin lisääminen aiheuttaa paljon muutoksia. Pakkaustyyppi täytyy lisätä tietokantaan, lisäksi kaikki tuotteita käsittelevät näytöt ja viestien käsittelijät joudutaan muuttamaan. M-4: Toisistaan i riippumattomia i attribuutteja lisättäessä ä (esim. koko, väri) joudutaan lisäämään uusi tietokantataulu, koska uudet attribuutit pitää lisätä kaikille tuotteille. Lisäksi tarvitaan muutoksia näyttöihin ja käsittelijöihin. TTY Ohjelmistotekniikka 40 20

Skenaarioiden vaatimat muutokset M-1 ++ + näytöt skenaario käsittelijä(t) XMLformaatti tietokanta viestijono asiakashallinta arkkitehtuurikuvaus M-3 ++ ++ ++ M-4 ++ ++ ++ M-6???? M-7 ++ ++ M-8 ++ ++ M-9 + M-10 ++ + M-11 ++ ++ M-12 ++ ++ M-13 ++ ++ TTY Ohjelmistotekniikka 41 21