Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Samankaltaiset tiedostot
Ohjelmasuoritusmalli ja sen käyttö

Ohjelmistojen mallintaminen, mallintaminen ja UML

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen suorituskyky, Kurssin tavoitteet

Esimerkki ohjemasuoritusmallien käytöstä

Ohjelmistojen suunnittelu

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

Tietojärjestelmän osat

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Dynaaminen analyysi II

Ohjelmistotekniikan menetelmät, UML

Ohjelmiston toteutussuunnitelma

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen, kesä 2009

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Suorituskykydatan kerääminen

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen, kesä 2010

Unified Modeling Language

Ohjelmistotekniikan menetelmät, kevät 2008

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Määrittelyvaihe. Projektinhallinta

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

Järjestelmätason mallit III

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Verkkosovellusten mallintaminen

Lomalista-sovelluksen määrittely

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

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

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Mittaamisen maailmasta muutamia asioita. Heli Valkeinen, erikoistutkija, TtT TOIMIA-verkoston koordinaattori

UML -mallinnus TILAKAAVIO

Strathclyde-prosessi

Määrittely- ja suunnittelumenetelmät

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmistojen mallintaminen. Matti Luukkainen

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

Ohjelmistotekniikka - Luento 2

Johdantoluento. Ohjelmien ylläpito

UML-kielen formalisointi Object-Z:lla

Käyttötapausten mallintaminen

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmiston suorituskyvyn mittaaminen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Cynefin viitekehys eri toimintaympäristöt

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistoarkkitehtuurit. Kevät

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

käyttötapaukset mod. testaus

2 Ohjelmistoarkkitehtuurien kuvaus

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

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

Ohjelmistojen mallintaminen, kertausta

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Käyttötapausanalyysi ja testaus tsoft

1. Tarkastellaan seuraavaa kaaviota

Dynaaminen analyysi IV

UML:n yleiskatsaus. UML:n osat:

ISO Standardisarja Eräitä ulottuvuuksia Kari Komonen

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

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

Turvallisuusseminaari Silja-Line

SOTE-AKATEMIA TEKNOLOGISEN MURROKSEN JOHTAMINEN SOTE-ALALLA

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Software engineering

TU-C9290 Viestintä 2. Luento 6, Vastuuopettaja Miia Jaatinen Kurssiassistentti Ilona Rahnasto

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Käyttäjätarinat perinteisessä hankkeessa. Sisältö ja käytännöt

Ohjelmistotekniikan menetelmät, koe

Vaatimustenhallinta. Exit

YRKK18A Agrologi (ylempi AMK), Ruokaketjun kehittäminen, Ylempi AMK-tutkinto

Suorityskyvyn mittaaminen viittomakielisten videoiden sisältöanalyysissä. Ville Viitaniemi Tietojenkäsittelytieteen laitos 16.1.

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Onnistunut ohjelmistoprojekti

FinZEB työpaja Tämän hetken haasteet energiatehokkaassa suunnittelussa

Projektityö

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Testaaminen ohjelmiston kehitysprosessin aikana

Altistumisskenaarion laatimista koskeva ohje

Poweria analytiikkaan

Seurantalaskimen simulointi- ja suorituskykymallien vertailu (valmiin työn esittely) Joona Karjalainen

Transkriptio:

Suorituskyky ja ohjelmistokehitys Suorituskykymallit Luento 2 58153003 Ohjelmistojen suorituskyky 1 SUORITUSKYKYISTEN OHJELMISTOJEN KEHITTÄMINEN 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1

Työ Ohjelmiston elinkaari ja suorituskyky konseptointi kehitys Käyttöönotto Tuotanto & jatkokehitys Aika Tunnista ja analysoi suorituskykyvaatimukset Kehittele ja analysoi teknologia-ja arkkitehtuuriratkaisuja/valintoja - Hylkää ilmiselvästi huonot Suorituskyvyn hallinnan käytäntöjen kehitys -Instrumentointi -Työkalut -Mittaukset -Takaisinkytkentä kehitykseen Jatkuva mittaaminen ja seuranta Ongelmien selvittäminen ja Sk:n parantaminen Muutosten sk-vaikutusten arviointi 58153003 Ohjelmistojen suorituskyky 3 Proaktiivinen ja reaktiivinen suorituskyvyn hallinta Proaktiivinen Tilanteiden ennakointi ja niihin valmistautuminen etukäteen Reaktiivinen Tilanteisiin reagointi vasta niiden tullessa konkreettisesti eteen 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2

Proaktiivisuus vs. reaktiivisuus Proaktiivisen suorituskyvyn kehittämisen ja hallinnan kannattajat korostavat Vaatimusten huolellista analysointia Arkkitehtuuri- ja teknologiavaihtoehtojen analyyttistä arviointia (mallit, prototyypit) suorituskyvyn kannalta ennen sitoutumista niihin Selkeää roolitusta ja sovittuja vastuita suorituskyvyn hallinnassa Kehittäjien kouluttamista ja tukemista 58153003 Ohjelmistojen suorituskyky 5 Proaktiivisuus vs. reaktiivisuus Reaktiivisen lähestymistavan edustajat korostavat Mittaamista, mikä yleensä vaatii konkreettista implementaatiota jota mitata Luotettavien arvioiden saamisen vaikeutta abstraktien mallien perusteella Luottamusta teknologia- ja laitteistotoimittajien kokemukseen ja kykyihin Ongelmien korjaamista ja säätämistä tarpeen mukaan Reaktiivinen hallintakin vaatii yleensä jonkin verran ennakointia onnistuakseen Implementaation instrumentointi alusta lähtien, työkalujen kehitys jne. 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3

SPE Smith & Williams ovat proaktiivisten menetelmien kannattajia Heidän SPE -menetelmänsä (Software Performance Engineering) keskittyy ohjelmistojärjestelmän arkkitehtuuri-, suunnittelu- ja implementaatiovaihtoehtojen evaluointiin Tasapainottelu (trade-off) vaatimusten, resurssien ja ohjelmiston suunnitteluratkaisujen välillä Mallien käyttö vaihtoehtoisten ratkaisujen evaluointiin jo ennen implementoinnin aloittamista SPE ohjaa myös vaatimusten ja arvioinneissa tarvittavan datan hankintaa sekä evaluointien läpivientiä ja antaa neuvoja hyvistä ja huonoista ratkaisumalleista (performance patterns and anti-patterns) 58153003 Ohjelmistojen suorituskyky 7 SPE SPE:n tavoitteena on pystyä vastaaman jo kehitysprojektin aikaisessa vaiheessa seuraaviin kysymyksiin Pysyvätkö tärkeimpien toimintojen vastausajat vaadituissa rajoissa? Pystyvätkö laitteisto ja tietoliikenne yhteydet kantamaan odotetun kuorman? Skaalautuuko järjestelmä tuleviin tarpeisiin? 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4

SPE:n suorituskykymallit SPE käyttää toteutettavan järjestelmän malleja suorituskykyarviointien perusteena Malleilla on rajoituksensa mutta niitä voidaan laatia melko vähällä vaivalla arkkitehtuuriratkaisuja mietittäessä Mallien ei tarvitse olla kattavia eikä kovin yksityiskohtaisia, kunhan ne tavoittavat suorituskyvyn kannalta oleelliset piirteet ja vuorovaikutukset järjestelmän komponenttien toiminnasta sekä laitteistosta 58153003 Ohjelmistojen suorituskyky 9 SPE:n mallinnusstrategiat (1) Yksinkertaisten mallien käyttö Projektin alkuvaiheessa yksinkertaisilla malleilla pyritään saamaan nopeaa palautetta eri ohjelmistoratkaisuista Tavoitteena on laatia mahdollisimman yksinkertaisia malleja, joiden avulla voidaan kuitenkin havaita arkkitehtuurin tai implementaatioratkaisujen ilmeisimmät suorituskykyongelmat ( show stoppers ) Jos jo yksinkertainen malli osoittaa ratkaisun toimittamattomaksi, ei yksityiskohtaisempi malli tilannetta muuksi muuta 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5

SPE:n mallinnusstrategiat (2) Pahimman ja parhaan tilanteen mallit Alkuvaiheen mallien suorituskykyparametrien (laitteiston nopeus, tietokantaoperaatioiden vaatima levyhakujen määrä) arviot ovat epävarmoja ja niillä voi olla laaja haarukka Haarukan ylä- ja alarajojen pohjalta laaditaan parhaimman ja pahimman tapauksen mallit Jos parhaimman tapauksen malli ennustaa suorituskykyongelmia, on tutkittava ratkaisuvaihtoehtoja, kunnes tyydyttävä ratkaisu löytyy Pahimman tapauksen mallin antaessa tyydyttävän tuloksen voidaan olla melko luottavaisia ratkaisun toimivuudesta Mallien avulla voidaan tunnistaa komponentit joilla on suhteellisesti suurin vaikutus esimerkiksi vastausaikoihin 58153003 Ohjelmistojen suorituskyky 11 SPE:n mallinnusstrategiat (3) Täsmentyvät mallit Kehitystyön edetessä yksinkertaisia malleja voidaan täsmentää ja tarkentaa, kun suorituskykyparametreista ja ohjelmiston yksityiskohdista saadaan lisää ja tarkempaa tietoa 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6

SPE:n käyttämät mallityypit UML:n käyttötapaukset ja skenaariot sekvenssikaavioilla kuvattuna Ohjelmasuoritusmallit (Software Execution Models) Skenaarioiden kulku ja vastausaikojen haarukointi yksittäisten käyttötapausten näkökulmasta Järjestelmäsuoritusmallit (System Execution Models) Suoritustehon ja vastausaikojen haarukointi, kun järjestelmässä on samaan aikaan useita käyttäjiä, joiden pyynnöt kilpailevat samoista resursseista 58153003 Ohjelmistojen suorituskyky 13 SPE -prosessi Aktiviteettikaavio, joka kuvaa SPEmenetelmän yleisen kulun (Smith&Williams 2002, Kuva 2-1, s.28) 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7

RUP ja suorituskyky Laskaritehtävänä saat selvittää, miten suorituskykyä hallitaan ja kehitetään Rational Unified Process viitekehyksen mukaisessa iteratiivisessa kehitysprosessissa http://en.wikipedia.org/wiki/performance_en gineering ja ketterässä kehityksessä 58153003 Ohjelmistojen suorituskyky 15 UML:n käyttötapausten ja skenaariokaavioiden käyttö OHJELMISTOJEN SUORITUSKYKYMALLIT 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8

Suorituskykymallit Ohjelmistojärjestelmiä voidaan mallintaa monesta näkökulmasta ja monella tasolla Oleellisia malleja ovat Suorituskyvyn kannalta tärkeimpien käyttötapausten (skenaarioiden) suorituksen mallinnus (~ vastausajat) Järjestelmän laite- ja ohjelmistoresursseja kuvaavat mallit, joita käyttäen voidaan arvioida koko järjestelmän suorituskykyä (~ suoritusteho) erilaisten työkuormien resurssitarpeiden perusteella ja resursseista käytävä kilpailu huomioonottaen Ohjelmistokomponenttien laitteistosijoittelua ja kommunikaatioväyliä kuvaavat mallit 58153003 Ohjelmistojen suorituskyky 17 SPE ja UML SPE on alun perin kehitetty oliopohjaiset ohjelmistot mielessä, joten UML:n käyttö on luontevaa osana menetelmää SPE käyttää lähinnä UML:n käyttötapauksia ja sekvenssikaavioita ja sijoittelukaavioita UML:ää käytetään suorituskyvyn kannalta tärkeimpien skenaarioiden (käyttötapauksen suoritus) tunnistamiseen ja määrittelyyn 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9

SPE ja UML UML:n käyttötapausten ja sekvenssikaavioiden perusteet oletetaan tunnetuiksi Jos ovat unohtuneet, kertaa asiat esim. Ohjelmistotuotannon menetelmät kurssin materiaaleista Seuraavassa keskitytään niiden käyttöön SPE:ssä 58153003 Ohjelmistojen suorituskyky 19 Käyttötapaukset ja skenaariot Käyttötapauksilla mallinnetaan melko karkealla tasolla, mitä ohjelmisto tekee ulkopuolisten toimijoiden (actors, käyttäjät, operaattorit, toiset järjestelmät) näkökulmasta Millä tavoin he käyttävät järjestelmää saavuttaakseen jonkin tavoitteensa (työtehtävä, informaation saaminen, digitaalisen sisällön kuluttaminen jne.) Käyttötapauksilla on selvä lähtökohta sekä lopputilanne, joka on merkityksellinen käyttäjän kannalta 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10

Käyttötapaukset ja skenaariot Järjestelmän kaikkien käyttötapausten joukosta pitää tunnistaa suorituskyvyn kannalta kriittiset kt:t Ovat järjestelmän toiminnan ja mission kannalta kriittisiä (joiden ehdottomasti pitää toimia halutulla tavalla) Vaikuttavat käyttäjän käsitykseen järjestelmän responsiivisuudesta Joiden suorituskykytavoitteisiin liittyy riskejä 58153003 Ohjelmistojen suorituskyky 21 Käyttötapaukset ja skenaariot Karkean tason käyttötapaukset (jotka oikeastaan sisältävät vain kuvaavan nimen ja käyttäjäroolit) täytyy tarkentaa asteittain skenaarioksi eli konkreettisiksi tapahtumakuluiksi, jotka Kuvaavat aluksi käyttäjäroolien ja järjestelmän välisen vuorovaikutuksen ajassa Black-box skenaariot Tarkentuvat sitten järjestelmän komponenttien välisen vuorovaikutuksen (sisäisen prosessoinnin) kuvauksella White-box skenaariot 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11

Esimerkki ATM (eli pankkiautomaati) Käyttötapauksia voidaan jakaa ryhmiin ja luokitella, ja niiden välille voidaan määritellä erilaisia assosiaatioita (sisältyvyys, erikoistus, laajennos) 58153003 Ohjelmistojen suorituskyky 23 ATM black box skenaario yksi mahdollinen tapahtumakulku (skenaario jatkuu, ei näytetä tässä kuvassa loppuun asti) 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12

Toisto ja valinta kaikki vaihtoehtoiset kulut Viittaus toiseen sekvenssikaavioon 58153003 Ohjelmistojen suorituskyky 25 Withdrawal sekvenssi avattuna 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13

Ajoitus UML sekvenssikaavioihin on mahdollista liittää viestien lähetykseen ja vastaanottoa koskevai aikarajoitteita Käytetään lähinnä joidenkin tapahtumien välisen keston minimi- ja maksimiaikojen määrittelyyn Timeout Tavoiteaikoja voidaan myös mallintaa samalla mekanismilla, jos käytetään myös kommenttilappua selittämään, miten rajoite pitää tulkita 58153003 Ohjelmistojen suorituskyky 27 Aikarajoitteet 58153003 Ohjelmistojen suorituskyky 28 Helsingin Yliopisto / Tktl 14

Rinnakkaisuus Aktiiviset objektit ovat olioita, joilla on oma suoritussäie (thread of execution) Ne yleensä aktiivisesti ohjaavat ja kontrolloivat muiden olioiden toimintaa ja vuorovaikutusta Luokille on määritelty stereotyypit <<Process>> ja <<Thread>> Vastaavat samoja käyttöjärjestelmätason käsitteitä Sijoittelukaavioissa määritellään ohjelmistokomponenttien suoritusaikainen sijoittelu laitteiston prosessointiyksiköihin (nodes) Komponentti ~kokoelma yhteenkuuluvia toimintoja ja palveluita, implementaation yksikkö 58153003 Ohjelmistojen suorituskyky 29 Rinnakkaisen toiminnan kuvaus Rinnakkain suoritettavia toimintoja, joitten tapahtumat (viestit) saavat lomittua muuten vapaasti, mutta fragmentin sisäisen järjestyksen silti säilyttäen 58153003 Ohjelmistojen suorituskyky 30 Helsingin Yliopisto / Tktl 15