Ohjelmistotuotanto, s /3/2003

Samankaltaiset tiedostot
Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

Ohjelmistotuotanto, s

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML - unified modeling language - use cases

UML- mallinnus: Tilakaavio

Ohjelmistotekniikan menetelmät, UML

UML - unified modeling language

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen kertausta Harri Laine 1

5. Järjestelmämallit. Mallinnus

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

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

Ohjelmistotuotanto, s

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

UML -mallinnus TILAKAAVIO

Ohjelmistojen mallintaminen, mallintaminen ja UML

1. Tarkastellaan seuraavaa kaaviota

Dynaaminen analyysi II

Ohjelmistojen mallintaminen

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

UML-kielen formalisointi Object-Z:lla

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Olioperustaisuus (object oriented)

Lähestymistavat - toiminnallinen

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

Ohjelmistojen mallintaminen, kesä 2010

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

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Määrittelyvaihe. Projektinhallinta

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen suunnittelu

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

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

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

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

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

Ohjelmistojen mallintaminen, kesä 2009

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

Mitä on periytyminen?

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Olioiden yhteistyön mallintaminen

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Tilan luonnehdinta (yksi tapa)

Ohjelmistotekniikan menetelmät, kevät 2008

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

Tietojärjestelmän osat

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

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Käyttötapausten mallintaminen

Luokkakaavion laatiminen

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

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

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

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

Yhteenveto. Menettelytavat

3. Käsiteanalyysi ja käsitekaavio

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

UML:n yleiskatsaus. UML:n osat:

Käyttäjien tunnistaminen on ensimmäinen tehtävä järjestelmän palveluja määriteltäessä. Käyttäjien löytämiseksi voidaan esittää kysymykset:

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Hakemistojen sisällöt säilötään linkitetyille listalle.

Unified Modeling Language

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistotekniikan menetelmät

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Ohjelmistojen mallintaminen, kertausta

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Luento 3 Tietokannan tietosisällön suunnittelu

Ohjelmistotekniikan menetelmät

PROSESSIMALLINNUS. Ari Wahlstedt, KTT

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

Ohjelmistojen mallintaminen luokkamallin laatiminen

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmistojen mallintaminen. Luento 6,

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

TIE = JOTU. VH5 - MagicDraw

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

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

Transkriptio:

Ohjelmistotuotanto Määrittelytekniikat 1 Sidosryhmät (ulkopuoliset tahot) ihmiset (käyttäjät), organisaatiot, toiset järjestelmät ulkopuolella, mutta tekemisissä kehitettävän ohjelmiston kanssa Sidosryhmien väliset liittymät tiedot tai palvelut Perinteinen kuvaustapa yhteyskaavio (context diagram) kuvaa tiedon kulkua järjestelmän ja sidosryhmien välillä 1 Harri Laine, Jukka Paakki 2 tietopaketteja palvelukokonaisuuksia kulkija avain oikeuskysely oikeuskanta kulkija oven avaus oikeuskysely oikeuskanta Tiedon kulkuun kuittaus toiminto perustuva yhteyskaavio kuvauspyyntö Kulun valvonta kamera ilmoitus lupa Palvelujen käyttöön läsnä-/poissaoloilmoituksen kirjaus perustuva yhteyskaavio kuvaus Kulun valvonta kamera Harri Laine, Jukka Paakki 3 Harri Laine, Jukka Paakki 4 1. Toiminnallisuuden kuvaus kulkija palvelukokonaisuuksia oven avaus oikeuskysely oikeuskanta (use case) - palvelukokonaisuudet ja niiden käyttö Esimerkiksi UML:n käyttötapauskaaviot läsnä-/poissaoloilmoituksen kirjaus kuvaus Kulun valvonta Tietovirrat (data flow) - tiedolle tehtävät muokkaustoimenpiteet ja tiedon kulku toimenpiteiden välillä perinteinen kuvaustekniikka Palvelujen käyttöön perustuva yhteyskaavio vapaamuotoisemmin kamera Tapahtumareaktiot (event processing) - reagointi ympäristön tapahtumiin Harri Laine, Jukka Paakki 5 Harri Laine, Jukka Paakki 6 Harri laine 1

Oliopohjainen lähestymistapa Alkuperä: Ivar Jacobsson Järjestelmä on olio. Oliolla on palveluja. kuvaavat järjestelmän palveluja. Käsitelty JSS-kurssilla (Informaatiojärjestelmät) k97 alkaen Käyttötapaus tavoitteellinen toimintokokonaisuus mitä järjestelmällä voi tehdä yleensä vuorovaikutteinen osallisena aktori (toimija, käyttäjä) järjestelmän ulkopuolinen taho, jonka toimintaa järjestelmä ei pysty ohjaamaan voi olla ihmisen rooli, mutta myös toinen järjestelmä voi käyttää hyväkseen toista käyttötapausta, voidaan yhdistellä Harri Laine, Jukka Paakki 7 Harri Laine, Jukka Paakki 8 Käyttötapaus on toiminnan abstraktio, joka toteutuu käyttötilanteina. Käyttötilanne voidaan kuvata tilannekuvauksena, skenaariona. Oven avaus skenaarioina 1. Liisa näyttää avaintaan lukijalle, järjestelmä tarkistaa pääsyoikeuden ja sytyttää vihreän merkkivalon. Ovi avautuu. 2. Olli näyttää avaintaan lukijalle, järjestelmä tarkistaa pääsyoikeuden ja huomaa sen vanhentuneen. Punainen merkkivalo syttyy. Olli jää viettämään viikonloppua työpaikalle. 3. Pekka näyttää avaintaan lukijalle. Lukija ei reagoi mitenkään. Yms. Käyttötapauksesta kuvattava tavoite - mihin pyritään aktivointi - miten käynnistyy normaalikulku - se tavallinen tapaus poikkeustilanteet - vaihtoehdot, häiriöt,... voidaan antaa esimerkkiskenaarioita, mutta skenaariot eivät riitä, vaan niistä on tehtävä yleistys Käyttötapaukseen voitava liittää eitoiminnallisia vaatimuksia - suorituskyky, volyymit Harri Laine, Jukka Paakki 9 Harri Laine, Jukka Paakki 10 UML-esittelee käyttötapausmallille graafisen esityksen Extends-yhteys (laajennus) kytkee poikkeustapaukset ja muunnelmat peruskäyttötapaukseen. Esim. tililtäotto tilinylitys actor (käyttäjä) Use case extends uses Use case Use case Uses-yhteys (käyttö, hyödyntäminen) kuvaa jonkin käyttötapauksen käyttöä osana toista käyttötapausta Graafisesta esityksestä on hyötyä, jos analyysi on viety niin pitkälle, että mallissa esiintyy runsaasti käyttötapausten välisiä yhteyksiä Harri Laine, Jukka Paakki 11 Harri Laine, Jukka Paakki 12 Harri laine 2

2. Tietosisällön kuvaus Käyttötapauskuvaus ei mallinna järjestelmän tietosisältöä keskeisen tietosisällön kuvaaminen on kuitenkin välttämätöntä useimmissa järjestelmissä vaatimusten analysoinnin yhteydessä käytettäväksi soveltuvia tiedonmallinnustekniikoita: luokkakaaviot (UML Unified Modeling Language) käsitekaaviot (ER Entity-Relationship) (Oletetaan luokkakaaviot tutuksi asiaksi) Luokkakaaviot Luokkakaaviot soveltuvat kuvaamaan tietosisältöä abstraktilla tasolla vaatimusanalyysin kuvaustaso kuvaamaan ohjelmiston konkreettisia tietorakenteita teknisen suunnitelman kuvaustaso teknisiä suunnitelmiakin on eritasoisia, esimerkiksi arkkitehtuurisuunnitelma käsittelee isompia olioita kuin yksityiskohtainen ohjelmasuunnitelma Eri tason oliot elelevät omissa ympäristöissään, vaatimustason abstrakti tietosisältöolio voi teknisellä tasolla pirstoutua useaksi olioksi luokkakaaviot tarkentuvat siirryttäessä prosessin vaiheissa eteenpäin Harri Laine, Jukka Paakki 13 Harri Laine, Jukka Paakki 14 Luokkakaavion tarkentuminen Luokkakaavio vaatimusanalyysissä lainaikkuna maksuhistoria laina abstrakti tekninen maksusuunnitelma lainatietokantatietue elinkaarenhallinta korko Harri Laine, Jukka Paakki 15 Keskeiset tietosisällön osat ja näiden väliset riippuvuudet Luokille ei ole yleensä määritelty metodeja, mutta tärkeimmät on Luokkien väliset yhteydet ovat usein ymmärrettävyyden kannalta oleellisempia kuin. Yhteyksiin liittyvät rajoitteet ovat yleensä myös tärkeitä. Harri Laine, Jukka Paakki 16 Yhteysviivan päissä voidaan esittää rajoitteita n..m yhteys n..m Jokaiseen luokan A olioon liittyy vähintään n ja enintään m luokan B oliota Jokainen luokan A olio muodostuu joukosta luokan B olioita. Esim. A on joukkue ja B pelaaja. Ei ole esteitä sille, etteikö B voisi kuulua samanaikaisesti useaan A- kokonaisuuteen ja siirtyä kokonaisuudesta toiseen. Harri Laine, Jukka Paakki 17 Harri Laine, Jukka Paakki 18 Harri laine 3

n..m Kiinteä kokoonpano: luokan B oliot ovat kiinteä osa jotain luokan A oliota. B-olio on koko elinaikansa osana samaa A-oliota. Esim. NäyttöIkkuna - NäyttöKenttä, rakennus - huoneisto. B-oliot ovat olemassaoloriippuvia A-olioista. perii luokan A, Bon A:n aliluokka, A on B:n yliluokka : B-oliot ovat osajoukko A-olioista, B-oliot ovat erikoistapauksia A-olioista, A-oliot ovat B-olioiden yleistyksiä. (Toteutustaso: B-oliot perivät A-luokan koodia.) Harri Laine, Jukka Paakki 19 Harri Laine, Jukka Paakki 20 riippuvuustyyppi ssa voidaan esittää myös yksittäisiä olioita (luokkanimen tilalla alleviivattu olionimi) Luokkakaavioihin voidaan liittää metodien runkoja kommentteina, esimerkiksi pseudokoodina tai ohjelmointikielellä (ei vaatimusanalyysissä) on riippuvuustyypin mukaisesti riippuva luokasta A. Valmiiksi määriteltyjä riippuvuuksia: uses, instance of, Harri Laine, Jukka Paakki 21 Harri Laine, Jukka Paakki 22 ja luokkakaavio yhdessä kuvaavat toimintaa Toiminta vaikuttaa tietosisältöön ja/tai riippuu tietosisällöstä tietojen synty, muuttaminen, hyväksikäyttö ja hävittäminen = olioiden /yhteyksien synty, hyväksikäyttö, muuttaminen ja hävittäminen riippuvuuksia: mikä käyttötapaus vaikuttaa luokan olioihin ja miten yhdistelmän kuvaus esimerkiksi riippuvuusmatriisina, katso JSS-moniste ja luokkakaavio yhdessä Kuvauksen täydellisyys jokainen käyttötapauson jotenkin riippuvainen tietosisällöstä käyttötapausmallista löydyttävä käyttötapaukset jokaisen luokan olioiden keskeisten elinkaaritoimintojen hallintaan Harri Laine, Jukka Paakki 23 Harri Laine, Jukka Paakki 24 Harri laine 4

3. Käyttäytymisen kuvaus Joissakin järjestelmissä olioiden käyttäytymisen kuvaus on oleellinen vaatimusanalyysissa selvitettävä asia Olion elinkaari - esimerkiksi puhelun vaiheet, tilauksen käsittelyn työnkulku, sanoman kulku Käyttäytymistä on perinteisesti kuvattu tilakaavioilla (tila-automaateilla - Laskennan teoria, Ohjelmoinnin ja laskennan perusmallit) perustuu siihen, että olio on elinkaarensa aikana erilaisissa tiloissa (state) Tila = attribuuttien arvojen ja olion kytkentöjen muodostama nimetty kokonaisuus, olotila. Tilan määräytymiseen voi vaikuttaa vain yksi attribuutti tai useampien yhdistelmä. Tuoppi on tilassa täysi Lasku on tilassa Lompakko on tilassa tyhjä Perinteisessä tila-automaattimallissa automaatti (tässä olio) voi olla vain yhdessä tilassa tietyllä hetkellä ja se vaihtaa tilaansa herätteiden tai täyttyvien ehtojen vaikutuksesta Harri Laine, Jukka Paakki 25 Harri Laine, Jukka Paakki 26 Siirtymä (transition) : (olion) siirtyminen tilasta toiseen siirtymän saa aikaan jokin heräte (event, message) heräte on jokin tapahtuma, ja siirtymiseen tilasta toiseen liittyy yleensä olion suorittamaa toimintaa oliomalleissa heräte on olion metodikutsu Siirtymään voidaan liittää ehto, joka säätelee siirtymismahdollisuutta maksamatta [eräpäivään alle viikko] maksamatta Laskua ei saa maksaa liian aikaisin. Laskun tiloja, heräte saa aikaan tilanvaihdoksen. Harri Laine, Jukka Paakki 27 Harri Laine, Jukka Paakki 28 Siirtymään voidaan liittää myös toimintaa tai viestin lähetys toiselle oliolle Lasku maksamatta Lasku määrä [eräpäivään alle viikko] / Lompakko. anna_rahaa(määrä) Lompakko anna_rahaa Alkutila ja mahdolliset lopputilat (laskun elinkaarta) maksamatta alkutila eräpäivä ohi karhuttu lopputilat nyt_saa_jo_riittää Lompakko pullottaa anna_rahaa tyhjä perittävänä tuloutus uffet luottotappiona Harri Laine, Jukka Paakki 29 Harri Laine, Jukka Paakki 30 Harri laine 5

Esim: Karkkiautomaatti Tiloihin voidaan liittää toimintaa: tilaan saavuttaessa (entry) tilasta poistuttaessa (exit) tilassa oltaessa (do) odotus Kolikko Laskettu [vaihto < 0 ] Saatu liian vähän entry: lisää Saatu rahaa do:lisää pottiin näytä Karkit_jakoon entry: vaihtoraha Laskettu [vaihto > 0 ] Tilanne tarkistettu [on] Kolikko Painettu valintanappia Karkki_valittu entry: tarkista Tilanne tarkistettu [ei ole] Painettu peruutusnappia Painettu valintanappia Laskettu Saatu liikaa Kolikko / lisää pottiin [vaihto=0] entry:palauta liika Karkkia ei ole Rahat otettu Karkit otettu Valmis entry:anna karkit Rahat otettu Ei vaihtorahaa Valmis entry: palauta Painettu peruutusnappia Peruttu entry:palauta Harri Laine, Jukka Paakki 31 Painettu peruutusnappia Harri Laine, Jukka Paakki 32 Rakenteinen tila-automaatti (statechart) D. Harel: Statecharts: A Visual Formalism for Complex Systems, Science of Computer Programming, 8, 1987, 231-274 Poikkeaa perinteisestä tila-automaatista mm. tarjoamalla rinnakkaiset tilakoneet kokonaisuus voi olla samanaikaisesti useassa rinnakkaisessa tilassa pienemmättilakoneet rinnakkaiset tilakoneet voivatolla toisistaan riippumattomia tai riippuvia; esim. olion tilaa voi tarkastella sen eri ominaisuuksien suhteen tilojen historiatiedon yleistyshierarkian tiloille - alitila - ylitila ylitila Paluu siihen, missä oltiin H help s13 ali_1 ali_2 ali_3 Siirtyminen mistä tahansa alitilasta Siirtyy sisällä alkutilaan s15 Harri Laine, Jukka Paakki 33 Harri Laine, Jukka Paakki 34 Edellisen kalvon automaatissa 'help' siirtää mistä tahansa alitilasta ali_1, ali_2, ali_3 tilaan s13 Automaatti voiolla joko tilassa ali_1, ali_2, ali_3, s13 tai s15 Jos ulkopuolelta siirrytään ylitilaan, valitaan alitilaksi aloitustilaksi merkitty, eli s15:sta siirrytään ali_1:een Tässä automaatissa on historiatila H, joka tarkoittaa paluuta siihen alitilaan, josta viimeksi poistuttiin, eli tässä palataan help-toiminnon jälkeen samaan tilaan, josta sinne lähdettiin Tila-automaateilla on käyttöä muuallakin kuin olioiden elinkaarissa, esim. syöttötiedon jäsennys: saapuva merkki hyväksytään tai hylätään; automaatti voi vaihtaa tilaa, joka taas vaikuttaa seuraavaksi hyväksyttävään merkkiin, ; mikäli päädytään lopputilaan, on koko merkkijono hyväksytty ja muutoin hylätty käyttöliittymän toiminnan kuvaaminen: tietyt toiminnot mahdollisia vain joissain tiloissa Harri Laine, Jukka Paakki 35 Harri Laine, Jukka Paakki 36 Harri laine 6