ohjelmistotuotannon menetelmät syksy 2003 dynaaminen mallinnus: sekvenssi- ja tilakaaviot

41
Ohjelmistotuotannon menetelmät Syksy 2003 Dynaaminen mallinnus: sekvenssi- ja tilakaaviot Päivi Ovaska Tutkijaopettaja LTY/Tite

Upload: phoebe

Post on 06-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Ohjelmistotuotannon menetelmät Syksy 2003 Dynaaminen mallinnus: sekvenssi- ja tilakaaviot. Päivi Ovaska Tutkijaopettaja LTY/Tite. Sisältö. Järjestelmän dynaaminen mallinnus Boundary, Control ja Entity –luokat Sekvenssikaaviot Tilakaaviot - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Ohjelmistotuotannon menetelmätSyksy 2003

Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Päivi Ovaska

Tutkijaopettaja

LTY/Tite

Page 2: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Sisältö

• Järjestelmän dynaaminen mallinnus• Boundary, Control ja Entity –luokat• Sekvenssikaaviot• Tilakaaviot• Tilakaavioiden ja sekvenssikaavioiden väliset yhteydet• Luokkien välisten yhteyksien täydentäminen• Luokkien vastuiden sanallinen kuvaus• Määrittelyn lopputulos• Kertaus: mallinnus ja UML• Hyviä tenttikysymyksiä

Page 3: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Järjestelmän dynaaminen mallinnus

• Järjestelmän alustavat pääluokat löytyneet -> voidaan siirtyä miettimään tarkemmin, kuinka käyttötapaukset voidaan

ohjelmistossa toteuttaa• Yksi tapa ajatella erilaisia skenaarioita, jotka kuvaavat yhden

mahdollisen polun kulkea tietty käyttötapaus alusta loppuun• Skenaarioiden päätarkoitus on kuvata, kuinka käyttötapausten vaatima

toiminnallisuus jakautuu järjestelmän eri olioiden vastuulle, sekä lisäksi edelleen tarkentaa olemassaolevaa luokkajakoa

• Jokaista käyttötapausta vastaa parhaimillaan suuri joukko erilaisia skenaarioita– normaali kulku ja poikkeustilanteet

-> kaikkien mahdollisten skenaarioiden eksplisiittinen kuvaaminen järjetöntä

• pääperiaatteena järjestelmän toiminnan ymmärrys

Page 4: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Miten edetään?• Löydä Entity, Control ja Boundary luokat• Jaa käyttötapauksen toiminnallisuus luokkien

vastuiksi• Mallinna toiminnallisuus interaktiokaavioiden

avulla (sekvenssi- tai yhteistoimintakaavio)• Täydennä operaatiot luokille

– käytä tilojen mallinnusta (tilakaavio), jos on tarpeen• Täydennä luokkien väliset yhteydet• Kuvaa vastuut sanallisesti• Tarkista malli

Analyysivaiheen luokkakaavio

Page 5: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Luokkien löytäminen käyttötapauksesta

• Käyttötapaukset jaetaan luokkien vastuiksi

Page 6: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Boundary Control Entity (BCE)

• Variaatio Model-View-Controller arkkitehtuurimallista– vastaa 3-tasoista asiakas-palvelin arkkitehtuuria– erottaa tiedon hallinnan (entity) esitystavasta

(control) sovelluslogiikka-välitason avulla

• Alku 3-tasoiselle arkkitehtuurille• Analyysivaiheen luokista usein

arkkitehtuurin paketteja/komponentteja

Page 7: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

BCE malli

Page 8: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Miten käyttötapauksen toiminnallisuus jaetaan?

Page 9: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Boundary -luokka

Mallintaa järjestelmän ja sen ympäristön välistä

vuorovaikutusta

Boundary

Page 10: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Esimerkkejä Boundary luokistaKäyttöliittymäluokat

Liittymät järjestelmiin

ja laitteisiin

Page 11: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Entity

Järjestelmän avainkäsitteet

Page 12: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Entity luokka

Järjestelmän pysyvän tiedon hallinta ja

tallennus

Entity

Page 13: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Esimerkkejä Entity luokista

Page 14: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Control luokka

Kontrolloi käyttötapauksen toimintaa

Control

Page 15: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Esimerkkejä Control luokista

Page 16: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Esimerkki Entity- Boundary – Control mallista

Employee

nameemployee id

bank infosocial security number

addressphone number

emaildelivery method

salary

Purchase Order

Customer nameBilling address

purchased productdate

Purchase Order Control

+//get purchaseorder()()

0..n

1

0..n

1

Purchase Order Form

Customer informationbilling address

producsts purchaseddate

0..n

1

0..n

1

1n 1n

Page 17: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Käyttötapausmallista analyysimalliin

Page 18: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Sekvenssikaaviot (sequence diagrams)

• tietyn skenaarion toteuttamiseen osallistuvien luokkien ilmentymät lähettävät lähettävät toisilleen viestejä , jotka muodostavat luokkien operaatiokutsut

Page 19: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Sekvenssikaavio, esimerkki

Page 20: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Sekvenssikaavion merkinnät

• Aika kulkee ylhäältä alas• Vuorovaikutustapahtumat ovat vaakasuuntaisia nuolia• Osallistujat (oliot tai toimijat) kuvataan pystyviivoina• Kontrollin omistus voidaan esittää paksunnettuna jaksona,

aktivaatiopalkkina olioviivassa– oliolla on kontrolli, jos sen operaatiota on kutsuttu eikä

operaatiosta ole vielä poistuttu

• Operaatioiden paluut voidaan haluttaessa esittää katkoviivanuolina, joskin aktivaatiopalkki ilmaisee myös paluun

Page 21: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Notaatio

Paluunuolet eivät pakollisia

Page 22: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Sanomat ja signaalit

• Olioiden välinen sanoma sekvenssikaaviossa voi edustaa synkronista operaatiokutsua tai asynkronista signaalin lähettämistä

• Aktiiviset, rinnakkaisia prosesseja edustavat oliot kommunikoivat tyypillisesti signaalein pikemminkin kuin operaatiokutsuin

• Myös käyttäjä edustaa omaa rinnakkaista prosessiaan, joka kommukoi järjestelmän kanssa signaalein

• Aktiivisten olioiden tapauksessa aktivaatiopylväät eivät useinkaan tuo uutta informaatiota, koska oliot ovat periaatteessa jatkuvasti aktiivisia; tällöin pylväät kattavat olion koko eliniän

• Koska viestit tulkitaan myöhemmin vastaanottavan luokan operaatioiksi, kannattaa ne pyrkiä nimeämään verbein, jotka kuvaavat operaation suorittamaa tehtävää

• Viestit voidaan myös varustaa operaation vaatimilla parametreillä, jotka kirjoitetaan sulkuihin viestin nimen perään

Page 23: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Aikamerkinnät

• Sekvenssikaavion aikaskaalalle (tiettyyn kohtaan kuviteltua pystyssä olevaa aikajanaa) voidaan asettaa aikamerkkejä (timingmark), jotka edustavat kyseistä ajanhetkeä. – Näitä aikamerkkejä voidaan käyttää esimerkiksi

rajoitteissa kuvaamaan tiettyjä reaaliaikavaatimuksia. – Myös sanoman lähettämisen viemää aikaa (esimerkiksi

maksimiaikaa) voidaan tällä tavoin spesifioida. – Jos sanoman lähettämisen viemä aika on olennaista

mallissa, sanomanuoli piirretään vinoon alaspäin

Page 24: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Suorituslogiikka

• Sekvenssikaavion pääasiallinen tarkoitus on kuvata yhtä mahdollista tapahtumasarjaa järjestelmän toiminnassa eikä määritellä tietyn toiminnan tai operaation yleistä suorituslogiikkaa. – Niinpä algoritmiset ilmaisut kuten ehdollisuus ja toisto eivät ole

periaatteessa välttämättömiä sekvenssikaavioissa. – Silti tällaiset ilmaisut voivat olla joskus hyödyllisiä

lyhennysmerkintöjä: niiden avulla voidaan samalla sekvenssikaaviolla kuvata useita mahdollisia tapahtumasarjoja.

– Tästä syystä myös UML:ssäon sekvenssikaavioihin otettu mukaan ilmaisut ehdollisuudelle ja toistolle

Page 25: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Suorituslogiikka

• Ehdollisuus kuvataan sanomana, joka haarautuu lähtökohdastaan – Kumpaankin haaraan voidaan liittää hakasuluissa ehto,

jonka vallitessa tämä haara valitaan. – Kukin haara edustaa omaa erillistä alisekvenssikaaviota

haarojen yhdistymiskohtaan saakka . • Toisto kuvataan liittämällä sanoman nimen eteen

toistomääre muodossa *[...], missä hakasulkujen sisällä annetaan mielivaltainen toistoa kuvaava ilmaus (esimerkiksi i = 1..n).

Page 26: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Esimerkki

Page 27: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Herätyskellon sekvenssikaavio

Page 28: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Sekvenssikaavioiden käyttökohteita

• rajapintojen suunnittelu - tilakoneiden välisen kommunikoinnin kuvaaminen– nuolet prosessin sisällä: funktiokutsut– nuolet prosessien välillä: sanomanvälitys (signaalit)– poimitaan tarvittavat rajapinnat suoraan sekvenssikaavioista

• tyypillinen käyttö oliomenetelmissä (määrittely)– ensin laaditaan oliokaavio– olioiden kommunikointi => joukko tapahtumasekvenssikaavioita– poimitaan rajapinnat– mielenkiintoisten olioiden käyttäytyminen => tilakaaviot

• validointi• toteutuksessa

– kattavasta sekvenssikaaviosta voidaan melko suoraan kirjoittaa koodia

Page 29: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Esimerkki 1 palkanlaskentajärjestelmästä

: User : MainForm : LogonForm : LoginControl : Login

start application

login user

enter user name and password

check user name and password

check user name and password

login was successful

set options for user/application

Page 30: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Tilakaaviot

• Käytetään missä tahansa tilanteissa jossa järjestelmän toimintaa voidaan ajatella siirtyminä tilasta toiseen– Käyttöliittymän logiikka, olion “elinkaaren” mallinnus, algoritmien

esittäminen, tietoliikenneprotokollat• Taustalla tila-automaattien teoria• Tilakaavioiden komponentit

– Tilat (erikoistapaukset alku- ja lopputila)– Tilasiirtymät– Heräte (trigger) joka aiheuttaa tilasiirtymän– Ehdot jotka pitää toteutua jotta toimenpide suoritetaan– Toiminnot joko

• Tilaan mentäessä, siellä oltaessa, sieltä poistuttaessa• UML notaatiossa Harelin tilakoneet• SA-menetelmässä Ward&Mellor tilakaaviot

Page 31: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Tilakaavio, esimerkki

Tilakone kuvaa hehkulampun, jossa on kaksi hehkulankaa, toimintaa. Hehkulamppua

käytetään vetämällä narusta.

Page 32: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Tila-automaatin UML notaatio

terminate

Page 33: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Tilakaavioiden käyttömahdollisuuksia

• Mitä järjestelmässä saa tapahtua• Mitä järjestelmässä ei saa tapahtua• Olioiden elinkaaren mallintaminen

– Määrittelyn apuna toiminoja ja tiloja “etsittäessä”– Olion tila muuttuu vain toiminnon seurauksena, siis tilojen

muutoksista löytyy toimintoja• Toiminnon kuvaaminen, havainnollistaminen• Tominnonohjaus

– Synkronoidut tilakaaviot• Tapahtumasekvenssien kuvaaminen

– Sovellusalueen asiantuntija• Algoritmien kuvaaminen

Page 34: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Tilakaaviot määrittelyn apuna, esimerkki

Page 35: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Käyttöliittymän logiikan kuvaus- esimerkki

Page 36: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Tilakaavioiden ja tapahtumasekvenssien yhteys

• perusta: sekvenssikaaviot kuvaavat olioiden interaktion, tilakaaviot olion toiminnon

• tapahtumat ~ tilasiirtymät– tilasiirtymät tapahtuvat tsk:n olioon tulevien nuolien kohdalla– olioon tuleva nuoli on palvelupyyntö, lähtevä nuoli on vaste pyynnölle tai

palvelupyyntö toiselle oliolle• tsk:ssa yksittäisen olion pystyviiva kuvaa tilamuutokset

– kiellettyjen sekvenssien tarkistus, tuottaako tilakone olion pystyviivalla olevan tilamuutossekvenssin

– tilakoneen tilasiirtymien löytäminen sekvenssikaaviosta• tilakaaviot ovat voimakkaampia, sisältävät kaiken minkä tsk:t• skenaariot ovat havainnollisempia mutta epätäydellisiä

Page 37: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Luokkien väliset yhteydet

• Jos sekvenssikaaviossa olio lähettää toiselle oliolle viestin, näiden olioiden välillä täytyy olla yhteys

• Yhteyksien tarkistus sekvenssikaaviota vasten

Page 38: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Luokkien vastuiden sanallinen kuvaus

• Olioluokkaan kuuluvan olion vastuu muodostuu siitä, mitä olio tietää ja miten se osaa palvella

• esimerkkejä palkanlaskentajärjestelmästä• Tuntikortti

– Tuntikortti on entity luokka, joka tallettaa ja päivittää jokaisen työntekijän päivämäärän ja tehtyjen työtuntien määrän.

• Projektinhallintajärjestelmä– Projektinhallintajärjestelmä on boundary luokka olemassaolevaan

projektinhallintatietokantaan, joka on DB2 tietokanta IBM suurkoneympäristössä. Projektinhallintajärjestelmä luokka hakee projektinhallintatietokannasta olemassaolevien projektien työnumerot.

Page 39: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Määrittelyn lopputulos

• Määrittelyn lopputuloksena vaatimusmäärittely –dokumentti, johon dokumentoitu mallinnuksen lopputulos

• Vaatimusmäärittelydokumentti katselmoidaan ja hyväksytään suunnittelun lähtökohdaksi

Page 40: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Kertausta: Mallinnus ja UML

Arkkitehtuurisuunnittelu

Page 41: Ohjelmistotuotannon menetelmät Syksy 2003  Dynaaminen mallinnus: sekvenssi- ja tilakaaviot

Hyviä tenttikysymyksiä

• Selitä esimerkein, mitä järjestelmän dynaamisessa mallinnuksessa tehdään

• Mitä tarkoitetaan BCE (Boundary, Entity, Control) mallilla ohjelmiston määrittelyssä. Anna esimerkkejä.

• Tapahtumasekvenssikaavion tekeminen yksinkertaisesta kuvauksesta

• Minkälaisista osista järjestelmän mallinnus koostuu ja miten UML (Unified Modelling Language) näitä tukee.