Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Päivi Ovaska Tutkijaopettaja LTY/Tite

Samankaltaiset esitykset


Esitys aiheesta: "Päivi Ovaska Tutkijaopettaja LTY/Tite"— Esityksen transkriptio:

1 Päivi Ovaska Tutkijaopettaja LTY/Tite
Ohjelmistotuotannon menetelmät Syksy Luokka- ja käsitekaaviot, oliomallinnus Päivi Ovaska Tutkijaopettaja LTY/Tite

2 Sisältö Luokkamallinnus, käsitemallinnus
Taustaa oliopohjaisesta ajattelusta UML luokkakaaviot Kaavioiden ilmaisuvoimasta Kaavioiden laatiminen Oliomallinnus Oliomallinnus esimerkki Hyviä tenttikysymyksiä

3 Luokkamallinnus, käsitemallinnus
Oliokaavio, ER-kaavio, Entity Relationship diagram, ERD, tietoyhteyskaavio, käsitekaavio, kohdekaavio Kuvaa järjestelmän käsitteitä (olioita) ja niiden keskinäisiä suhteita Tavoitteena löytää tärkeimmät abstraktiot Perinteisesti tietokantasuunnittelun väline Oliokeskeisissä menetelmissä keskeisin mallinnusväline

4 Luokka- ja oliokaaviot
Luokka- ja oliokaavioilla kuvataan ohjelmiston/järjestelmän rakenne olioiden tietosisältö olioiden tarjoamat palvelut olioiden ja luokkien väliset yhteydet

5 Taustaa:Kuinka hahmotan maailmaa oliopohjaisesti?
haluan lähettää kukkia ystävälleni naapurikaupunkiin menen kukkakauppaan pyydän toimittamaan kukat -> pyyntö välitetään naapurikaupungin kukkakauppaan siellä lähetti toimittaa kukat sama oliokäsitteillä: lähetän viestin kukkakauppias oliolle hän hyväksyy ja osaa käsitellä viestin tehtävä jää hänen vastuulleen kukkakauppias toteuttaa viestin toimenpiteen (metodin) avulla toteutus piilotettu minulta hän lähettää viestin toiselle kukkakauppiaalle jne.

6 Taustaa:Olio-pohjainen ajattelu
Oliokeskeisessä ajattelussa lähes mitä hyvänsä voi ajatella oliona: bitti, merkki, merkkijono, kokonaisluku, tiedosto, palvelin, kuorma-auto, pankkiyhteys, varasto, pankkitili … Oliolla on tila olion ”muisti” tila voi koostua toisista olioista, esimerkiksi pvm voi koostua päivästä, kuukaudesta ja vuodesta olion tila on ”kapseloitu” olion sisälle: sitä voi kysellä oliolta ja sitä voi muuttaa kutsumalla olion metodeita Oliolla on rajapinta joukko toimintoja, joilla oliota hallitaan, operaatiot, julkiset jäsenfunktiot, palvelut, metodit... Oliokeskeinen ohjelma koostuu joukosta keskenään kommunikoivia oliota. Oliot kommunikoivat lähettämällä toisilleen sanomia, ts. kutsumalla toistensa rajapintojen määrittelemiä funktioita Luokka: oliot, joilla on sama käyttäytyminen (metodit) ja samat attribuutit, ovat instansseja eli ilmentymiä samasta olioluokasta.

7 UML kaavioiden peruselementtejä ja suhteita
Elementit Suhteet Nimi Luokka Riippuvuus * 0..1 Assosiaatio rooli Tila Nimi Kooste Pakkaus Nimi Yleistys (Periytyminen) Kommentti Teksti Toteutus jne. jne.

8 Luokkakaavio Luokkakaavio (class diagram, static structure diagram) kuvaa järjestelmään kuuluvia luokkia ja niiden välisiä suhteita. luokkakaaviota käytetään järjestelmän staattisen rakenteen kuvaukseen Luokkakaaviolla mallinnetaan eri ohjelmistokehityksen eri vaiheissa eri abstraktiotasolla olevia asioita: määrittelyvaiheessa luokkakaavio on käsitemalli (conceptual model) ko. sovellusalueesta arkkitehtuurisuunnitteluvaiheessa luokkakaavio kuvaa järjestelmän moduulirakennetta ja uudelleenkäytettävyyden rakenteita (esim. suunnittelumallit) moduulisuunnitteluvaiheessa (yksityiskohtainen suunnittelu) mukana jo toteutusluokkia ohjelmointivaiheessa toteutusluokkia

9 Esimerkki käsitetason luokkakaaviosta: lautapeli
käyttää Pelaaja omistaa Nappula Aarre 0..1 0..1 0..1 0..1 * * {ordered} sijaitsee pelaa 1 Noppa kuuluu Peli Erikoispaikka 1 1 1 2 peittää päättyy 0..1 1 * Lentoreitti Paikka koostuu Kartta Lappu * 1 * * seuraa

10 Luokka (käsite,kohde) ja yhteys
tilaus asiakas nimi osoite uusi tilaaTuote() 0..* 1 tekee luokka attribuutit operaatiot yhteys lukumääräsuhde Luokka (käsite,kohde) ja yhteys

11 Yhteyksistä 1:n ”Yhden suhde moneen” 1:1 ”Yhden suhde yhteen”
”Opintojaksolla on monta toteutuskertaa” 1:1 ”Yhden suhde yhteen” ”Osastolla on yksi osastopäällikkö. Osastopällikkö voi olla vain yhden osaston päällikkö.” n:m ”Monen suhde moneen” ”Urheilija voi osallistua moneen lajiin. Jokaisessa lajissa on useita osallistujia.”

12 Pakollisuus Valinnainen: Asteen alaraja on 0
0..1 (nolla tai yksi) 0..n (nolla tai useampi) Pakollinen: Yhteyden asteen alaraja on 1 1 (1..1) 1..n (n)

13 Luokkien suhteista lukusuunta navigointisuunta assosiatioluokka

14 Periyttäminen, yleistäminen, erikoistaminen
rajoite

15 Periytyminen ”on”-suhde (”is-a”) Erikoistaminen  Aliluokka
”Auto on kulkuneuvo” Erikoistaminen  Aliluokka ”Kulkuneuvo on auto tai helikopteri” Yleistäminen  Yliluokka ”Auto ja helikopteri ovat kulkuneuvoja”

16 Aliluokka perii piirteet
Luokka A a b piirteet:: a, b piirteet:: a, b, c Luokka B c Luokka C d e piirteet:: a, b, d, e Luokka D f piirteet:: a, b, d, e, f

17 Periyttäminen yleistäminen erikoistaminen

18 Muodostuminen: Assosiaation erikoistapauksia
muodoste (composition) kooste (aggregation)

19 Koostuminen (aggregation) ja muodostuminen (composition)
ilmaistaan olion olevan toisen olion komponentti Muodoste elinikäriippuvuus: olio syntyy toisen olion komponentiksi ja pysyyt sellaisena koko elinaikansa kun isäntäolio hävitetään, myös kaikki siihen muodostesuhteessa olevat oliot katoavat

20 Lisukkeet: Yhteyksien erityispiirteitä
Person * has Navigointi AccessRight Kvalifiointi Bank * Client accountnr * 1..* Roolien nimet Company Person employer employee

21 Rajapinnat, toteutus-suhde

22 Rajapinnat 2

23 Yhteyksistä Assosiaatio yleisimmin käytetty yhteys
Jos yhteys heikko (esim. kohdeoliota tarvitaaan vain parametreina, tai kohteena on tietty kirjasto, jonka on pakko olla olemassa toiminnan kannalta) käytetään riippuvuutta Jos luokka A tarvitsee tiukasti koko elinkaarensa ajan luokkaa B, kyseessä on kooste

24 Luokkakaavioiden käyttötavoista
Kaavioita voidaan käyttää esitutkimuksessa, määrittelyssä ja suunnittelussa. Esitutkimus ja määrittely: sovellusalueen käsitteet (domain object model), järjestelmän rajaus, analysis object model, järjestelmän tietosisällön määrittely (käsitekaavio, conceptual model), usein myös tietokannan rakenne. Suunnittelu: ohjelman rakenne (design object model), tietokannan rakenne (esimerkiksi relaatiokannan graafinen esitys). Kaavio dokumentoi "sanaston", jolla asioista voi keskustella. Kaavio kertoo, millaiset tilanteet ovat mahdollisia. Kaavio ohjaa kysymään oikeita kysymyksiä.

25 Kaavioiden ilmaisuvoimasta
Kaikkien sallittujen tilanteiden on oltava kaaviossa mukana. Kaikkia rajoituksia ei aina pysty ilmaisemaan => Lisätään rajoitteita ja kommentteja. Kaavioita voi testata hakemalla siita vastauksia kysymyksiin ja piirtelemällä kuvia esimerkkitilanteista Mahtavatkohan asiakkaat ymmärtää kaavioita?

26 Esimerkki ilmaisuvoimasta
Kysymys 1: missä firmoissa A.S. on töissä? Kysymys 2: kuka on A.S.:n esimies, kun hän on Aikonilla hommissa? Kysymys 3: mikä on A.S.:n esimiehen titteli kohdan 2 kysymyksessä.

27 Esimerkki ilmaisuvoimasta

28 Esimerkki ilmaisuvoimasta

29 Esimerkki ilmaisuvoimasta

30 Kaavioiden laatiminen: Luokat
Luokan jäsenillä on samat attribuutit ja sama käyttäytyminen (metodit). Tyypillisiä luokkia ”Konseptuaaliset” luokat: sovellusalueen käsitteet (toinen tapa sanoa lähes sama: käsitteet, jotka ovat mukana jokaisessa ajateltavissa olevassa ratkaisussa) itse keksityt metaforat yms, ”pure fabrication”: luokat, jotka keksitään ”tyhjästä” helpottamaan keskustelua sovelluksesta (määrittely- tai suunnittelutasolla) Suunnittelun MVC-malli (Model-View-Controller): Model-luokat sisältävät datan (usein konseptuaalinen luokka). View-luokka näkyy käyttöliittymässä. Controller-luokka sisältää käyttöliittymälogiikan. ... Luokkajako perustuu pysyviin ominaisuuksiin ei esimerkiksi olion väliaikaiseen tilaan. Esimerkki. Toiminnallisuuden jakaminen: ei mahtiluokkia (God class), jotka "osaavat" ja "tietävät" kaiken (muut luokat toimivat vain tiedon säilytyspaikkoina).

31 Kaavioiden laatiminen: Luokat
Metodit saantimetodit (accessors) palauttavat tietoa olion tilasta muuttajametodit (mutators) muuttavat olion tilaa perussääntö: laita metodit sinne, missä tietokin on Attribuutit primitiivityypit esitetään attribuutteina abstraktit tietotyypit ja joskus muutkin oliot voivat esiintyä myös attribuutteina (vrt. muodoste ♦ ) assosiaatiot toteuttavia ”attribuutteja” ei yleensä esitetä attribuutteina kaavioissa Ei toistuvia kenttiä. Ei tarpeetonta redundanssia Ei puuttuvia kenttiä Ei turhia luokkia.

32 Kaavioiden laatiminen: Yhteydet
Olion A ja B voi yhdistää esimerkiksi seuraavanlainen suhde A on osa tai kuuluu B:n A sisältää tai omistaa B:n A kuvaa B:n A kommunikoi B:n kanssa A on tapahtuma, joka liittyy B:n A on fyysisesti B:n vieressä A käyttää B:tä A hallinnoi B:tä... Minimoi yhteydet luokkien välillä, ei redundantteja yhteyksiä ”need-to-know”-periaate: jos olio A tarvitsee toiminnassan oliota B, siihen on päästävä jotenkin käsiksi, eli A:lla on oltava ”näkyvyys” (visibility) olioon B Assosiaatiot kuvaavat yleensä tilannetta, jossa näkyvyys on pysyväisluontoista, siis koko ajan olemassa Muissa tapauksissa käytetään riippuvuusnuolia, esim. olio B välitetään parametrina olion A operaatiolle olio B on väliaikainen, A:n metodi luo olion, käyttää sitä ja tuhoaa sen lopuksi

33 Oliomallinnus Kokonaisvaltainen lähestymistapa Osista kokonaisuuteen
pyritään löytämään kerralla koko kohdealuetta kuvaava malli hankalaa, jos kohdealue on laaja ensin karkea yleiskuva, sitten lisää yksityiskohtia Osista kokonaisuuteen jaetaan kokonaisuus osiin ja tehdään osakohtaisia malleja, jotka sitten yhdistetään kokonaismalliksi osa voisi olla esimerkiksi käyttötapaus yksityiskohdista yleiskuvaan

34 Luokkien löytäminen: yleisohje
Kartoita luokkaehdokkaita Karsi ehdokkaita Tunnista olioiden väliset yhteydet Määrittele attribuutit Liitä luokkiin palvelut (luokkien välinen vuorovaikutus) Varmista palvelujen ja tietosisällön yhteensopivuus (luokkien vastuut) seuraavilla luennoilla

35 Kartoita luokkaehdokkaita
tarkasteltavan ilmiön kannalta keskeiset kohteet ja ilmiöt (osallistujat, toiminnan kohteet, toimintaan liittyvät tapahtumat, materiaalit, tuotteet, toiminnalle edellytyksiä luovat asiat) Kartoituksen pohjana voi käyttää vapaamuotoista tekstikuvausta tai sanallista käyttötapauskuvausta, josta luokkaehdokkaat löytyvät etsimällä substantiiveja Alleviivaa luokkaehdokkaat ja kerää ne luetteloon luokkaehdokkaat esiintyvät kuvauksissa useina subjekteina tai objekteina verbit voivat ilmaista yhteyksiä, samoin genetiivit alustavaa karsintaa voi tehdä sen perusteella, onko asia lainkaan oleellinen mallinnettavan ilmiön kannalta

36 Karsi luokkaehdokkaita
Arvioi löydetyt luokkaehdokkaat liittykö luokan ilmentymiin järjestelmän kannalta välttämätöntä tietosisältöä (yleensä oltava useita attribuutteja)? Tarvitaanko tietoa ilmentymien olemassaolosta? Onko asia riittävän tärkeä kohdealueen kannalta? Karsi synonyymit Karsintaa ja ehdokkaiden kartoitusta tehdään usein iteratiivisesti

37 Tunnista yhteydet Etsi yhteyksiä vapaamuotoisesta kuvauksesta
käy läpi verbit ja genetiivit muut ilmaukset jotka kuvaavat kytkentää Onko yhteys oleellinen tarkasteltavan ilmiön kannalta? Onko se rakenteellinen (vallitseva asiaintila) Esitä kukin asia vain kertaalleen Karsi tai merkitse johdettavissa olevat yhteydet Älä piilota yhteyksiä attribuuteiksi!

38 Määrittele attribuutit
Attribuutteja saataa löytyä vapaamuotoisesta kuvauksesta Yleensä niiden löytäminen edellyttää lisäselvityksiä kohdealueesta esim. haastatteluja Attribuuttien kohdalla pitäisi myös selvittää, mihin niitä käytetään

39 Esimerkki puutarhatontut
Puutarhatontut vierailevat öisin ihmisten puutarhoissa. Kullakin puutarhatontulla on oma vastuualueensa jokaisessa puutarhassa, mutta tontut voivat auttaa myös toisten alueiden hoidossa. Kukin tonttu antaa raportin omien vastuualueidensa kasvuoloista: maaperän laadusta, kosteudesta, valaistuksesta ym.Lisäksi tontut raportoivat tekemistään uusista istutuksista. Kasveja voidaan joko istuttaa taimista tai kylvää niiden siemeniä. Istutus ja kylvöpäivämäärän lisäksi halutaan tallettaa tietoa istutuksen/kylvön onnistumisesta (itikö vai juurtuiko kasvi). Tonttuneuvosto haluaa tietää, kuka on istuttanut mitäkin, sillä taitavimmat puutarhatontut palkitan jokasyksyisillä puutarhajuhlilla. Järjestelmään talletetaan myös kasvien perustiedot: minkä tyyppinen kasvi on kyseessä (puu, pensas, kukka, vihannes), kasvuvaatimukset, mahdollisten kukkien väri ja kukinta-aika, sadonkorjuuaika jne.

40 Puutarhatontut:luokkaehdokkaiden etsintä
Puutarhatontut vierailevat öisin ihmisten puutarhoissa. Kullakin tontulla on oma vastuualueensa jokaisessa puutarhassa, mutta tontut voivat auttaa myös toisten alueiden hoidossa. Kukin tonttu antaa raportin omien vastuualueidensa kasvuoloista: maaperän laadusta, kosteudesta, valaistuksesta ym.Lisäksi tontut raportoivat tekemistään uusista istutuksista. Kasveja voidaan joko istuttaa taimista tai kylvää niiden siemeniä. Istutus ja kylvöpäivämäärän lisäksi halutaan tallettaa tietoa istutuksen/kylvön onnistumisesta (itikö vai juurtuiko kasvi). Tonttuneuvosto haluaa tietää, kuka on istuttanut mitäkin, sillä taitavimmat puutarhatontut palkitaan jokasyksyisillä puutarhajuhlilla. Järjestelmään talletetaan myös kasvien perustiedot: minkä tyyppinen kasvi on kyseessä (puu, pensas, kukka, vihannes), kasvuvaatimukset, mahdollisten kukkien väri ja kukinta-aika, sadonkorjuuaika jne.

41 Puutarhatontut: luokkaehdokkaiden arviointi
Puutarhatonttu – Tontun synonyymi, karsitaan Tonttu – oleellinen (tekijä) Puutarha – oleellinen (toiminnan kohde) Ihminen – mitä halutaan kuvata? epäoleellinen, puutarhan attribuutti Vastuualue – oleellinen (toiminnan kohde, puutarhan osa) Nimen kuvaavuus? Raportti – tuloste, tietosisällön kannalta ei mitään informaatiota Istutus – oleellinen, tapahtuma, runsaasti attribuutteja Kasvi – oleellinen, attribuuttien perusteella kasvilaji parempi nimitys Taimi – kasvin tila, ei olio Siemen – kasvin tila, ei olio Tonttuneuvosto – epäoleellinen, ei attribuutteja Puutarhajuhla – epäoleellinen? palkintojenjakotilaisuus Palkinto (palkitaan) – oleellinen, ei suoraan tekstissä

42 Puutarhatontut: yhteyksien etsintä
Puutarhatontut vierailevat öisin ihmisten puutarhoissa. Kullakin tontulla on oma vastuualueensa jokaisessa puutarhassa, mutta tontut voivat auttaa myös toisten alueiden hoidossa. Kukin tonttu antaa raportin omien vastuualueidensa kasvuoloista: maaperän laadusta, kosteudesta, valaistuksesta ym.Lisäksi tontut raportoivat tekemistään uusista istutuksista. Kasveja voidaan joko istuttaa taimista tai kylvää niiden siemeniä. Istutus ja kylvöpäivämäärän lisäksi halutaan tallettaa tietoa istutuksen/kylvön onnistumisesta (itikö vai juurtuiko kasvi). Tonttuneuvosto haluaa tietää, kuka on istuttanut mitäkin, sillä taitavimmat puutarhatontut palkitaan jokasyksyisillä puutarhajuhlilla. Järjestelmään talletetaan myös kasvien perustiedot: minkä tyyppinen kasvi on kyseessä (puu, pensas, kukka, vihannes), kasvuvaatimukset, mahdollisten kukkien väri ja kukinta-aika, sadonkorjuuaika jne.

43 Puutarhatontut:attribuuttien etsintä
Puutarhatontut vierailevat öisin ihmisten puutarhoissa. Kullakin tontulla on oma vastuualueensa jokaisessa puutarhassa, mutta tontut voivat auttaa myös toisten alueiden hoidossa. Kukin tonttu antaa raportin omien vastuualueidensa kasvuoloista: maaperän laadusta, kosteudesta, valaistuksesta ym.Lisäksi tontut raportoivat tekemistään uusista istutuksista. Kasveja voidaan joko istuttaa taimista tai kylvää niiden siemeniä. Istutus- ja kylvöpäivämäärän lisäksi halutaan tallettaa tietoa istutuksen/kylvön onnistumisesta (itikö vai juurtuiko kasvi). Tonttuneuvosto haluaa tietää, kuka on istuttanut mitäkin, sillä taitavimmat puutarhatontut palkitaan jokasyksyisillä puutarhajuhlilla. Järjestelmään talletetaan myös kasvien perustiedot: minkä tyyppinen kasvi on kyseessä (puu, pensas, kukka, vihannes), kasvuvaatimukset, mahdollisten kukkien väri ja kukinta-aika, sadonkorjuuaika jne.

44 Puutarhatontut: Luokat ja attribuutit
Tonttu tonttutunnus nimi Puutarha puutarhatunnus omistaja sijainti Vastuualue kosteus valaistus Palkinto vuosi järjestysnumero saaja (olioviite) Istutus istutuspäivä kasvi (olioviite) vastuualue (olioviite) paikka istutusmuoto onnistuminen istuttaja (olioviite) Kasvilaji nimi tyyppi vaatimukset kukat sadonkorjuu

45 Puutarhatontut:luokkakaavio

46 Luokkien etsiminen käyttötapauksista
Etsitään käyttötapaus kerrallaan (käyttötapausten sanallinen kuvaus) luokat, niiden väliset yhteydet ja attribuutit Yhdistetään nämä luokkamallit yhdeksi luokkamalliksi

47 Hyviä tenttikysymyksiä
Annetaan jokin sovellusalueen kuvaus, esim. Afrikan tähti –peli. Mallinna sovellusalueen luokat, niiden väliset yhteydet ja attribuutit. Esitä sekä välivaiheet että lopullinen UML luokkakaavio perustelujen kera.


Lataa ppt "Päivi Ovaska Tutkijaopettaja LTY/Tite"

Samankaltaiset esitykset


Iklan oleh Google