Kevät 2016 Arkkitehtuurin arviointi, ATAM. Ohjelmistoarkkitehtuurit 2016

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurien arviointi

Kevät Ohjelmistoarkkitehtuurit 2014

9. Ohjelmistoarkkitehtuurien arviointi

9. Ohjelmistoarkkitehtuurien arviointi

7. Ohjelmistoarkkitehtuurien arviointi

Ohar-ATAM pikaisesti. Ohjelmistoarkkitehtuurit 2009

Etukäteistehtävää

ITK130 Ohjelmistojen luonne

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Ohjelmistoarkkitehtuurit, syksy

Arkkitehtuurin arviointi

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit Kevät Johannes Koskinen Esimerkki: Auton toiminnan monitorointijärjestelmä

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

Esimerkki: Auton toiminnan monitorointijärjestelmä

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

Ohjelmistoarkkitehtuurit, syksy

Tietojärjestelmän osat

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

9. Muunneltavuuden hallinta

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

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

Decision-centric architecture review method (DCAR) Tarjolla tänään. Arkkitehtuuritietämys Arkkitehtuuritietämys. Arkkitehtuuripäätökset

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

ISO/IEC sarja (SQUARE)

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Yleisiä asioita. Harkat alkavat ensi viikolla Vierailuluentoa. Slackin #luennot-kanava taas käytössä. Ensi viikon perjantaina, Janne Viitala, Sandvik

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

1 Johdanto. Pieni motivointikalvo. 1.1 Mikä on ohjelmistoarkkitehtuuri?

10. Muunneltavuuden hallinta: variaatiopisteet

Arkkitehti?

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Ohjelmiston toteutussuunnitelma

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistoarkkitehtuuri

Uudelleenkäytön jako kahteen

KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA

10. Muunneltavuuden hallinta: variaatiopisteet

1 Johdanto! Arkkitehti?!

Decision-centric architecture review method (DCAR) Ohjelmistoarkkitehtuurit Veli-Pekka Eloranta (Samuel Lahtinen)

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Decision-centric architecture review method (DCAR) Ohjelmistoarkkitehtuurit Veli-Pekka Eloranta

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Ohjelmistoprojektien hallinta Vaihejakomallit

TOIMINNALLINEN MÄÄRITTELY MS

Luento 12. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

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

Kansallinen ASPAtietojärjestelmä

6. Arkkitehtuurityylit

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

Toimilohkojen turvallisuus tulevaisuudessa

Vanhan järjestelmän vaiheittainen korvaaminen ohjelmistoarkkitehtuurin soveltuvuuden arviointi

Yhteisön kehitystyöhön osallistumisen mahdollisuudet ja mallit

7 Sulautettujen järjestelmien suunnittelumallit. OhAr Marko Leppänen

Ennustamisen ja Optimoinnin mahdollisuudet

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

Luento 6. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen. Antti-Pekka Tuovinen (Jukka Paakki et al.

Projektin suunnittelu

Decision-centric architecture review method (DCAR) Ohjelmistoarkkitehtuurit Veli-Pekka Eloranta

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

Opetussuunnitelmien ja tutkintojen perusteiden rakenteistaminen

Studio ART Oy. Yritysesittely. Studio ART Oy. Kasöörintie Oulu p

7. Tuoterunkoarkkitehtuurit

Arkkitehtuurityylejä ja suunnittelutaktiikoita

Darwin: Tutkimusprojektin esittely

Johdantoluento. Ohjelmien ylläpito

7.4 Variability management

Muunneltavuuden hallinta (Variability management):

6. Arkkitehtuurityylit

OHJELMISTOJEN LAATU. Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Laatu. Ohjelmistoprosessit ja ohjelmistojen. Neljä näkökulmaa laatuun

Ohjelmistoarkkitehtuurit. Kevät

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Suunnitteluvaihe prosessissa

Ohjelmistotekniikka: Luento 6

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen. Antti-Pekka Tuovinen (Jukka Paakki et al.

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

OHJELMISTOJEN LAATU. Ohjelmistoprosessit ja ohjelmistojen. Laatu. Laatu. Neljä näkökulmaa laatuun. Ohjelmisto

Ohjelmistoarkkitehtuurit, syksy

VAATIMUSMÄÄRITTELY

Ohjelmistoarkkitehtuurit, syksy

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Ohjelmistoarkkitehtuurit kevät

Harjoitustehtävät viikolle 42

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ohjelmistotuotanto, s /27/2003

Ohjelmistoarkkitehtuurit

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Transkriptio:

Ohjelmistoarkkitehtuurit Kevät 2016 Arkkitehtuurin arviointi, ATAM http://www.cs.tut.fi/~ohar/ 1

Ohjelmistoarkkitehtuurien arviointi Johdanto ATAM-menetelmä Esimerkki Käytännön kokemuksia ja ongelmia Yhteenveto 2

Arkkitehtuurin rakentaminen kehitysprosessissa Laatuvaatimukset Arkkitehtuurin kannalta merkittävät vaatimukset Vaatimusanalyysi Keskeiset toiminnalliset vaatimukset Ympäristövaatimukset Alustava arkkitehtuurisuunnittelu Alustava arkkitehtuuri Laatuvaatimuksen huomiointi Rajoitteet Yleisten ratkaisumallien soveltaminen Arkkitehtuurimuunnos ei OK OK Toissijaiset toiminnalliset vaatimukset Kaikki käsitelty Yksityiskohtainen suunnittelu Arkkitehtuurin arviointi Arkkitehtuuri 3

Arkkitehtuuri ja laatuvaatimukset Tässä laadulla ei viitata virheettömyyteen vaan siihen millä laadulla järjestelmä tekee loogiset toimintonsa Arkkitehtuuri määrää miten (useimmat) laatuvaatimukset toteutuvat. Hiukan kärjistäen: Ohjelmistoarkkitehtuuri on tapa toteuttaa ohjelmiston laatuvaatimukset Arkkitehtuurin kuvauksen täytyy sisältää kaikki se informaatio, joka tarvitaan päättelemään laatuvaatimustentoteutuminen tai toteutumattomuus Arkkitehtuuria arvioidaan (yleensä) vasten laatuvaatimuksia 4

Ohjelmistojen laatuominaisuudet Ajoaikaiset laatuominaisuudet Suorituskyky Tilankäyttö Luotettavuus Saatavuus Tietoturvallisuus Käytettävyys Kehitys- ja evoluutioaikaiset laatuominaisuudet: Muunneltavuus Siirrettävyys Ylläpidettävyys Uudelleenkäytettävyys Laatustandardit: esim. ISO 9126 5

6

ISO 9126 laatukehikko 7

Pariintumistyöskentelyä Mitä tarkennuksia laatuominaisuuksille? Ylläpidettävyys Käytettävyys Luotettavuus Toiminnallisuus Tehokkuus Siirrettävyys Laajennettavuus 8

Tarkennetut laatuominaisuudet Efficiency Time performance Resource utilization Response time Memory usage Scalability Throughput Maintainability Analyzability Changeability Stability Testability Variability Subsetability Conceptual integrity Traceability Portability Adaptability Installability Co-existence Replaceability Functionality Suitability Accuracy Interoperability Security Data security Access security Safety Reliability Maturity Fault tolerance Recoverability Availability Predictability Usability Understandability Learnability Operability Attractiveness Itse ryhmittelyllä ei käytännössä suurta merkitystä arvioinnissa. Luettelo hyvä pohja arviointikohteiden valintaan. 9

Arkkitehtuuri ja liiketoimintatavoitteet 10

Arvioinnin tulokset Ohjelmistoarkkitehtuurin arviointi vastaa tyypillisesti seuraaviin kysymyksiin: 1) Täyttääkö suunniteltu arkkitehtuuri olennaiset laatuvaatimukset? Jos täyttää, miksi? Jos ei täytä, miksi? 2) Mikä vaihtoehtoisista arkkitehtuuriratkaisuista sopii parhaiten järjestelmälle? Miksi? 3) Kuinka hyvin tietty laatuvaatimus voidaan saavuttaa suunnitellulla arkkitehtuurilla? 11

Varauksia Arviointi pohjautuu arkkitehtuurin kuvaukseen, saatavilla olevaan informaatioon ja osallistujien aktiivisuuteen Arvioinnin tulosten tarkkuus riippuu lähtötietojen tarkkuudesta Arvioinnissa täytyy olettaa järkevä toteutus, arkkitehtuurin täytyy mahdollistaa järkevä toteutus 12

Kysyttävää?

Ohjelmistoarkkitehtuurien arvioinnin ongelma Laatuvaatimukset? Ohjelmistoarkkitehtuuri 14

Laatuvaatimukset tulevat sidosryhmiltä Hyvä suorituskyky, luotettava, hyvä käytettävyys Helposti ylläpidettävä, siirrettävä Loppukäyttäjä Ylläpitäjä 15

Laatuominaisuuksien arviointi Laatuominaisuuksille ei ole selviä täyttymiskriteerejä Esim. ylläpidettävyys: järjestelmän on oltava helppo muuttaa kun sen käyttöympäristö muuttuu Miten arvioida jotain ominaisuutta, jolla on suuri (ääretön) määrä erilaisia tilanteita, joissa ominaisuuden olemassaolo on potentiaalisesti uhattuna Vrt. oikeellisuus testaus Yleinen menetelmä: määrää tavoitteet järjestelmälle, johda niistä halutut laatuominaisuudet tarkenna laatuominaisuudet anna kullekin tarkennetulle laatuominaisuudelle esimerkkitilanne tutki täyttyykö ko. laatuominaisuus tässä esimerkkitilanteessa 16

Laatuvaatimusten täsmentäminen skenaarioilla Skenaario = tilanne tai tapahtumasarja, joka tuo esille jonkin laatuvaatimuksen täyttymisen (jonkin järjestelmän osan kannalta) Skenaario konkretisoi laatuvaatimuksen esimerkillä Skenaarion on oltava riittävän täsmällinen, jotta arkkitehtuuria voidaan arvioida sitä vasten usein tarkkoja lukuarvoja Vrt. perinteinen käyttötapaus toiminnallinen vaatimus Skenaario = arkkitehtuurin testitapaus 17

Ohjelmistoarkkitehtuurien arvioinnin ongelman ratkaisu: skenaariopohjainen arviointi Laatuvaatimukset? Ohjelmistoarkkitehtuuri Vaatimusten tarkennus Skenaariot Analyysi Arkkitehtuuriratkaisut Ratkaisujen identifiointi 18

Tiedon louhinta arkkitehtuurista Asiantuntijoiden näkemykset esim. pääarkkitehti, muita vastaavia järjestelmiä suunnitelleet arkkitehdit ym. Takaisinmallinnus koodia voidaan abstrahoida takaisinmallinnustyökaluilla, ei tuota varsinaista arkkitehtuurikuvausta vaan analysoi erilaisia riippuvuuksia Simulointi jos on olemassa ajettava malli, voidaan tutkia arkkitehtuurista johtuvaa suorituskykyä, luotettavuutta; edellyttää järjestelmän mallintamista ja hyvää työkalua Metriikat voidaan käyttää karkeana työkaluna epäilyttävien kohtien löytämiseen (toimii lähinnä ylläpidettävyydelle), edellyttää hyviä työkaluja esim. suuret luokat, paljon riippuvuuksia komponenttien välillä 19

Vaihtoehtoinen tapa: tarkistuslistapohjainen arviointi Laatuvaatimukset? Ohjelmistoarkkitehtuuri Yleinen tarkistuslista Järjestelmätyyppi Sovitettu tarkistuslista Analyysi yleiset/järjestelmätyyppikohtaiset tarkistuslistat: esim.: onko käyttöliittymäosat erotettu selvästi sovelluslogiikasta? onko kerrosten välillä selvät rajapinnat? onko tietokanta abstrahoitu yleisen rajapinnan taakse? 20

Analysointityökalujen hyödyntäminen Olemassa olevan järjestelmän arkkitehtuuriarvioinnissa voidaan käyttää erilaisia työkaluja (esim. metriikkatyökalut, sääntöjen tarkistustyökalut, visualisointityökalut, riippuvuusanalysaattorit, koodin kopioinnin tarkistajat, takaisinmallinnustyökalut) Erityisen hyödyllistä ylläpidettävyyden ja muunneltavuuden analysoinnissa Monet työkalut toimivat koodin perusteella -> ei välttämättä arkkitehtuuritason informaatiota Voidaan hyödyntää skenaariopohjaisessa arvioinnissa esim. hakemalla ja priorisoimalla skenaarioita, jotka kohdistuvat epäilyttäviin osiin järjestelmässä 21

22

http://newrelic.com/ 23

Koodin kopiointi, Visual Studio (koodin analysointi työkalut) https://msdn.microsoft.com/en-us/library/hh205279.aspx 24

http://www.sonarqube.org/ 25

ConQAT architecture conformance analysis 26

Kysyttävää?

Skenaariopohjaiset arviointimenetelmät SAAM (Software Architecture Analysis Method) keskittyy erityisesti muunneltavuuteen, siirrettävyyteen, ylläpidettävyyteen kehitetty SEI:ssä (Software Engineering Institute, Carnegie-Mellon University) perustuu evoluutioaikaisiin skenaarioihin ATAM (Architecture Tradeoff Analysis Method) soveltuu kaikille laatuominaisuuksille kehitetty SEI:ssä johdettu SAAM:ista MPM (Maintenance Prediction Method) keskittyy ylläpidettävyyteen pyrkii löytämään suht. tarkat kustannusarviot ylläpidolle Jan Bosch:in kehittämä perustuu ylläpitoskenaarioihin 28

ATAM tietovuo http://www.sei.cmu.edu/architecture/tools/evaluate/atam.cfm 29

ATAMin peruskäsitteet Skenaario: arkkitehtuurin testitapaus Laatupuu: kohdejärjestelmän laatuvaatimusten tarkennus asteittain skenaarioiksi (utility tree) Herkkyyskohta: muutokset tämän arkkitehtuuripäätöksen suhteen voivat aiheuttaa merkittäviä muutoksia johonkin laatuominaisuuteen (sensitivity point) Tasapainokohta: arkkitehtuuripäätös joka vaikuttaa useampaan laatuominaisuuteen vastakkaisiin suuntiin (tradeoff) Riski: arkkitehtuuripäätös joka saattaa aiheuttaa ongelmia tulevaisuudessa laatuattribuutin näkökulmasta (risk) Ei-riski: arkkitehtuuripäätös joka voi edesauttaa laatuominaisuuden toteutumisessa (non-risk) 30

ATAMin vaiheet (2 päiväinen) 0. Ennakkovalmistelu 1. ATAMin esittely 2. Liiketoiminnan asettamat vaatimukset tuotteelle 3. Arkkitehtuuriesittely 4. Arkkitehtuurilähestymistapojen tunnistaminen 5. Laatupuun ja skenaarioiden laadinta 6. Arkkitehtuurilähestymistapojen analysointi 7. Skenaarioaivoriihi ja priorisointi 8. Arkkitehtuurilähestymistapojen analysointi 9. Tulosten esittäminen 1. päivä 2. päivä 31

Osallistujat Sidosryhmät: Arkkitehti Ylläpitäjä Testaaja Standardiasiantuntija Turvallisuusvastaava Projektipäällikkö Tuotepäällikkö Asiakas Loppukäyttäjä Oheispalveluvastaava Sovellusalueen asiantuntija Laiteasiantuntija Huolto Markkinointi Ohjelmistokehittäjä 1. päivä 3-5 hlöä. Arkkitehti ja muista kiinteästi suunnittelussa tai toteutuksessa mukana olleita Arviointiryhmä 2. päivä 5-10 hlöä. Kattavasti kaikkien sidosryhmien edustajia Arviointiryhmä 32

ATAM prosessi (Päivä 1) ATAMin esittely ATAMin vaiheet ATAMin tekniikat (skenaariot, laatupuu, jne) Liiketoimintanäkökulma tärkeimmät toiminnallisuudet käyttäjien kannalta liiketoimintatavoitteet taloudelliset, poliittiset yms. rajoitteet Arkkitehtuuriesittely tekniset rajoitteet (kj, ohjelmistoalustat, laitteisto jne.) järjestelmän ulkoiset rajapinnat arkkitehtuurin kuvaus 33

ATAM prosessi (Päivä 1 jatkuu) Arkkitehtuuriratkaisujen tunnistaminen tunnistetaan ja nimetään käytetyt tyylit, suunnittelumallit ja omat ratkaisut selitetään miten ratkaisuilla oletetaan saavutettavan tietyt laatuvaatimukset Laatupuun ja skenaarioiden laatiminen tarkennetaan laatuvaatimukset järjestelmäkohtaisella ryhmittelyllä konkretisoidaan kukin tarkennettu laatuvaatimus skenaariolla priorisoidaan skenaariot tärkeyden ja vaikeuden perusteella Arkkitehtuuriratkaisujen analysointi keskitytään tärkeimpiin skenaarioihin kysytään: tekeekö tämä arkkitehtuuri mahdolliseksi skenaarion, miksi? arkkitehtuuri on syyllinen kunnes toisin todistetaan pyritään tunnistamaan riskit, turvalliset ratkaisut, herkkyyskohdat ja tasapainokohdat 34

Täydennys (Päivä 2) Skenaarioaivoriihi kaikki osapuolet esittävät skenaarioita omilta näkökulmiltaan uudet skenaariot priorisoidaan ja liitetään laatupuuhun vanhat skenaariot vahvistetaan Uusinta-analyysi tärkeimmät skenaariot tarkistetaan vasten arkkitehtuuria mahdolliset uudet riskit tunnistetaan 35

Skenaariot ja skenaariolajit Skenaario konkretisoi laatuvaatimuksen esimerkillä. Tapahtuma tai tapahtumasarja, joka liittyy johonkin laatuvaatimukseen. Skenaario on täsmällinen (vrt. testitapaus, use case) Skenaarion rakenne: Ärsyke - Ympäristö Vaste Käyttötapausskenaario: käyttäjän interaktio järjestelmän kanssa Etäkäyttäjä hakee tietokantaraportin web-käyttöliittymästä suurimman kuormahuipun aikana ja saa sen 5s kuluessa. Kasvuskenaario: ennakoituja muutoksia Järjestelmään lisätään uusi datapalvelin latenssin vähentämiseksi 2,5s, työ tehdään 1 henkilötyöviikossa. Tutkiva skenaario: odottamattomia muutoksia, kuormituksia jne. Puolet palvelimista kaatuu normaalissa käyttötilanteessa, tämä ei vaikuta järjestelmän saavutettavuuteen. Oletusympäristö: Normaali käyttötilanne 36

Skenaario esimerkki 37

Analysoitu skenaarioi (arviointiraportissa) Tyypillisesti 10-15 korkealle priorisoitua skenaariota Skenaarioon liittyvät arkkitehtuuriratkaisut tunnistetaan ja luokitellaan (esim. T = tasapainokohta, R = riski, N = eiriski) Arkkitehdin selvitys skenaarion hoitumisesta kirjataan (Description) Kunkin ratkaisun liittyminen skenaarioon selitetään (Argumentation) 38

Esimerkki: laatupuu laatuominaisuudet Suorituskyky tarkennukset Transaktioiden käsittely Vasteaika skenaariot Käsittelee 1000 palvelupyyntöä/sek ilman viivettä käyttäjille. (H,M) Käyttäjävarmistus < 1 sek. (H,M) GUI Web-pohjaiseksi 1 kk:ssa (M,H) Laatu Muunneltavuus Saatavuus GUI muutokset Tietokantamuutokset Laitteistoviat Tietokanta vaihdetaan Oracleksi 6 kk:ssa (L,H) Palvelimen kovalevyn hajoamisen jälkeen uusintakäynnistys 5 min:ssa (L,H) Tietoturvallisuus Palvelimen kaatuminen Korttien käyttö Uudelleenkäynnistys autentikaatiopalvelimen kaatuessa 5 min:ssa (M,M) Luottokortin tiedot turvassa 99.999% (H,L) 39

Skenaarion priorisointi Tavallisesti kaksiosainen prioriteetti: kuinka tärkeä (tuotepäällikkö, projektipäällikkö) kuinka vaikea toteuttaa (arkkitehti) Kolme arvoa: H (high), M (medium), L (low) Voidaan tehdä myös äänestämällä 40

Tehtävä: Anna muunneltavuuteen liittyvä skenaario Fitgigabytelle. Anna laajennettavuuteen liittyvä skenaario Fitgigabytelle. Anna saavutettavuuteen tai suorituskykyyn liittyvä skenaario Fitgigabytelle. 41

Herkkyyskohta Herkkyyskohta = arkkitehtuuriratkaisu, joka on kriittinen jonkin laatuominaisuuden saavuttamisen kannalta. Esimerkki: MVC-tyylin käyttö GUI arkkitehtuurissa on olennaista järjestelmän siirrettävyyden kannalta. 42

Tasapainokohta Tasapainokohta = herkkyyskohta, joka koskee useaa laatuominaisuutta (yleensä vastakkaisiin suuntiin) Esimerkki: XML:n käyttö tietoformaattina parantaa järjestelmän integroitavuutta mutta heikentää sen suorituskykyä. 43

Riski Riski = potentiaalisesti ongelmallinen arkkitehtuuriratkaisu, joka voi heikentää jotain laatuominaisuutta Riski = ratkaisu/fakta + laatuseuraamus + perustelu Esimerkki: Kriteerit ja säännöt keskimmäisen kerroksen komponenttien tekemiselle ovat epäselvät (ratkaisu/fakta). Tästä voi seurata toiminnallisuuden replikointia eri kerroksissa (perustelu), mikä heikentää ylläpidettävyyttä (laatuseuraamus). 44

Ei-riski Ei-riski = arkkitehtuuriratkaisu, jolla on tiedossa (lähinnä) vain hyviä laatuseuraamuksia. Ei-riski = oletus + ratkaisu + laatuseuraamus + perustelu Esimerkki: Olettaen, että komponentit eivät joudu tutkimaan toistensa tilaa (oletus), Tarkkailija-suunnittelumallin käyttö komponenttien välisessä kommunikoinnissa (ratkaisu) parantaa muunneltavuutta (laatuseuraamus), koska komponenttien ei tarvitse tietää toisistaan mitään muuta kuin takaisinkutsu- ja rekisteröintirajapinnat (perustelu). 45

Raportointi ATAM:in tärkeimmät tulokset: Keskeisten arkkitehtuuriratkaisujen tunnistaminen Olennaisimpien laatuun vaikuttavien käyttö- ja kehitysskenaarioiden tunnistaminen Laatupuu skenaarioineen: kuvaus laatuvaatimusten ja arkkitehtuuriratkaisujen yhteydestä Arkkitehtuuriin liittyvien riskien tunnistaminen 46

Raportin rakenne (esimerkiksi) 1. Introduction 2. Target System 2.1 Description of the System 2.2 Most Important Architectural Solutions 3. Analyzed Scenarios 3.1 Maintainability 3.2 Reliability 3.3 Efficiency 3.4 Usability 4. Analysis Overview 4.1 General Observations 4.2 Specific Issues 4.3 About the Process 5. Conclusions References Appendix: Complete Scenario List 47

Skenaariot arviointiraportissa (esim.) Tyypillisesti 10-15 korkealle priorisoitua skenaariota Skenaarioon liittyvät arkkitehtuuriratkaisut tunnistetaan ja luokitellaan (esim. T = tasapainokohta, R = riski, N = eiriski) Arkkitehdin selvitys skenaarion hoitumisesta kirjataan (Description) Kunkin ratkaisun liittyminen skenaarioon selitetään (Argumentation) 48

Mitä potentiaalisia ongelmia näet ATAMissa / vastaavissa menetelmissä? 49

ATAMista Iso kysymys: ovatko skenaariot oikeasti järkeviä/hyödyllisiä, pystytäänkö valitsemaan olennaisia skenaarioita (ennustaminen)? Löydetyt riskit vs. piiloon jääneet Priorisointi, osataanko valita oikeat skenaariot? Varma hyöty: keino saada ohjelmistoon liittyvät tahot kerrankin yhteen Saadaan hiljaista tietoa dokumentoitua Saadaan jonkinlainen yleiskäsitys järjestelmästä Saadaan julki eri osapuolien huolia ja ongelmia / mahdollisesti resursseja joihinkin kriittisimpiin asioihin puuttumiseen 50

Yhteenveto Arkkitehtuuripäätösten löytäminen/dokumentointi Laatuominaisuuksien yhdistäminen arkkitehtuuriratkaisuihin Skenaariopohjaisuus, skenaarioiden käsittely ATAM: http://www.sei.cmu.edu/architecture/tools/evaluate/atam.cfm http://www.sei.cmu.edu/reports/00tr004.pdf 51

Kysyttävää?

Arkkitehtuurien arviointi Parhaillaan menossa olevaa tutkimusta, arviointi lite-versio Pyritään yhdistämään ATAMin jadcarin hyviä puolia, mutta tekemään se arvioitavan näkökulmasta mahdollisimman lyhyessä ajassa Teollisuus ja ATAM lähes mahdoton yhtälö, harvalla firmalla mahdollisuus pistää 6-10 kaveria kahdeksi päiväksi arviointeihin Arvioijat (tutkijat jne) tekevät enemmän ennakkotyötä ja esivalmisteluja 53

Yleiskuva prosessista esihaastattelu Arkkitehtuurin arviointi Esihaastatteluun valimistautuminen arkkitehtuuriesitys bisnesesittely Analyysi arkkitehtuuripäätöst en tunnistaminen ja Skenaarioiden tekeminen päätösarviointi Skenaarioarviointi Dokumentoidut päätökset Dokumentoidut skenaarioiden arviot 54

Esimerkkiaikataulu 9:00 arkkitehtuuriarvioinnin työpaja alkaa 9:00 9:05 Esittely, tavoitteet, menetelmä, aikataulu 9:05 Sessio 1: päätöspohjainen arviointi 9:05 9:20 AM Walk-through of elicited architecture decisions 9:20 9:30 AM Prioritizing decisions 9:30 10:00 AM Documentation of selected decisions 10:00-11:00 AM Analyzing decisions 11:00 11:59 lounas 12:00 Sessio 2: skenaariopohjainen arvionti 12:00 12:05 esittely 12:05 12:20 ennakkoesittelyn perusteella tehtyjen skenaarioiden esittely 12:20 12:35 skenaarioiden valinta 12:40 15:20 skenaarioanalyysi 15:20 16:00 yhteenveto päivästä 55