ohjelmistotuotannon menetelmät syksy 2003 luokka- ja käsitekaaviot, oliomallinnus

Download Ohjelmistotuotannon menetelmät Syksy 2003  Luokka- ja käsitekaaviot, oliomallinnus

Post on 04-Jan-2016

49 views

Category:

Documents

3 download

Embed Size (px)

DESCRIPTION

Ohjelmistotuotannon menetelmät Syksy 2003 Luokka- ja käsitekaaviot, oliomallinnus. Päivi Ovaska Tutkijaopettaja LTY/Tite. Sisältö. Luokkamallinnus, käsitemallinnus Taustaa oliopohjaisesta ajattelusta UML luokkakaaviot Kaavioiden ilmaisuvoimasta Kaavioiden laatiminen Oliomallinnus - PowerPoint PPT Presentation

TRANSCRIPT

  • Ohjelmistotuotannon menetelmtSyksy 2003 Luokka- ja ksitekaaviot, oliomallinnus Pivi OvaskaTutkijaopettaja LTY/Tite

  • SisltLuokkamallinnus, ksitemallinnusTaustaa oliopohjaisesta ajattelustaUML luokkakaaviotKaavioiden ilmaisuvoimastaKaavioiden laatiminenOliomallinnusOliomallinnus esimerkkiHyvi tenttikysymyksi

  • Luokkamallinnus, ksitemallinnusOliokaavio, ER-kaavio, Entity Relationship diagram, ERD, tietoyhteyskaavio, ksitekaavio, kohdekaavioKuvaa jrjestelmn ksitteit (olioita) ja niiden keskinisi suhteitaTavoitteena lyt trkeimmt abstraktiotPerinteisesti tietokantasuunnittelun vlineOliokeskeisiss menetelmiss keskeisin mallinnusvline

  • Luokka- ja oliokaaviotLuokka- ja oliokaavioilla kuvataanohjelmiston/jrjestelmn rakenneolioiden tietosisltolioiden tarjoamat palvelutolioiden ja luokkien vliset yhteydet

  • Taustaa:Kuinka hahmotan maailmaa oliopohjaisesti?haluan lhett kukkia ystvlleni naapurikaupunkiin menen kukkakauppaanpyydn toimittamaan kukat -> pyynt vlitetn naapurikaupungin kukkakauppaan siell lhetti toimittaa kukat sama olioksitteill: lhetn viestin kukkakauppias oliolle hn hyvksyy ja osaa ksitell viestin tehtv j hnen vastuulleen kukkakauppias toteuttaa viestin toimenpiteen (metodin) avulla toteutus piilotettu minulta hn lhett viestin toiselle kukkakauppiaalle jne.

  • Taustaa:Olio-pohjainen ajatteluOliokeskeisess ajattelussa lhes mit hyvns voi ajatella oliona:bitti, merkki, merkkijono, kokonaisluku, tiedosto, palvelin, kuorma-auto, pankkiyhteys, varasto, pankkitili Oliolla on tilaolion muistitila voi koostua toisista olioista, esimerkiksi pvm voi koostua pivst, kuukaudesta ja vuodestaolion tila on kapseloitu olion sislle: sit voi kysell oliolta ja sit voi muuttaa kutsumalla olion metodeitaOliolla on rajapintajoukko toimintoja, joilla oliota hallitaan, operaatiot, julkiset jsenfunktiot, palvelut, metodit...Oliokeskeinen ohjelma koostuu joukosta keskenn kommunikoivia oliota. Oliot kommunikoivat lhettmll toisilleen sanomia, ts. kutsumalla toistensa rajapintojen mrittelemi funktioitaLuokka: oliot, joilla on sama kyttytyminen (metodit) ja samat attribuutit, ovat instansseja eli ilmentymi samasta olioluokasta.

  • UML kaavioiden peruselementtej ja suhteitaElementitSuhteetLuokkaNimiTilaPakkausKommenttiTekstijne.RiippuvuusAssosiaatioKoosteYleistys(Periytyminen)Toteutus0..1*roolijne.NimiNimi

  • LuokkakaavioLuokkakaavio (class diagram, static structure diagram) kuvaa jrjestelmn kuuluvia luokkia ja niiden vlisi suhteita. luokkakaaviota kytetn jrjestelmn staattisen rakenteen kuvaukseen Luokkakaaviolla mallinnetaan eri ohjelmistokehityksen eri vaiheissa eri abstraktiotasolla olevia asioita:mrittelyvaiheessa luokkakaavio on ksitemalli (conceptual model) ko. sovellusalueestaarkkitehtuurisuunnitteluvaiheessa luokkakaavio kuvaa jrjestelmn moduulirakennetta ja uudelleenkytettvyyden rakenteita (esim. suunnittelumallit)moduulisuunnitteluvaiheessa (yksityiskohtainen suunnittelu) mukana jo toteutusluokkiaohjelmointivaiheessa toteutusluokkia

  • Esimerkki ksitetason luokkakaaviosta: lautapelikyttomistaasijaitseekuuluukoostuupelaa{ordered}peittpttyy0..10..10..12******seuraaNappulaPeliErikoispaikkaAarrePelaajaNoppaKarttaLappuPaikkaLentoreitti111110..10..11

  • Luokka (ksite,kohde) ja yhteys

  • Yhteyksist1:nYhden suhde moneenOpintojaksolla on monta toteutuskertaa1:1Yhden suhde yhteenOsastolla on yksi osastopllikk. Osastopllikk voi olla vain yhden osaston pllikk.n:mMonen suhde moneenUrheilija voi osallistua moneen lajiin. Jokaisessa lajissa on useita osallistujia.

  • PakollisuusValinnainen: Asteen alaraja on 00..1 (nolla tai yksi)0..n (nolla tai useampi)Pakollinen: Yhteyden asteen alaraja on 11 (1..1)1..n (n)

  • Luokkien suhteistanavigointisuuntaassosiatioluokkalukusuunta

  • Periyttminen, yleistminen, erikoistaminen rajoite

  • Periytyminenon-suhde (is-a)Auto on kulkuneuvoErikoistaminen AliluokkaKulkuneuvo on auto tai helikopteriYleistminen YliluokkaAuto ja helikopteri ovat kulkuneuvoja

  • Aliluokka perii piirteetpiirteet:: a, b, cpiirteet:: a, b, d, e, fpiirteet:: a, b, d, epiirteet:: a, b

  • Periyttminen

  • Muodostuminen: Assosiaation erikoistapauksiamuodoste (composition)kooste (aggregation)

  • Koostuminen (aggregation) jamuodostuminen (composition)Koostuminenilmaistaan olion olevan toisen olion komponenttiMuodosteelinikriippuvuus: olio syntyy toisen olion komponentiksi ja pysyyt sellaisena koko elinaikansakun isntolio hvitetn, mys kaikki siihen muodostesuhteessa olevat oliot katoavat

  • NavigointiKvalifiointiRoolien nimetAccessRightPersonCompanyClientBankaccountnr*Personhas*1..**employeremployee

    Lisukkeet: Yhteyksien erityispiirteit

  • Rajapinnat, toteutus-suhde

  • Rajapinnat 2

  • YhteyksistAssosiaatio yleisimmin kytetty yhteysJos yhteys heikko (esim. kohdeoliota tarvitaaan vain parametreina, tai kohteena on tietty kirjasto, jonka on pakko olla olemassa toiminnan kannalta) kytetn riippuvuuttaJos luokka A tarvitsee tiukasti koko elinkaarensa ajan luokkaa B, kyseess on kooste

  • Luokkakaavioiden kytttavoistaKaavioita voidaan kytt esitutkimuksessa, mrittelyss ja suunnittelussa.Esitutkimus ja mrittely: sovellusalueen ksitteet (domain object model), jrjestelmn rajaus, analysis object model, jrjestelmn tietosislln mrittely (ksitekaavio, conceptual model), usein mys 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 kysymn oikeita kysymyksi.

  • Kaavioiden ilmaisuvoimastaKaikkien sallittujen tilanteiden on oltava kaaviossa mukana.Kaikkia rajoituksia ei aina pysty ilmaisemaan => Listn rajoitteita ja kommentteja.Kaavioita voi testata hakemalla siita vastauksia kysymyksiin ja piirtelemll kuvia esimerkkitilanteistaMahtavatkohan asiakkaat ymmrt kaavioita?

  • Esimerkki ilmaisuvoimasta Kysymys 1: miss firmoissa A.S. on tiss?Kysymys 2: kuka on A.S.:n esimies, kun hn on Aikonilla hommissa?Kysymys 3: mik on A.S.:n esimiehen titteli kohdan 2 kysymyksess.

  • Esimerkki ilmaisuvoimasta

  • Esimerkki ilmaisuvoimasta

  • Esimerkki ilmaisuvoimasta

  • Kaavioiden laatiminen: Luokat Luokan jsenill on samat attribuutit ja sama kyttytyminen (metodit). Tyypillisi luokkiaKonseptuaaliset luokat: sovellusalueen ksitteet (toinen tapa sanoa lhes sama: ksitteet, jotka ovat mukana jokaisessa ajateltavissa olevassa ratkaisussa)itse keksityt metaforat yms, pure fabrication: luokat, jotka keksitn tyhjst helpottamaan keskustelua sovelluksesta (mrittely- tai suunnittelutasolla)Suunnittelun MVC-malli (Model-View-Controller): Model-luokat sisltvt datan (usein konseptuaalinen luokka). View-luokka nkyy kyttliittymss. Controller-luokka sislt kyttliittymlogiikan....Luokkajako perustuu pysyviin ominaisuuksiin ei esimerkiksi olion vliaikaiseen tilaan. Esimerkki.Toiminnallisuuden jakaminen: ei mahtiluokkia (God class), jotka "osaavat" ja "tietvt" kaiken (muut luokat toimivat vain tiedon silytyspaikkoina).

  • Kaavioiden laatiminen: Luokat Metoditsaantimetodit (accessors) palauttavat tietoa olion tilastamuuttajametodit (mutators) muuttavat olion tilaaperussnt: laita metodit sinne, miss tietokin onAttribuutitprimitiivityypit esitetn attribuutteinaabstraktit tietotyypit ja joskus muutkin oliot voivat esiinty mys attribuutteina (vrt. muodoste )assosiaatiot toteuttavia attribuutteja ei yleens esitet attribuutteina kaavioissaEi toistuvia kentti.Ei tarpeetonta redundanssia Ei puuttuvia kentti Ei turhia luokkia.

  • Kaavioiden laatiminen: YhteydetOlion A ja B voi yhdist esimerkiksi seuraavanlainen suhdeA on osa tai kuuluu B:nA sislt tai omistaa B:nA kuvaa B:nA kommunikoi B:n kanssaA on tapahtuma, joka liittyy B:nA on fyysisesti B:n vieressA kytt B:tA hallinnoi B:t... Minimoi yhteydet luokkien vlill, ei redundantteja yhteyksi need-to-know-periaate: jos olio A tarvitsee toiminnassan oliota B, siihen on pstv jotenkin ksiksi, eli A:lla on oltava nkyvyys (visibility) olioon BAssosiaatiot kuvaavat yleens tilannetta, jossa nkyvyys on pysyvisluontoista, siis koko ajan olemassaMuissa tapauksissa kytetn riippuvuusnuolia, esim.olio B vlitetn parametrina olion A operaatiolleolio B on vliaikainen, A:n metodi luo olion, kytt sit ja tuhoaa sen lopuksi

  • OliomallinnusKokonaisvaltainen lhestymistapapyritn lytmn kerralla koko kohdealuetta kuvaava mallihankalaa, jos kohdealue on laajaensin karkea yleiskuva, sitten lis yksityiskohtiaOsista kokonaisuuteenjaetaan kokonaisuus osiin ja tehdn osakohtaisia malleja, jotka sitten yhdistetn kokonaismalliksiosa voisi olla esimerkiksi kytttapausyksityiskohdista yleiskuvaan

  • Luokkien lytminen: yleisohjeKartoita luokkaehdokkaitaKarsi ehdokkaitaTunnista olioiden vliset yhteydetMrittele attribuutitLiit luokkiin palvelut (luokkien vlinen vuorovaikutus)Varmista palvelujen ja tietosislln yhteensopivuus (luokkien vastuut)

    seuraavillaluennoilla

  • Kartoita luokkaehdokkaitatarkasteltavan ilmin kannalta keskeiset kohteet ja ilmit (osallistujat, toiminnan kohteet, toimintaan liittyvt tapahtumat, materiaalit, tuotteet, toiminnalle edellytyksi luovat asiat)Kartoituksen pohjana voi kytt vapaamuotoista tekstikuvausta tai sanallista kytttapauskuvausta, josta luokkaehdokkaat lytyvt etsimll substantiivejaAlleviivaa luokkaehdokkaat ja ker ne luetteloonluokkaehdokkaat esiintyvt kuvauksissa useina subjekteina tai objekteinaverbit voivat ilmaista yhteyksi, samoin genetiivitalustavaa karsintaa voi tehd sen perusteella, onko asia lainkaan oleellinen mallinnettavan ilmin kannalta

  • Karsi luokkaehdokkaitaArvioi lydetyt luokkaehdokkaatliit