Johdanto
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

Johdanto PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on
  • Presentation posted in: General

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ö

Download Presentation

Johdanto

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Johdanto

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


Olio object

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


Olion kuvaaminen

matinTili:Tili

numero: int =123432

omistaja:String =’Mainio Matti’

saldo: double = 123,45

Olion kuvaaminen

  • joskus olion nimi voi puuttua (:Tili)

  • oliot ovat viestiyhteydessä toteuttaakseen järjestelmän toiminnallisuuden; palvelupyyntö

6. Luokkakaaviot


Luokka class

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


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

Luokka ja oliot

6. Luokkakaaviot


Luokan kuvaaminen

Tili

- numero: integer

- Omistaja: String

- Saldo: doupble

+ tili()

+ annaSaldo : float

+ otto(mk: float)

+ pano(mk: float)

Luokan kuvaaminen

  • näkyvyys (+, - #) voi puuttua attribuutin tai palvelun edestä (yleensä vasta suunnitteluvaiheessa otetaan kantaa

  • myös tyypit puuttuvat yleensä analyysivaiheessa

6. Luokkakaaviot


Luokan kuvaaminen1

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


Luokkakuvaus olio ohjelmassa

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


Erilaisia luokkia

Liiketoimintaluokka

asiakas

sopimus

lasku

velka

sijoitus

hinta-arvio

Teknisiä luokkia (käyttöliittymäluokkia)

anturi

näyttö

i/o-kortti

moottori

painonappi

Erilaisia luokkia

6. Luokkakaaviot


Luokkakuvaus tili henkil tunnus

Tili

numero

omistaja

saldo

tili ()

annaSaldo()

otto ()

pano ()

Henkilotunnus

- tarkistumerkkit[31]

- paivamaara

- jarjestysNumero

- tarkMerkki

+ toString(): String

+ isOK(): Boolean

+ getBirdhDate(): Date

+getSex(): int

Luokkakuvaus: TILI, HENKILÖTUNNUS

6. Luokkakaaviot


Analyysivaiheen luokkien l ytyminen

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


Johdanto

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


Harjoitus luokkakaavio

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


Harjoitus luokkakaavio1

Harjoitus - luokkakaavio

  • luokat

    • opiskelija

    • opintojakso

    • opintorekisteriote, ote

    • tutkintotodistus, todistus

    • opintosuoritus, suoritus

6. Luokkakaaviot


Luokkien v liset yhteydet assosiaatio

Luokkien väliset yhteydet - assosiaatio

  • assosiaatio (association)

  • merkitsee kahden luokan olioiden välillä olevaa linkkiä (esim. Asiakas omistaa tilin)

6. Luokkakaaviot


Luokkien v liset yhteydet assosiaatio1

Luokkien väliset yhteydet - assosiaatio

  • yhteys voi olla myös kahden saman luokan ilmentymän välillä:

6. Luokkakaaviot


Luokkien v liset yhteydet kooste aggregate

Luokkien väliset yhteydet – kooste (aggregate)

  • Kokonaisuuden ja siihen kuuluvan osan

  • välinen yhteys

  • kooste

  • yhteyden erikoistapaus, kuvaa pysyvää

  • yhteyttä

6. Luokkakaaviot


Luokkien v liset yhteydet kompositio composition

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


Opiskelijahallinnon luokkakaavio

Opiskelijahallinnon luokkakaavio

6. Luokkakaaviot


Luokkamallin laatiminen

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


Luokkamallin laatiminen1

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


    Esimerkki elokuvateatteri

    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


    Luokkaehdokkaat

    Luokkaehdokkaat

    6. Luokkakaaviot


    Alustava luokkamalli t ydenn

    paikka

    Alustava luokkamalli – täydennä!

    ohjelmakartta

    teatteri

    elokuva

    näytös

    asiakas

    varaus

    lippu

    6. Luokkakaaviot


    Yleistys

    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


    Yleistys esimerkki

    • OPISKELIJA

    • nimi

    • sotu

    • osoite

    • koulutusohjelma

    • OPETTAJA

    • nimi

    • sotu

    • osoite

    • virkasuhde

    • opetusalue

    Yleistys - esimerkki

    6. Luokkakaaviot


    Yleistys esimerkki1

    • OPISKELIJA

    • koulutusohjelma

    • OPETTAJA

    • virkasuhde

    • opetusalue

    Yleistys - esimerkki

    • HENKILÖ

    • nimi

    • sotu

    • osoite

    6. Luokkakaaviot


    Periytyminen ja polymorfismi

    Kuvio

    Nelio

    Ympyra

    Kolmio

    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

    erikoistaminen

    (specialization)

    yleistäminen

    (generalization)

    aliluokka,

    perillinen

    6. Luokkakaaviot


    Luokan perint

    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


    Abstraktit operaatiot ja luokat

    Abstraktit operaatiot ja luokat

    abstrakti luokka

    abstraktit operaatiot

    konkreettinen operaatio

    konkreettiset

    luokat

    6. Luokkakaaviot


    Polymorfismi

    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


  • Login