Ohjelmistojen mallintaminen Tietovuokaaviot 3.11.2008 Harri Laine 1
t Data flow diagrams Pohjana systeemiteoreettinen järjestelmämalli Input system output Järjestelmän tehtävä on muokata lähtötiedoista (raaka-aineista) tulostietoja (tuotteita) jalostaa tietoa Systeemiteorian mukaan järjestelmää voidaan hierarkkisesti jakaa osajärjestelmiin, jotka yhdessä hoitavat kokonaisjärjestelmän tehtävän 3.11.2008 Harri Laine 2
t Tietovuokaaviossa järjestelmään tulee ulkopuolelta tietoja ja järjestelmä tuottaa ulkopuolelle tietoja Tietoja saadaan ulkopuolisista lähteistä ja niitä toimitetaan ulkopuolisille tahoille käyttäjät ovat ulkopuolinen taho Järjestelmän ylimmän tason malli on sidosryhmäkaavio (context diagram) yleiskuva järjestelmästä 3.11.2008 Harri Laine 3
t Järjestelmän sidosryhmiä ovat organisaatioyksiköt, henkilöt, henkilöroolit tai ulkoiset järjestelmät, jotka joko toimittavat syötteitä järjestelmään tai saavat siltä tulosteita. Sidosryhmäkaavio (context diagram) rajaa tietojärjestelmän suhteessa ympäristöönsä mitä sisältyy järjestelmään mitä jää ulkopuolelle 3.11.2008 Harri Laine 4
t Järjestelmän sidosryhmät ovat tyypillisesti järjestelmän tukeman (liike)toiminnan osan osapuolia Sidosryhmäkaavio näyttää sidosryhmien lisäksi järjestelmän tärkeimmät yhteydet sidosryhmiin sidosryhmille suunnatut tai niiltä saatavat tiedot tai tuotettavat tiedot kaikki sidosryhmille menevät ja niiltä saatavat tietovuot ovat mukana, mutta ei välttämättä erillisinä vaan sopivasti ryhmiteltyinä. Tärkeimmät tietovuot ovat mukaan erillisinä. 3.11.2008 Harri Laine 5
t Tietovuotekniikan keskeistä hierarkkinen ositus Toiminta jaetaan osiin ja tietovirrat kohdistetaan jaon tuloksena saatuihin osiin Osiinjako ei saa hävittää mitään tietoa Osiinjako tuottaa tarkemman mallin ohjelmistosta Ylimmällä tasolla järjestelmä nähdään yhtenä tietojenkäsittelyprosessina 3.11.2008 Harri Laine 6
t järjestelmä yhtenä kokonaisuutena järjestelmän pääosat tarkekempi kuva tarkennustasoja voi olla useita 3.11.2008 Harri Laine 7
Esimerkki sidosryhmäkaaviosta: ulkoisia tahoja järjestelmään syötettäviä ja siltä saatavia tietokokonaisuuksia järjestelmä yhtenä prosessina Ongelma: Lippuvarauksista pitäisi saada jokin tuloste ehkä pitäisi ottaa teatteri mukaan ulkoiseksi tahoksi 3.11.2008 Harri Laine 8
PROSESSI (process) toiminto = tehtäväkokonaisuus kuvaa tekemistä (tietoa muokataan jollain tavoin), prosessi saa syötteitä ja tuottaa tulosteita ULKOINEN TAHO (external entity) järjestelmän ulkopuolelle rajattu järjestelmä, käyttäjä tai muu olio, joka joko saa järjestelmältä tietoa ja/tai antaa järjestelmälle tietoja, suunnittelija ei voi vaikuttaa ulkoisten tajojen toimintaan, joskus erotellaan ulkoiset tahot tiedontuottajiksi (source) ja tiedon hyväksikäyttäjiksi (sink). 3.11.2008 Harri Laine 9
TIETOVUO (tietovirta) (data flow) Kuvaa suoraa tiedonkulkua prosessin ja toisen prosessin / tietovaraston / ulkoisen tahon välillä, Tietovuon toisena osapuolena on aina prosessi, Tietovuolla on suunta Tietovuon tietosisältö voidaan kuvata erillisellä tietosisällön kuvausmallilla (kurssi Tietokantojen perusteet) (lomake, tuloste, sanoma(joukko), käyttöliittymän kautta saatava data, úlos menevä tiedosto) TIETOVARASTO (data store) Kuvaa tiedon tilapäistä tai pitkäaikaista säilytystä, Prosessit tuottavat tietovaraston tiedot Prosessit voivat hakea tietoa tietovarastosta Tietovarastot tulevat esiin vasta osiinjaon tuloksena, kun useampi prosessi käyttää niitä 3.11.2008 Harri Laine 10
Kirjan esimerkki (yleiskaavio, tason 0 kaavio): - ongelma 1: tietoa syntyy tyhjästä - arpooko järjestelmä näyttöajat? CRUD=create,read update,delete 3.11.2008 Harri Laine 11
Vaihtoehto kirjan ositukselle F1.1 MovieInfo Movies MovieData tieto elokuvasta voi tulla eri aikaan kuin tieto näytöksistä, joten säilöntä tietovarastoon F1.2 Screening Info Screenigs Screenig Data tietovuo MovieDetails muodostuu elokuvatiedoista ja näytöstiedoista (tulevatkohan nämä samasta lähteestä? elleivät tule pitää sidosryhmäkaaviota muuttaa TicketOrder Tickets Screening Details 3.11.2008 Harri Laine 12
Kirjan esimerkki tarkennuksesta on epäonnistunut -mistä tiedetään, mitä pitäisi poistaa -1.5 tuottaa selvästikin tulosteen, mutta se ei näy ylemmillä tasoilla -mikä tahansa tiedonhaku tarvitsee syötteen! 3.11.2008 Harri Laine 13
Edellisestä esimerkistä: jos järjestelmältä hautaan elokuvaa kuvaava webbisivu se voisi kuulua osaksi 'screening details' tietovuota tai se voisi olla erillinen tietovuo käyttäjältä tarvitaan jokin syöte sivun tuottamiseksi (mikä elokuva), jolloin sivun tuottaminen täytyy tapahtua osajärjestelmästä, jolla on yhteys käyttäjään webbisivu-toiminnon käyttäjä lienee sama ryhmä kuin lipputilaustenkin 3.11.2008 Harri Laine 14
Edellisestä esimerkistä (movies prosessin tarkennus) Oletetaan että elokuvan tiedot saadaan xml-tiedostona ja webbisivut tehdään paikallisesti valmiiksi (käyttäjä pyytää sitten nimellä valmista sivua) ja tallennetaan tietokantaan MovieData - data - prepared web pages Movie Info Load XML input update movie data rebuild web pages 3.11.2008 Harri Laine 15
Tietovuokaavioissa tarkennusta jatketaan kunnes toiminnot ovat riittävän pieniä kuvattavaksi yksityiskohtaisesti alle sivun pituisella tekstillä tai pseudokoodilla. Tietovarastojen ja tietovirtojen sisällön kuvaamiseksi tarvitaan erillinen tekniikka 3.11.2008 Harri Laine 16
t Hyvä soveltuvuus tiedonmuokkausprosesseihin entä vahvasti vuorovaikutteiset sovellukset ja ohjelmat, jotka tarjoava palveluja eivätkä varsinaisesti muokkaa tai siirrä tietoa. Perustuu toiminnan hierarkkiseen osittamiseen voi olla hankala sovittaa yhteen olioohjelmointikielten paketointiperiaatteiden kanssa 3.11.2008 Harri Laine 17