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

Samankaltaiset tiedostot
Ohjelmistotuotanto, s

Ohjelmistotuotanto, s /3/2003

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML - unified modeling language - use cases

UML- mallinnus: Tilakaavio

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

UML - unified modeling language

Ohjelmistotuotanto, s

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

5. Järjestelmämallit. Mallinnus

UML -mallinnus TILAKAAVIO

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Dynaaminen analyysi II

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

1. Tarkastellaan seuraavaa kaaviota

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

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

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

Ohjelmistojen mallintaminen, kesä 2010

UML-kielen formalisointi Object-Z:lla

Ohjelmistotekniikan menetelmät, kesä 2008

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

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

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

Määrittelyvaihe. Projektinhallinta

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

Lähestymistavat - toiminnallinen

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, kevät 2008

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

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

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

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

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Olioperustaisuus (object oriented)

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen suunnittelu

Tietojärjestelmän osat

Tilan luonnehdinta (yksi tapa)

Olioiden yhteistyön mallintaminen

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

PROSESSIMALLINNUS. Ari Wahlstedt, KTT

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

Ohjelmistojen mallintaminen, kertausta

UML:n yleiskatsaus. UML:n osat:

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

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät

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

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

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

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

Yhteenveto. Menettelytavat

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

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:

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

3. Käsiteanalyysi ja käsitekaavio

Käyttötapausten mallintaminen

Yhteistoimintakaavio (Esimerkki)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

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

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

Luokkakaavion laatiminen

VH5, JOTU, MagicDraw:n käyttö

TIE = JOTU. VH5 - MagicDraw

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

Nimi: Henkilötunnus: {id} {+id}

Analyysi on tulkkaamista

Luento 3 Tietokannan tietosisällön suunnittelu

käyttötapaukset mod. testaus

Luokka- ja oliokaaviot

Käyttöpaneelin käyttäminen

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Transkriptio:

Järjestelmän rajaus Ohjelmistotuotanto Määrittelytekniikat 1 Sidosryhmät (ulkopuoliset tahot) ihmiset, organisaatiot, toiset järjestelmät ulkopuolella, mutta tekemisissä kehitettävän ohjelmiston kanssa Liittymät tiedot tai palvelut Perinteinen kuvaustapa yhteyskaavio (context diagram) kuvaa tiedon kulkua järjestelmän ja sidosryhmien välillä Vaihtoehtona palvelujen käyttöön perustuva yhteyskaavio (esim. JSS-kurssilla) 1 Harri Laine 2 Järjestelmän rajaus Järjestelmän rajaus tietopaketteja palvelukokonaisuuksia kulkija Avain oikeuskysely oikeuskanta kulkija Oven avaus oikeuskysely oikeuskanta kuittaus toiminto Tiedon kulkuun perustuva yhteyskaavio kuvauspyyntö Kulun valvonta kamera ilmoitus lupa Läsnä-/poissaolo Ilmoituksen kirjaus Palvelujen käyttöön perustuva yhteyskaavio kuvaus Kulun valvonta kamera Harri Laine 3 Harri Laine 4 Järjestelmän rajaus Toiminnallisuuden kuvaus kulkija palvelukokonaisuuksia Oven avaus oikeuskysely oikeuskanta (use case) - palvelukokonaisuudet ja niiden käyttö Läsnä-/poissaolo Ilmoituksen 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 5 Harri Laine 6

Oliopohjainen lähestymistapa alkuperä Ivar Jacobsson Järjestelmä on olio. Olioilla on palveluja. kuvaavat järjestelmän palveluja. Käsitelty JSS (Informaatiojärjestelmät) kurssilla 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ötapaa, voidaan yhdistellä Harri Laine 7 Harri Laine 8 Käyttötapaus on toiminnan abstraktio, joka toteutuu käyttötilanteina. Käyttötilanne voidaan kuvata tilannekuvauksena, skenaariona. Oven avaus skenaarioita Liisa näyttää avaintaan lukijalle, järjestelmä tarkistaa pääsyoikeuden ja sytyttää vihreän merkkivalon. Ovi avautuu. Olli näyttää avaintaan lukijalle, Lukija tarkastaa pääsyoikeuden ja huomaa sen vanhentuneen. Punainen merkkivalo syttyy. Olli jää viettämään viikonloppua työpaikalle. 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ää ei-toiminnallisia vaatimuksia - suorituskyky, volyymit Harri Laine 9 Harri Laine 10 UML-esittelee käyttötapausmallille graafisen esityksen Extends -yhteys kytkee poikkeustapaukset ja muunnelmat peruskäyttötapauksen. Esim tililtäotto <- tilinylitys actor Use case uses extends Use case Use case Uses -yhteys 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 11 Harri Laine 12

Luokkakaaviot / käsitekaaviot 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) käsitekaaviot (ER) (Oletan luokkakaaviot tutuksi asiaksi) Luokkakaaviot Luokkakaaviot soveltuvat kuvaamaan tietosisältöä abstraktilla tasolla vaatimusanalyysin kuvaustaso kuvaamaan ohjelman konkreettisia tietorakenteita teknisen suunnitelman kuvaustaso teknisiä suunnitelmiakin on eri tasoisia, 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 Harri Laine 13 Harri Laine 14 Luokkakaavio Luokkakaavio vaatimusanalyysissä lainaikkuna maksuhistoria laina abstrakti maksusuunnitelma elinkaarenhallinta Laina-tietokantatietue korko 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ä. Tekniset Harri Laine 15 Harri Laine 16 Yhteysviivan päissä voidaan esittää rajoitteita yhteys 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 17 Harri Laine 18

yhteys 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: B-oliot ovat osajoukko A-olioista, B oliot ovat erikoistapauksia A-olioista. Harri Laine 19 Harri Laine 20 riippuvuustyyppi on riippuvuustyypin mukaisesti riippuva luokasta A. Valmiiksi määriteltyjä riippuvuuksia: uses, instance of, ssa voidaan esittää myös olioita (luokkanimen tilalla alleviivattu olionimi) Välineitä kaavion tekoon (meillä): Rational Rose (Student) (W) - myös käyttötavat Plastic Lite (W) - vain luokkakaavio Mermaid (Nokia) (W) - eniten kaaviotyyppejä Argo UML (W+L) (ei asennettu, Ohtu ryhmässä tehty muunnelma, johon liittyy SQL-generointi) XMI-siirto KUML (L-KDE2) käyttötapa-luokkakaavio-sekvessi Dia (L) yms Harri Laine 21 Harri Laine 22 ja luokkakaavio yhdessä kuvaavat toimintaa Toiminta vaikuttaa 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 Esimerkiksi riippuvuusmatriisina, katso JSSmoniste. ja luokkakaavio yhdessä Kuvauksen täydellisyys jokainen käyttötapaus on jotenkin riippuvainen tietosisällöstä käyttötapausmallista löytyvät kayttötapaukset jokaisen luokan olioiden keskeisten elinkaaritoimintojen hallintaan. Harri Laine 23 Harri Laine 24

Joissakin järjestelmissä olioiden käyttäytymisen kuvaus on oleellinen vaatimusanalyysissa selvitettävä asia. Millainen on olion elinkaari - esimerkiksi puhelun vaiheet, tilauksen käsittelyn työnkulku, sanoman kulku Käyttäytymistä on tyypillisesti kuvattu tilakaavioilla (tila-automaateilla - Lakennan teoria, Ohjelmoinnin ja laskennan perusmallit) perustuu siihen, että olio elinkaarensa aikana on erilaisissa tiloissa (state). Tila (state) = attribuuttien arvojen ja olion kytkentöjen muodostama nimetty kokonaisuus, olotila. Tilan määrytymiseen voi vaikuttaa vai 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ä. Harri Laine 25 Harri Laine 26 Siirtymä (transition) = Siirtyminen tilasta toiseen. Siirtymän saa aikaan jokin heräte (event, message). Heräte on jokin tapahtuma. Siirtymiseen tilasta toiseen liittyy olion suorittamaa toimintaa. 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 vaihtaa tilaa. Harri Laine 27 Harri Laine 28 Siirtymään voidaan liittää myös toimintaa tai viestin lähetys toiselle oliolle. Alkutila ja lopputilat (alla laskun elinkaarta) maksamatta LASKU: maksamatta [eräpäivään alle viikko] / lompakko. anna_rahaa(määrä) eräpäivä ohi karhuttu nyt_saa_jo_riittää LOMPAKKO tuloutus pullottaa anna_rahaa tyhjä perinttävänä uffet luottotappiona Harri Laine 29 Harri Laine 30

Esim: Karkkiautomaatti Tiloihin voidaan liittää toimintaa. Toiminta voidaan liittää tilaan saapumiseen (entry) tilasta poistumiseen (exit) tilassa olemiseen (do) kolikko odotus Laskettu [vaihto=>0] Saatu vähän entry:lisää kolikko Saatu rahaa do:lisää pottiin näytä Painettu valintanappia Karkit_jakoon Karkki_valittu entry: vaihtoraha entry: tarkista Tilanne tarkistettu Painettu valintanappia [on] Tilanne tarkistettu Laskettu [ei ole] [vaihto=>0] Kolikko/ lisää pottiin Saatu liikaa entry:palauta liika Karkkia ei ole Painettu peruutusnappia Rahat otettu Ei vaihtorahaa Painettu peruutusnappia Karkit otettu valmis entry:anna karkit Rahat otettu valmis entry: palauta Peruttu entry:palauta Harri Laine 31 Painettu peruutusnappia Harri Laine 32 Rakenteinen tila-automaatti (statechart) Harel: Statecharts: A visual formalism for complex systems, Science of computer programming, 8, 1987, 231-274 Poikkeaa perinteisestä tila-automaatista esim. tarjoamalla rinnakkaiset tilakoneet kokonaisuus voi olla samanaikaisesti useassa rinnakkaisessa tilassa - seuraus pienemmät tilakoneet rinnakkaiset tilakoneet voivat olla toisistaan riippumattomia tai riippuvia esim. olion tilaa tarkastellaan eri ominaisuuksien suhteen. yleistyshierarkian tiloille - alitila - ylitila (xor-tila) 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 33 Harri Laine 34 Edellisen kalvon automaatissa 'help' siirtää mistä tahansa alitilasta ali_1, ali_2, ali_3 tilaan s13. Automaatti voi olla 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 viimeeksi poistuttiin, eli tässä palataan help-toiminnon jälkeen samaan tilaan, josta lähdettiin Tila-automaateilla on käyttöä muuallakin kuin olioiden elinkaarissa, esim. syöttötiedon jäsennys, saapuva merkki hyväksytään, hylätään, automaatti voi vaihtaa tilaa, joka taas vaikuttaa seuraavaksi hyväksyttävään merkkiin,... käyttöliittymän toiminnan kuvaaminen, tietyt toiminnot mahdollisia vain joissain tiloissa Harri Laine 35 Harri Laine 36

ja riippuvuudet vs. käyttötavat määriteltävä käyttötavat elinkaaren hallintaan vs tietosisältö Miten tila ilmaistaa tietosisällössä Harri Laine 37