Päivi Ovaska Tutkijaopettaja LTY/Tite

Slides:



Advertisements
Samankaltaiset esitykset
SE-02 UML-notaatio staattinen ja dynaaminen mallintaminen Kalvot: Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo.
Advertisements

Ohjelmiston tekninen suunnittelu
Tietojärjestelmät 2.
JavaScript (c) Irja & Reino Aarinen, 2007
Tietojärjestelmät ja Systeemisuunnittelu
Tietokanta.
Synkroniset tilakoneet
Toiminta kentällä SJAL tuomarikoulutus Sisältö • Tehtävät kilpailun aikana • Sijoittuminen kentällä • Tasapuolisuus ampujia kohtaan • Tulosten tulkitseminen.
Tapahtumasekvenssit = Käyttötapausten realisointi
Tekninen suunnit-telu
Tilasiirtymäkaavio ja eri mallien yhteensovittaminen
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Olio-ohjelmoinnin perusteet luento 3
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
Oliomallittaminen ja UML
HALLITUKSEN PUHEENJOHTAJA VASTUUALUE 1VASTUUALUE 3 VASTUUALUE 4 VASTUUALUE 2 SIHTEERI MALLISEURA RY / HALLITUS - dynaamisen organisaatiokaavion esittely.
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
2. Vuokaaviot.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestitapausten kuvausohje.
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Kuinka tehdä blogi o365:ssä
UML-notaatio staattinen ja dynaaminen mallintaminen
Esitutkimus (tarvekartoitus)
Systeemityö 2 Tilakaavio – State machine diagram
Työasemasovelluksen käyttöliittymä sovelluksien käyttöliittymät voidaan jakaa kahteen pääluokkaan: –kohde-toiminto -pohjaisiin (object-action) käyttöliittymiin.
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Systeemityö 2 Toimintokaavio – Activity diagram
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Osaamisen ja sivistyksen parhaaksi Valintaperusteiden mallintaminen
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Komponenttikaavio Lehtonen Iiro, Janne Liikka
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Sequence Diagram Jani Keskitapio, Annika Alakastari, Heng Qing Zhu TIK9SNA.
Pakkanen * * * Komponenttipohjaisen sovellustuotannon menetelmäpilotti PlugIT-seminaari Annamari Riekkinen ja Kirsi Karvinen FixIT-DoIT / HIS-tutkimusyksikkö.
Käyttöönottokaavio– Deployment diagram Vesa Jokikokko Tarmo Kemi TIK9SNA.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Systeemityö 2 Viestiyhteyskaavio (Sekvenssi kaavio) – Sequence diagram
Ohjelmistojen mallintaminen, sekvenssikaaviot
Koostekaavio– composite structure diagram Mikko Näpänkangas.
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
Tietojärjestelmät ja Systeemisuunnittelu
Tietojärjestelmät ja Systeemisuunnittelu
MapInfon tiedostot TAB – Tiedosto, jonka avulla tietokanta avataan MapInfossa. Tiedostossa tietoja kentistä ja koordinaattijärjestelmästä. DAT, XLS. TXT.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012 OHJ-3010 Ohjelmistotuotannon perusteet, kesäkurssi 2012 [ hauska kuva ]
Sekvenssikaavio– Sequence diagram Lassi Kemppainen
14. Hyvä ohjelmointitapa.
Vaatimukset ja käyttötapaukset
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
UML-notaatio staattinen ja dynaaminen mallintaminen
Vaatimukset ja käyttötapaukset
2. Olio-ohjelmoinnin perusteita
1. Olio-ohjelmointi.
Esityksen transkriptio:

Päivi Ovaska Tutkijaopettaja LTY/Tite 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 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ä

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

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

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

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

BCE malli

Miten käyttötapauksen toiminnallisuus jaetaan?

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

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

Entity Järjestelmän avainkäsitteet

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

Esimerkkejä Entity luokista

Control luokka Control Kontrolloi käyttötapauksen toimintaa

Esimerkkejä Control luokista

Esimerkki Entity- Boundary – Control mallista

Käyttötapausmallista analyysimalliin

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

Sekvenssikaavio, esimerkki

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

Notaatio Paluunuolet eivät pakollisia

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

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

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

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

Esimerkki

Herätyskellon sekvenssikaavio

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

Esimerkki 1 palkanlaskentajärjestelmästä

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

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

Tila-automaatin UML notaatio terminate

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

Tilakaaviot määrittelyn apuna, esimerkki

Käyttöliittymän logiikan kuvaus- esimerkki

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ä

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

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.

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

Kertausta: Mallinnus ja UML Arkkitehtuurisuunnittelu

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.