Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Samankaltaiset tiedostot
5. Järjestelmämallit. Mallinnus

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

3a. Projektin hallinta (lisäys lukuun 3)

1. Johdanto. Ohjelmistotuotannon ongelmia

Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu.

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

Ohjelmistotuotanto, s

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen suunnittelu

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi.

Ohjelmistotekniikan menetelmät, UML

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

Lähestymistavat - toiminnallinen

6. Suunnittelu. Suunnittelun tulos

Ohjelmistojen mallintaminen, mallintaminen ja UML

Mitä on periytyminen?

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset

UML:n yleiskatsaus. UML:n osat:

Implisiittiset vaatimukset. 4. Vaatimusmäärittely. Eksplisiittiset vaatimukset. Vaatimusmäärittelyn tavoitteet. Vaatimusten luonne II

Suunnitteluvaihe prosessissa

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

4. Vaatimusmäärittely

UML- mallinnus: Tilakaavio

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotuotanto, s /3/2003

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

Analyysi on tulkkaamista

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Yhteenveto. Menettelytavat

Ohjelmistojen mallintaminen, kertausta

Vaatimusmääritelystä UML:n avulla

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

VH5, JOTU, MagicDraw:n käyttö

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Tietovuokaaviot (data flow diagrams)

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

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

TOIMINNALLINEN MÄÄRITTELY MS

Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

2. Vaatimusmäärittely. Kevät 2005 Empiirinen ohjelmistotutkimus / Taina. Kevät 2005 Empiirinen ohjelmistotutkimus / Taina

Tietokannan suunnittelu

Olioiden yhteistyön mallintaminen

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Tietojärjestelmän osat

MagicDraw-pikaohje (VH5)

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

UML - unified modeling language

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit

Luento 3 Tietokannan tietosisällön suunnittelu

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

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

käyttötapaukset mod. testaus

Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

UML-kielen formalisointi Object-Z:lla

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

UML -mallinnus TILAKAAVIO

Tilan luonnehdinta (yksi tapa)

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistojen mallintaminen. Luento 6,

Ohjelmistotuotanto, s

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Käyttötapaukset

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

GroupDesk Toiminnallinen määrittely

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Dynaaminen analyysi II

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Dokumentointi ketterissä menetelmissä

Joku hauska otu-aiheinen kuva (no ei oo pakko olla hauska) OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Käyttötapausanalyysi ja testaus tsoft

TIE = JOTU. VH5 - MagicDraw

1. Tarkastellaan seuraavaa kaaviota

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Luokka- ja oliokaaviot

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Määrittelyvaihe. Projektinhallinta

Ohjelmistotekniikan menetelmät, koe

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Luokkakohtaiset eli stattiset metodit ja attribuutit

Määrittely- ja suunnittelumenetelmät

Transkriptio:

5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla. Näin niiden yhtenäisyys säilyy ja moniselitteisyyden vaara pienenee. Kevät 2005 Ohjelmistotuotanto / Taina 1 Mallinnus Eräs tapa tarkentaa vaatimuksia on kuvata kehitettävä järjestelmä järjestelmämalleilla. Järjestelmämalli on graafinen kuvaus, joka voi kuvata tuotteeseen liittyvät liiketoimintaprosessit, ratkaistavaan ongelmaan liittyviä asioita, kehitettävää järjestelmää. Kevät 2005 Ohjelmistotuotanto / Taina 2 Mallinnuksen etuja Abstraktiot Mallit ovat luonnolliseen kieleen verrattuna helpommin ymmärrettävissä, kompaktimpia, yksiselitteisempiä, sopivampia vaatimusanalyysista saatavaksi suunnitteluprosessin syötteeksi. Mallit eivät kuitenkaan korvaa käyttäjäja järjestelmävaatimuslistoja! Kevät 2005 Ohjelmistotuotanto / Taina 3 Mallinnuksen tärkein piirre on abstrahointi. Malliin ei sisällytetä kaikkea tietoa, vaan kukin malli on abstraktio järjestelmästä. Mitä korkeampi abstraktio on mallilla, sitä vähemmän yksityiskohtia näkyy. Mitä matalampi abstraktio, sitä vaikeampaa on saada mallista kokonaiskuvaa. Molemman tyyppisiä malleja tarvitaan. Kevät 2005 Ohjelmistotuotanto / Taina 4 Yhteysmallit Vaatimusmäärittelyn alkuvaiheessa pitää päättää kehitettävän järjestelmän ja sen toimintaympäristön rajat: mitä järjestelmään kuuluu, minkä muiden järjestelmien kanssa järjestelmä toimii yhteistyössä. Rajat saadaan selvitettyä keskustelemalla järjestelmän sidosryhmien edustajien kanssa. Kevät 2005 Ohjelmistotuotanto / Taina 5 Arkkitehtuurimalli Yksinkertaisin yhteysmalli on arkkitehtuurimalli. Malli kuvaa järjestelmät laatikkoina ja järjestelmien viivoina. Arkkitehtuurimallia voidaan käyttää sekä kuvaamaan kehitettävän järjestelmän yhteyksiä ulkomaailmaan että järjestelmän jakautumista osajärjestelmiksi. Kevät 2005 Ohjelmistotuotanto / Taina 6 Taina 1

Radar P o siti on Aircraft s imulatio n Weather map Accounting Arkkitehtuurimalliesimerkki (myös luku 1,kalvo 21 ) Transpo nd er Backup p os ition Da ta com ms. Flight plan d atabas e C o ntro l er info. C o m m s. Aircraft c om m s. Activ ity logging Telep ho ne Backup comms. Air Traffic Control architecture Controller consoles Kevät 2005 Ohjelmistotuotanto / Taina 7 Tietovuokaavio Tietovuokaavio kuvaa järjestelmän toiminnan yksityiskohtia. Malli kuvaa prosessit (tehtävät), prosessien välillä kulkevat syötteet ja tulosteet sekä mahdolliset tieto- ja materiavarastot. Kaaviot ovat hierarkkisia: yhtä kaavion prosessia voidaan tarkentaa uudessa kaaviossa aliprosesseiksi. Kevät 2005 Ohjelmistotuotanto / Taina 8 Korkeimman tason tietovuokaavio Syystä tai toisesta Sommerville kutsuu korkeimman tason kaaviota prosessimalliksi. Kyseessä on kuitenkin tietovuokaavio. Korkeimman tason kaaviossa kuvataan järjestelmän korkean tason prosessit ja järjestelmän kanssa yhteistyössä olevat muut järjestelmät sopivalla tarkkuudella. Kevät 2005 Ohjelmistotuotanto / Taina 9 Alemman tason tietovuokaaviot Kutakin prosessia voidaan tarkentaa aliprosesseiksi uudessa kaaviossa. Tällöin siirrytään samalla matalampaan abstraktioon. Tarkennuksessa tietoa ja materiaa ei synny eikä katoa. Toisin sanottuna kaikki prosessiin tulevat ka siitä lähtevät tieto- ja materiavuot ovat edelleen mukana myös tarkennuksissa. Kevät 2005 Ohjelmistotuotanto / Taina 10 Esimerkki: korkeimman tason tietovuokaavio Esimerkki: Korkeimman tason kaavion prosessin tarkennus Korkeimman tason tietovuokaavio. Katkoviivat osoittavat kehitettävän järjestelmän rajat. Kevät 2005 Ohjelmistotuotanto / Taina 11 Tarkennus edellisestä kaaviosta prosessista Place equipment order Kevät 2005 Ohjelmistotuotanto / Taina 12 Taina 2

5.1.kaavio kaavion rakenne kaavio kuvaa yhden tai useamman käyttötapauksen, tapausten toimijat tai roolit (actors) ja tapauksien keskinäiset ja roolien väliset suhteet. Kaaviotekniikka selkeyttää käyttötapausten keskinäisiä suhteita ja käyttötapauksiin liittyviä toimijoita. Silti sanalliset kuvaukset ovat käyttötapausten ydin. Kevät 2005 Ohjelmistotuotanto / Taina 13 Kuvattava käyttötapaus on jokin toimijan ja järjestelmän välinen toiminta alusta loppuun. Alku: Tila juuri ennen käyttötapausta. Esim. henkilö on käynnistämässä ohjelmaa. Loppu: Tila käyttötapauksen päätyttyä. Esim. henkilö sulkee käyttämänsä ohjelman. Kevät 2005 Ohjelmistotuotanto / Taina 14 Toimijat Toimija tai rooli liittyy yhteen tai useampaan käyttötapaukseen, ja yhteen käyttötapaukseen liittyy yksi tai useampi toimija. Yksi henkilö voi olla useassa eri roolissa eli useana eri toimijana käyttötapauksessa. Erikoistapaukset Käyttötapauksista voidaan tehdä erikoistapauksia Yleistys-relaatiolla. Näitä käytetään esimerkiksi silloin, kun halutaan kuvata oikein toimittuun käyttötapaukseen liittyviä virheellisiä toimintoja. Relaatio on Yleistys, koska varsinainen käyttötapaus on yleistys erikoistuneesta käyttötapauksesta. Kevät 2005 Ohjelmistotuotanto / Taina 15 Kevät 2005 Ohjelmistotuotanto / Taina 16 Sisältyvyydet kaavion symbolit Käyttötapauksien välillä voi olla sisältyvyyksiä (include). Tällöin useat käyttötapaukset voivat sisältää omiksi käyttötapauksiksi eroteltuja yhteisiä osia. Sisältyvyys on eräänlainen käyttötapauskaavion alikaavio, jota voidaan käyttää ylemmän tason kaavioista. Toimija/rooli (actor) Yleistys (generalization) <<include>> Sisältyvyys Kevät 2005 Ohjelmistotuotanto / Taina 17 Kevät 2005 Ohjelmistotuotanto / Taina 18 Taina 3

kaavioesimerkki 5.4. Tilasiirtymäkaaviot Asiakas Automaatille Lainaus Varaus Palautus Tiskille Teos myöhässä Laskutus Kirjastojen välinen teoshakemisto Kirjastonhoitaja Kevät 2005 Ohjelmistotuotanto / Taina 19 Kaikilla järjestelmilläja olioilla on tila: toteutuneiden tapahtumien vaikutus. Järjestelmä siirtyy tilasta toiseen, kun saapuva ulkoinen tapahtuma (event) vaikuttaa sen tilaan. Tilasiirtymäkaavioita käytetään kuvaamaan järjestelmän, osajärjestelmän tai olion kaikkia tiloja ja siirtymisiä tilasta toiseen. Kevät 2005 Ohjelmistotuotanto / Taina 20 Tilasiirtymäkaavion käyttö Tilat ja siirtymät Tilasiirtymäkaavio voidaan piirtää koko järjestelmästä, sen osasta tai oliosta. Periaate on aina sama. Vain mittakaava muuttuu. Tilasiirtymäkaavioilla voidaan esimerkiksi kuvata olion tai (osa)järjestelmän koko elinkaari. Kevät 2005 Ohjelmistotuotanto / Taina 21 Tilasiirtymäkaavioita käytetään kuvaamaan, miten järjestelmä reagoi tapahtumiin ja miten tapahtumat muuttavat järjestelmän tilaa. Jokainen tapahtuma tekee jotain järjestelmälle. Korkeilla abstraktiotasoilla tämä voidaan mallintaa sanomalla, että tapahtuma siirtää järjestelmän tilasta toiseen. Kevät 2005 Ohjelmistotuotanto / Taina 22 Tilasiirtymäkaavioesimerkki UML:n mukainen tilasiirtymäkaavioesimerkki (hissi) Ensimmäisessä kerroksessa ylös (kerros) ylös Lähtöpiste ensimmäiseen kerrokseen alas alas (kerros) Odottaa ajastin = 0 do/kasvata ajastinta help/anna opastusta Kevät 2005 Ohjelmistotuotanto / Taina 23 [ajastin = maksimi odotusaika]/alas (ensimmäinen kerros) Kevät 2005 Ohjelmistotuotanto / Taina 24 Taina 4

Tilaräjähdys Tietovuokaavioiden ongelma on siinä, että mahdollisten tilojen ja siirtymien määrä kasvaa erittäin nopeasti. Yksi tapa hallita kasvavia kaavioita on käyttää ylitiloja (superstates), jotka kapseloivat joukon tavallisia tiloja yhdeksi suureksi tilaksi. Ylitilaan tullaan ja sieltä lähdetään tavallisten tilojen tapaan. Ylitilaesimerkki Ylitilasta voi olla suoria siirtymiä ylitilan ulkopuolelle. Ylitilaan tultaessa tulee kertoa, mihin ylitilan sisäiseen tilaan tullaan. Ylitiloja käyttämällä saadaan hierarkisia tilasiirtymäkaavioita. Kevät 2005 Ohjelmistotuotanto / Taina 25 Kevät 2005 Ohjelmistotuotanto / Taina 26 Tietomallit Useimmissa isoissa ohjelmistoissa on osana tietokanta. Vaikka tietokannan suunnittelu on suunnittelua, työvaihe kannattaa silti tehdä vaatimusmäärittelyssä. Tietokannan rakenne voidaan esitellä asiakkaalle sopivalla tarkkuudella. Tietokannan tiedot ja yksityiskohdat saadaan varmistettua asiakkaalta. Kevät 2005 Ohjelmistotuotanto / Taina 27 ER-malli ja UML Yleisimmin käytetty tietokannan mallinnuskieli on ER-malli (Entity- Relationship). Sommerville kutsuu tätä ERA-malliksi (Entity-Relationship-Association). UML ei tarjoa puhdasta mallinnuskieltä, mutta UML:n luokkakaavioita voidaan käyttää tietokannan kuvaukseen. Kevät 2005 Ohjelmistotuotanto / Taina 28 Luokkakaavioista tietomalliin Luokkakaavioista saadaan tietomallin kuvauksia, kun käytetään vain luokkia ja tavallisia yhteyksiä, määritellään attribuuttien nimet ja tyypit, mutta ei määritellä luokille operaatioita, nimetään yhteydet ja kiinnitetään kullekin yhteydelle sen aste. Kevät 2005 Ohjelmistotuotanto / Taina 29 Tietomalliesimerkki Kevät 2005 Ohjelmistotuotanto / Taina 30 Taina 5