Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Johdanto Luokat (ja oliot) mallintava järjestelmän rakennetta

Samankaltaiset esitykset


Esitys aiheesta: "Johdanto Luokat (ja oliot) mallintava järjestelmän rakennetta"— Esityksen transkriptio:

1 Johdanto Luokat (ja oliot) mallintava järjestelmän rakennetta
määrittely järjestelmän kannalta Luokat ja niiden väliset suhteet muuntuvat suoraan lähdekoodiksi! Luokkakaaviolla kuvataan ohjelmiston ja järjestelmän rakenne olioiden tietosisältö palvelut, joita oliot kykenevät suorittamaan sekä olioiden ja luokkien väliset yhteydet 6. Luokkakaaviot

2 Olio (Object) tiedon ja sen käsittelyyn liittyvien palveluiden muodostama kokonaisuus olion tietoihin pääsee käsiksi vain palvelujen kautta (”hyvä tapa”) kapselointi (encapsulation) tiedon piilotus kuuluu johonkin luokkaan (class) oliolla on identiteetti (identity) tila (state) attribuuttien arvo tiettynä ajanhetkenä käyttäytyminen (behaviour) käyttäytyminen mallinnetaan palveluina (operation) 6. Luokkakaaviot

3 Olion kuvaaminen joskus olion nimi voi puuttua (:Tili)
matinTili:Tili numero: int =123432 omistaja:String =’Mainio Matti’ saldo: double = 123,45 joskus olion nimi voi puuttua (:Tili) oliot ovat viestiyhteydessä toteuttaakseen järjestelmän toiminnallisuuden; palvelupyyntö 6. Luokkakaaviot

4 Luokka (Class) jokainen oli on jonkin luokan ilmentymä (instance)
luokka kuvaa tai määrittelee samanlaisten olioiden yhteiset ominaispiirteet luokka on siis kuvaus olion tyypistä Oikeiden luokkien löytäminen on oliopohjaisen analyysin (OOA) onnistumisen avaintekijä! Katsele ympärillesi. Mitä luokkia voisit nimetä? 6. Luokkakaaviot

5 Luokka ja oliot Tili numero: int omistaja: String saldo: double
nosto() pano() matinTili:Tili numero: int =123432 omistaja:String =’Mainio Matti’ saldo: double = 123,45 mikonTili:Tili numero: int =654321 omistaja:String =’Linna Mikko’ saldo: double = -789,76 maijanTili:Tili numero: int =345543 omistaja:String =’Metso Maija’ saldo: double = 54567,80 6. Luokkakaaviot

6 Luokan kuvaaminen Tili - numero: integer - Omistaja: String - Saldo: doupble + tili() + annaSaldo : float + otto(mk: float) + pano(mk: float) näkyvyys (+, - #) voi puuttua attribuutin tai palvelun edestä (yleensä vasta suunnitteluvaiheessa otetaan kantaa myös tyypit puuttuvat yleensä analyysivaiheessa 6. Luokkakaaviot

7 Luokan kuvaaminen staattinen kuvaus: kuvaa pysyvää rakennetta
määrittää perustan muille kaavioille voidaan toteuttaa suoraan olio-ohjelmointikielellä luokka kuvataan antamalla nimi ominaisuudet (attribuutit) osaamiset (palvelut, metodit) ominaisuuksien arvo määrittää olion tilan voi olla viittaus toiseen olioon (--> yhteys toiseen olioon) palvelut (palvelurajapinta, ulospäin näkyvä) 6. Luokkakaaviot

8 Luokkakuvaus olio-ohjelmassa
public class Tili { int numero; string[] omistaja; double saldo; public tili (…) { …} public void pano (…) public void otto( …) …} Tili matinTili = new Tili( …); // ilmentymä Tili maijanTili = new Tili( …); // toinen ilmentymä 6. Luokkakaaviot

9 Erilaisia luokkia Liiketoimintaluokka
asiakas sopimus lasku velka sijoitus hinta-arvio Teknisiä luokkia (käyttöliittymäluokkia) anturi näyttö i/o-kortti moottori painonappi 6. Luokkakaaviot

10 Luokkakuvaus: TILI, HENKILÖTUNNUS
numero omistaja saldo tili () annaSaldo() otto () pano () Henkilotunnus - tarkistumerkkit[31] - paivamaara - jarjestysNumero - tarkMerkki + toString(): String + isOK(): Boolean + getBirdhDate(): Date +getSex(): int 6. Luokkakaaviot

11 Analyysivaiheen luokkien löytyminen
Analysoitavat tuotokset käyttötapauskaaviot ja tekstikuvaukset vaatimusluettelo liiketoiminnan yleinen kuvaus (arkkitehtuurikuvaus) Luokkia ovat kohdemaailman tärkeäksi koetut asiat, esineet, ihmiset, tapahtumat liiketoiminnan todellisia käsitteitä Hyvä analyysivaiheen luokka nimi kuvaa sisältöä abstraktio, joka mallintaa kohdejärjestelmää kokonaisuutena yhtenäinen kokonaisuus, mutta heikko kytkentä 6. Luokkakaaviot

12 Analyysivaiheen luokkien löytyminen
substantiivi/verbi analyysi substantiivit voivat olla luokkia tai luokkien ominaisuuksia (attribuutteja) verbit kuvaavat luokkien vastuita (palveluita) fyysiset objektit (lentokone, ihmiset, hotelli,…) paperit (lasku, tilaus, …) käyttöliittymät (kortinlukija, näyttö,…) 6. Luokkakaaviot

13 Harjoitus - luokkakaavio
Oppilashallintosovellus Opettajan pitää pystyä lisäämään opiskelijoiden suorituksia Opintosihteeri ylläpitää oppilasrekisteriä Opintosihteeri ylläpitää myös kurssiluetteloa Opintosihteeri ja opiskelija voivat tulostaa opinto-otteita Opintosihteeri tulostaa tutkintotodistuksia 6. Luokkakaaviot

14 Harjoitus - luokkakaavio
luokat opiskelija opintojakso opintorekisteriote, ote tutkintotodistus, todistus opintosuoritus, suoritus 6. Luokkakaaviot

15 Luokkien väliset yhteydet - assosiaatio
assosiaatio (association) merkitsee kahden luokan olioiden välillä olevaa linkkiä (esim. Asiakas omistaa tilin) 6. Luokkakaaviot

16 Luokkien väliset yhteydet - assosiaatio
yhteys voi olla myös kahden saman luokan ilmentymän välillä: 6. Luokkakaaviot

17 Luokkien väliset yhteydet – kooste (aggregate)
Kokonaisuuden ja siihen kuuluvan osan välinen yhteys kooste yhteyden erikoistapaus, kuvaa pysyvää yhteyttä 6. Luokkakaaviot

18 Luokkien väliset yhteydet – kompositio (composition)
koostetta merkittävämpi rakenne mallintamisen kannalta osa on olemassaoloriippuva kokonaisuudesta: kokonaisuuden hävittäminen hävittää myös osat! 6. Luokkakaaviot

19 Opiskelijahallinnon luokkakaavio
6. Luokkakaaviot

20 Luokkamallin laatiminen
Kartoita luokkaehdokkaita laadi luettelo keskeisistä kohteista ja ilmiöistä (toimintaan osallistujat, toiminnan kohteet, toimintaan liittyvät tapahtumat, materiaalit, tuotteet, välituotteet,…) käytä pohjana tekstikuvausta kohdealueesta (substantiivit; verbit voivat ilmaista yhteyttä) karsi jo alustavasti epäoleelliset Karsi ehdokkaita Liittyykö ilmiöön tietosisältöä, joka on välttämätöntä järjestelmän kannalta? Onko asia tärkeä? 6. Luokkakaaviot

21 Luokkamallin laatiminen
Tunnista olioiden väliset yhteydet verbit, genetiivit, kytkentää ilmaisevat ilmaukset mieti onko oleellinen Täydennä luokkakuvauksia määrittelemällä attribuutit voi löytyä tekstikuvauksista edellyttää usein lisäselvityksiä (haastatteluja) Määrittele osallistumisrajoitteet ** Liitä luokkiin palvelut alustavassa mallissa ei vielä tarvitse määritellä ** Varmista palvelujen ja tietosisällön yhteensopivuus 6. Luokkakaaviot

22 Esimerkki: Elokuvateatteri
Elokuvalipun varaaminen: Lippu oikeuttaa paikkaan tietyssä näytöksessä. Näytöksellä tarkoitetaan elokuvan esittämistä tietyssä teatterissa tiettyyn aikaan. Samaa elokuvaa voidaan esittää useissa teattereissa useina aikoina. Teatterin ohjelmakartta määrittelee, mitä elokuvia missäkin näytöksessä esitetään. Asiakas voi samassa varauksessa varata useita lippuja. Luokkaehdokkaat? 6. Luokkakaaviot

23 Luokkaehdokkaat Ehdokas Analyysi elokuvalippu
sama kuin lippu, karsitaan lippu oikeus paikkaan, mahdollinen, tietosisältö? paikka istuin teatterissa, varauksen kohde, tunnus näytös varauksen kohde,keskeinen, aika elokuva näytöksen sisältö, nimi, yms teatteri isompi paikka asiakas varauksen tekijä, oleellinen ohjelmakartta ohjelmatarjonta, kytkennät ajan ja paikan ja elokuvan välillä varaus tuote 6. Luokkakaaviot

24 Alustava luokkamalli – täydennä!
ohjelmakartta teatteri elokuva näytös asiakas varaus paikka lippu 6. Luokkakaaviot

25 Yleistys jos kahden luokan olioilla on yhteisiä piirteitä, voidaan nämä koota yhdeksi luokaksi, jota kutsutaan yliluokaksi (superclass) erikoiset piirteet sisällytetään tämän luokan aliluokille (subclass) yleistys (generalization) tai periytyminen, perintä (inheritance) kanden luokan yhteisten ominaisuuksien yleistys yhteiseksi yläluokaksi erikoistaminen luokkien erikoisten ominaisuuksien erottelu aliluokille 6. Luokkakaaviot

26 Yleistys - esimerkki OPISKELIJA OPETTAJA nimi sotu osoite
koulutusohjelma OPETTAJA virkasuhde opetusalue 6. Luokkakaaviot

27 Yleistys - esimerkki HENKILÖ nimi sotu osoite OPISKELIJA OPETTAJA
koulutusohjelma OPETTAJA virkasuhde opetusalue 6. Luokkakaaviot

28 Periytyminen ja polymorfismi
Yleistäminen (generalization) yleisen ja erikoistetun elementin välinen suhde erikoistettua elementtiä voi käyttää kaikkialla, missä odotetaan käytettävän yleistä elementtiä vahvin yhteysmuoto (vahva kytkentä) yliluokka, perusluokka Kuvio Ympyra Nelio Kolmio erikoistaminen (specialization) yleistäminen (generalization) aliluokka, perillinen 6. Luokkakaaviot

29 Luokan perintä aliluokat voivat periä yliluokkansa piirteitä (features) ominaisuuksia (attributes) operaatioita (operations) suhteita (relationships) rajoitteita (constraints) aliluokalla voi olla lisäksi omia piirteitä sekä ne voivat ylikirjoittaa (overwrite) yliluokkansa operaatioita ylikirjoittaminen ala = säde2 * π ala = leveys * korkeus 6. Luokkakaaviot

30 Abstraktit operaatiot ja luokat
abstrakti luokka abstraktit operaatiot konkreettinen operaatio konkreettiset luokat 6. Luokkakaaviot

31 Polymorfismi = ”monta muotoa”
edellä abstraktit operaatioilla (piirra, laskeAla) on kaksi erilaista toteutusta  ovat polymorfisia konkreettisen luokan on aina määriteltävä ja toteutettava abstraktilta luokalta perimänsä ja sen määrittelemät operaatiot 6. Luokkakaaviot


Lataa ppt "Johdanto Luokat (ja oliot) mallintava järjestelmän rakennetta"

Samankaltaiset esitykset


Iklan oleh Google