Ohjelmistotuotanto, s

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

Ohjelmistotuotanto, s /3/2003

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML - unified modeling language - use cases

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistotekniikan menetelmät, UML

UML - unified modeling language

Ohjelmistotuotanto, s

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

UML -mallinnus TILAKAAVIO

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

5. Järjestelmämallit. Mallinnus

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

1. Tarkastellaan seuraavaa kaaviota

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

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

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

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

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistojen suunnittelu

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

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

Dynaaminen analyysi II

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Lähestymistavat - toiminnallinen

Tietojärjestelmän osat

Ohjelmistojen mallintaminen

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Määrittelyvaihe. Projektinhallinta

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

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

UML-kielen formalisointi Object-Z:lla

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Olioperustaisuus (object oriented)

Tilan luonnehdinta (yksi tapa)

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

PROSESSIMALLINNUS. Ari Wahlstedt, KTT

Ohjelmistotekniikan menetelmät

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

Ohjelmistotekniikan menetelmät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

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

Ohjelmistojen mallintaminen, kesä 2010

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

UML:n yleiskatsaus. UML:n osat:

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Ohjelmistotekniikan menetelmät, kesä 2008

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Olioiden yhteistyön mallintaminen

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

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

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

Ohjelmistotekniikan menetelmät, kevät 2008

3. Käsiteanalyysi ja käsitekaavio

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

Yhteenveto. Menettelytavat

Luokkakaavion laatiminen

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

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

Sisältö. Tilakaaviot 2

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

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Ohjelmistojen mallintaminen, kertausta

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

Esimerkki 1: Kahviautomaatti.

Käyttöpaneelin käyttäminen

Ohjelmistojen mallintaminen, kesä 2009

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

1. Olio-ohjelmointi 1.1

Harjoitustyön testaus. Juha Taina

Mitä on periytyminen?

Tervetuloa OmaLounea-palveluun! KÄYTTÄJÄN OPAS

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

TIE = JOTU. VH5 - MagicDraw

Laskutus Tapahtumahallinnassa Osallistuja-, koonti- ja tilaajalaskut. TaikaTapahtumat -käyttöohje

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

VH5, JOTU, MagicDraw:n käyttö

Tietotekniikan valintakoe

Transkriptio:

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 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 Toiminnallisuuden kuvaus kulkija Palvelujen käyttöön perustuva yhteyskaavio vapaamuotoisemmin Oven avaus Läsnä-/poissaolo Ilmoituksen kirjaus palvelukokonaisuuksia kuvaus Kulun valvonta oikeuskysely kamera oikeuskanta (use case) - palvelukokonaisuudet ja niiden käyttö Tietovirrat (data flow) - tiedolle tehtävät muokkaustoimenpiteet ja tiedon kulku toimenpiteiden välillä perinteinen kuvaustekniikka Tapahtumareaktiot (event processing) - reagointi ympäristön tapahtumiin Harri Laine 5 Harri Laine 6 Harri laine 1

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ötapa (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ötapa 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ötavasta kuvattava tavoite aktivointi normaalikulku poikkeustilanteet voidaan antaa esimerkkiskenaarioita, mutta skenaariot eivät riitä, vaan niistä on tehtävä yleistys käyttötapaan voitava liittää ei-toiminnallisia vaatimuksia - suorituskyky, volyymit Harri Laine 9 Harri Laine 10 Kayttötavat Käyttötapa UML-esittelee käyttötapamallille graafisen esityksen Extends -yhteys kytkee poikkeustapaukset ja muunnelmat peruskäyttötapauksen. Esim tililtäotto <- tilinylitys extends Use case uses Uses -yhteys kuvaa jonkin käyttötavan käyttöä osana toista käyttötapaa actor Use case Use case graafisesta esityksestä on hyötyä, jos analyysi on viety niin pitkälle, että mallissa esiintyy runsaasti käyttötapojen välisiä yhteyksiä Harri Laine 11 Harri Laine 12 Harri laine 2

Luokkakaaviot / käsitekaaviot Käyttötapakuvaus 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 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 Harri laine 3

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. Ikkuna - 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) Mermaid (Nokia) (W) - myös käyttötavat Argo UML (W+L) (ei asennettu) Dia (L) Harri Laine 21 Harri Laine 22 ja luokkakaavio yhdessä ja luokkakaavio yhdessä kuvaavat toimintaa Kuvauksen täydellisyys 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ötapa vaikuttaa luokan olioihin ja miten jokainen käyttötapa on jotenkin riippuvainen tietosisällöstä käyttötapamallista löytyvät kayttötavat jokaisen luokan olioiden keskeisten elinkaaritoimintojen hallintaan. Esimerkiksi riippuvuusmatriisina, katso JSSmoniste. Harri Laine 23 Harri Laine 24 Harri laine 4

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) Harri Laine 25 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 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: [eräpäivään alle viikko] / lompakko. anna_rahaa(määrä) eräpäivä ohi /karhua karhuttu maksamatta nyt_saa_jo_riittää LOMPAKKO tuloutus perinnässä pullottaa anna_rahaa tyhjä uffet luottotappiona Harri Laine 29 Harri Laine 30 Harri laine 5

Tiloihin voidaan liittää toimintaa. Toiminta voidaan liittää tilaan saapumiseen (entry) tilasta poistumiseen (exit) tilassa olemiseen (do) Karkkiautomaatti uusi_kolikko odotus uusi_kolikko raha saatu entry: {lisää summaan} valitsinta painettu valitsinta painettu [lajia on] [vaihto<0] karkit jakoon karkki_valittu rahaa_puutuu do: laske vaihto do: näytä puuttuva uusi kolikko [vaihto>0] [lajia ei ole] Harri Laine 31 lisää entry:lisää summaan saatu liikaa entry: palauta vaihtoraha ei ole do: ilmoita ettei ole valmis exit:anna karkit, nollaa summa [vaihto=0) pitäisi tarkastella vielä tapausta entry: palauta summa että vaihtorahaa ei ole Harri Laine 32 Rakenteinen tilaautomaatti (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 pienennä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 mistä tultiin 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 Harri laine 6

ja riippuvuudet vs. käyttötavat löydyttävä käyttötavat elinkaaren hallintaan vs tietosisältö Miten tila ilmaistaa tietosisällössä Harri Laine 37 Harri laine 7