Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Päivi Ovaska Tutkijaopettaja LTY/Tite

Samankaltaiset esitykset


Esitys aiheesta: "Päivi Ovaska Tutkijaopettaja LTY/Tite"— Esityksen transkriptio:

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

2 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ä

3 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

4 Miten edetään? Analyysivaiheen luokkakaavio
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

5 Luokkien löytäminen käyttötapauksesta
Käyttötapaukset jaetaan luokkien vastuiksi

6 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

7 BCE malli

8 Miten käyttötapauksen toiminnallisuus jaetaan?

9 Boundary Boundary -luokka
Mallintaa järjestelmän ja sen ympäristön välistä vuorovaikutusta

10 Esimerkkejä Boundary luokista
Käyttöliittymäluokat Liittymät järjestelmiin ja laitteisiin

11 Entity Järjestelmän avainkäsitteet

12 Entity Entity luokka Järjestelmän pysyvän tiedon hallinta ja tallennus

13 Esimerkkejä Entity luokista

14 Control luokka Control Kontrolloi käyttötapauksen toimintaa

15 Esimerkkejä Control luokista

16 Esimerkki Entity- Boundary – Control mallista

17 Käyttötapausmallista analyysimalliin

18 Sekvenssikaaviot (sequence diagrams)
tietyn skenaarion toteuttamiseen osallistuvien luokkien ilmentymät lähettävät lähettävät toisilleen viestejä , jotka muodostavat luokkien operaatiokutsut

19 Sekvenssikaavio, esimerkki

20 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

21 Notaatio Paluunuolet eivät pakollisia

22 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

23 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

24 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

25 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).

26 Esimerkki

27 Herätyskellon sekvenssikaavio

28 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

29 Esimerkki 1 palkanlaskentajärjestelmästä

30 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

31 Tilakaavio, esimerkki Tilakone kuvaa hehkulampun, jossa on kaksi hehkulankaa, toimintaa. Hehkulamppua käytetään vetämällä narusta.

32 Tila-automaatin UML notaatio
terminate

33 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

34 Tilakaaviot määrittelyn apuna, esimerkki

35 Käyttöliittymän logiikan kuvaus- esimerkki

36 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ä

37 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

38 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.

39 Määrittelyn lopputulos
Määrittelyn lopputuloksena vaatimusmäärittely –dokumentti, johon dokumentoitu mallinnuksen lopputulos Vaatimusmäärittelydokumentti katselmoidaan ja hyväksytään suunnittelun lähtökohdaksi

40 Kertausta: Mallinnus ja UML
Arkkitehtuurisuunnittelu

41 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.


Lataa ppt "Päivi Ovaska Tutkijaopettaja LTY/Tite"

Samankaltaiset esitykset


Iklan oleh Google