Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen

Koko: px
Aloita esitys sivulta:

Download "Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen"

Transkriptio

1 Johdanto Olio (Object) 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 1 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 2 Olion kuvaaminen Luokka (Class) matin: numero: int = omistaja:string = Mainio Matti saldo: double = 123,45 joskus olion nimi voi puuttua (:) oliot ovat viestiyhteydessä toteuttaakseen järjestelmän toiminnallisuuden; palvelupyyntö 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 3 6. Luokkakaaviot 4

2 Luokka ja oliot Luokan kuvaaminen numero: int omistaja: String saldo: double nosto() pano() - numero: integer - Omistaja: String -Saldo: doupble näkyvyys (+, - #) voi puuttua attribuutin tai palvelun edestä (yleensä vasta suunnitteluvaiheessa otetaan kantaa myös tyypit puuttuvat yleensä analyysivaiheessa matin: numero: int = omistaja:string = Mainio Matti saldo: double = 123,45 maijan: numero: int = omistaja:string = Metso Maija saldo: double = 54567,80 mikon: numero: int = omistaja:string = Linna Mikko saldo: double = -789,76 + tili() + annasaldo : float + otto(mk: float) + pano(mk: float) 6. Luokkakaaviot 5 6. Luokkakaaviot 6 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 7 Luokkakuvaus olioohjelmassa public class { int numero; string[] omistaja; double saldo; public tili ( ) { } public void pano ( ) { } public void otto( ) { } } matin = new ( ); // ilmentymä maijan = new ( ); // toinen ilmentymä 6. Luokkakaaviot 8

3 Erilaisia luokkia Luokkakuvaus: TILI, HENKILÖTUNNUS Liiketoimintaluokka asiakas sopimus lasku velka sijoitus hinta-arvio Teknisiä luokkia (käyttöliittymäluokkia) anturi näyttö i/o-kortti moottori painonappi numero omistaja saldo tili () annasaldo() otto () pano () Henkilotunnus - tarkistumerkkit[31] -paivamaara - jarjestysnumero - tarkmerkki + tostring(): String + isok(): Boolean + getbirdhdate(): Date +getsex(): int 6. Luokkakaaviot 9 6. Luokkakaaviot 10 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ä 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 Luokkakaaviot 12

4 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 Harjoitus - luokkakaavio luokat opiskelija opintojakso opintorekisteriote, ote tutkintotodistus, todistus opintosuoritus, suoritus 6. Luokkakaaviot Luokkakaaviot 14 Luokkien väliset yhteydet - assosiaatio assosiaatio (association) merkitsee kahden luokan olioiden välillä olevaa linkkiä (esim. Asiakas omistaa tilin) Luokkien väliset yhteydet - assosiaatio yhteys voi olla myös kahden saman luokan ilmentymän välillä: Tyontekija esimies Asiakas 0..1 numero omistaja saldo 0..* omistaa 1 nimi osoite puhelin alainen 0..* johtaa 6. Luokkakaaviot Luokkakaaviot 16

5 Luokkien väliset yhteydet kooste (aggregate) Kokonaisuuden ja siihen kuuluvan osan välinen yhteys kooste yhteyden erikoistapaus, kuvaa pysyvää yhteyttä 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! Joukkue 0..* Pelaaja Laiva 1..* Hytti 6. Luokkakaaviot Luokkakaaviot 18 Opiskelijahallinnon luokkakaavio Luokkamallin laatiminen Opiskelija nimi osoite puhelin saa OpintoOte saa tekee Suoritus pvm arvosana Todistus liittyy Opettaja nimi osoite puhelin opetusalue arvioi opettaa 1. 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 2. Karsi ehdokkaita Liittyykö ilmiöön tietosisältöä, joka on välttämätöntä järjestelmän kannalta? Onko asia tärkeä? koostuu Opintojakso 6. Luokkakaaviot Luokkakaaviot 20

6 Luokkamallin laatiminen 3. Tunnista olioiden väliset yhteydet verbit, genetiivit, kytkentää ilmaisevat ilmaukset mieti onko oleellinen 4. Täydennä luokkakuvauksia määrittelemällä attribuutit voi löytyä tekstikuvauksista edellyttää usein lisäselvityksiä (haastatteluja) 5. Määrittele osallistumisrajoitteet 6. ** Liitä luokkiin palvelut alustavassa mallissa ei vielä tarvitse määritellä 7. ** Varmista palvelujen ja tietosisällön yhteensopivuus 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 Luokkakaaviot 22 Luokkaehdokkaat Alustava luokkamalli täydennä! Ehdokas Analyysi ohjelmakartta teatteri elokuvalippu sama kuin lippu, karsitaan lippu oikeus paikkaan, mahdollinen, tietosisältö? elokuva paikka istuin teatterissa, varauksen kohde, tunnus näytös näytös varauksen kohde,keskeinen, aika elokuva teatteri asiakas näytöksen sisältö, nimi, yms isompi paikka varauksen tekijä, oleellinen asiakas varaus ohjelmakartta ohjelmatarjonta, kytkennät ajan ja paikan ja elokuvan välillä varaus tuote 6. Luokkakaaviot 23 lippu paikka 6. Luokkakaaviot 24

7 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 Yleistys - esimerkki OPISKELIJA -nimi -sotu -osoite -koulutusohjelma OPETTAJA -nimi -sotu -osoite -virkasuhde -opetusalue 6. Luokkakaaviot Luokkakaaviot 26 Yleistys - esimerkki HENKILÖ -nimi -sotu -osoite 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 OPISKELIJA -koulutusohjelma OPETTAJA -virkasuhde -opetusalue yleistäminen (generalization) Nelio Kuvio Ympyra Kolmio erikoistaminen (specialization) 6. Luokkakaaviot 27 aliluokka, perillinen 6. Luokkakaaviot 28

8 Luokan perintä Abstraktit operaatiot ja luokat 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 Nelio Kuvio nelioala ala = leveys * korkeus Ympyra ala = säde 2 * π abstrakti luokka konkreettiset luokat Nelio Kuvio nelioala Ympyra abstraktit operaatiot konkreettinen operaatio 6. Luokkakaaviot Luokkakaaviot 30 Polymorfismi = monta muotoa edellä abstraktit operaatioilla (, ) 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 Pankki 1 * numero saldo nosto laskekorko talletus Käyttötili Luottotili Talletustili nosto laskekorko otto nosto laskekorko nosto laskekorko 6. Luokkakaaviot 31

Luokkakaavion laatiminen

Luokkakaavion laatiminen Luokkakaavion laatiminen Kartoita luokkaehdokkaita Karsi ehdokkaita Tunnista olioiden väliset yhteydet Täsmennä luokkakuvauksia määrittelemällä attribuutit Määrittele yhteyksiin liittyvät osallistumisrajoitteet.

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue

Lisätiedot

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1 Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa 14.11.2008 Harri Laine 1 Oliot ohjelmiston mallinnuksessa käyttötapaus käyttää Käyttämämme oliokeskeinen perusmalli ohjelmistojen

Lisätiedot

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

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus Luokkakaavion tarkoitus Järjestelmän tietosisällön kuvaaminen: tiedot ja niiden väliset kytkennät järjestelmän tiedot kuvaavat kohdealueiden ilmiöitä, joten luokkakaavion tulisi määritellä kohdealueen

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä:

Lisätiedot

Luokkakohtaiset eli stattiset metodit ja attribuutit

Luokkakohtaiset eli stattiset metodit ja attribuutit Luokkakohtaiset eli stattiset metodit ja attribuutit Ilmaistaan luokkakaaviossa alleviivattuina public class Jonotuskone { private static int yhteinenjuoksevanumero = 0; private int käyttökertoja; public

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä:

Lisätiedot

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN SISÄLLYS 3. Luokkakaavio UML -mallinnuskielessä 3.1 Luokkakaavion luokan rakenteet 3.2 Luokan kuvauksesta C++ ohjelmakoodiksi 3.3 Luokkakaavion luokkien yhteystyypit

Lisätiedot

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram) 4 Luokkamalli Rakenteet mittojen mukaan. Mitat rakenteen mukaan. Tämän osan sisältö Luokkakaavio luokkakaavion elementti attribuutit operaatiot määreet Olioiden väliset suhteet kytkös kooste yleistys rajapinta

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia

Lisätiedot

UML - unified modeling language

UML - unified modeling language UML - unified modeling language Lähtökohtana: Booch, Rumbaugh, Jacobsson Tavoitteena Unified Method - syntyykö? Kehittäjänä: Rational Inc. Standardointi: Object Management Group (OMG) - vaiheessa Lähteet:

Lisätiedot

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

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus Luokkakaavion tarkoitus Järjestelmän tietosisällön kuvaaminen tiedot ja niiden väliset kytkennät järjestelmän tiedot kuvaavat kohdealueiden ilmiöitä, joten luokkakaavion tulisi määrittellä kohdealueen

Lisätiedot

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet. Tietosisällön kuvaaminen Toteutusvälineistä riippumaton tietosisällön kuvaus Entity-Relationship malliperhe Lähtökohta: Chenin malli vuodelta 1976 Useita muunnelmia, pieniä eroja peruskäsitteissä ja erityisesti

Lisätiedot

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1 Ohjelmistojen mallintaminen Luokkakaaviot 5.12.2008 Harri Laine 1 Olioiden palvelut Palvelun kuvauksessa annettavat tiedot näkyvyys (kuten attribuuttien kohdalla) nimi (ainoa välttämätön osa) parametrit

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

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

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2 8. Periytyminen 8.1 Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2 Mitä on periytyminen? Periytyminen (inheritance) tarkoittaa luokan piirteiden

Lisätiedot

UML Luokkakaavio 14:41

UML Luokkakaavio 14:41 UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,

Lisätiedot

Mitä on periytyminen?

Mitä on periytyminen? 8. Periytyminen 8.1 Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Filosofinen ja käytännönläheinen näkökulma periytymiseen. Periytymisen soveltaminen. 8.2 Mitä

Lisätiedot

Luokka- ja oliokaaviot

Luokka- ja oliokaaviot Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka

Lisätiedot

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Olioiden väliset yhteydet Yhteyden nimi Nimen lukusuunta pankkitili 0..10 Omistaja-> 1..3 asiakas

Lisätiedot

UML ja luokkien väliset suhteet

UML ja luokkien väliset suhteet UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Periytyminen (inheritance)

Periytyminen (inheritance) 1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa

Lisätiedot

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio: Sisällys 9. Unified Modeling Language (UML) Perustuu Kai Koskimiehen Oliokirjaan ja aikaisempaan luentomateriaaliin. Johdanto. Luokkakaavio: Luokkasymboli, attribuutit ja metodit. Suhteet: Assosiaatiot:

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (assosiation) YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1 Perussanasto Luettelo organisaation toiminnan kannalta keskeisistä käsitteistä ja niiden määritelmistä Voidaan esittää Koko organisaatiolle

Lisätiedot

Olioperustaisuus (object oriented)

Olioperustaisuus (object oriented) DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän

Lisätiedot

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented) DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän

Lisätiedot

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät Ohjelmistotekniikan menetelmät Luokat ja oliot Luokka- ja oliokaavio 7.11.2008 Harri Laine 1 Luokat ja oliot käyttötapaus Käyttötapaus käyttää järjestelmän palveluja käyttää Käytettävät palvelut saadaan

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Johdatus sovellussuunnitteluun, s2000, osa4 Helsingin yliopisto;/tktl. Harri Laine 1. Luokka- ja oliokaaviot. Luokka- ja oliokaaviot

Johdatus sovellussuunnitteluun, s2000, osa4 Helsingin yliopisto;/tktl. Harri Laine 1. Luokka- ja oliokaaviot. Luokka- ja oliokaaviot 6..2000 Luokka- ja oliokaaviot Luokka- ja oliokaavioilla kuvataan ohjelmiston / järjestelmän koostuminen olioista, olioiden tietämys, niiden tarjoamat palvelut sekä olioiden väliset yhteydet Olio tiedon

Lisätiedot

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

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet ..999 DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili asiakas 0..0 Omistaja->..3

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät Ohjelmistotekniikan menetelmät Luokat ja oliot Luokka- ja oliokaavio 7.11.2008 Harri Laine 1 Luokat ja oliot käyttötapaus Käyttötapaus käyttää järjestelmän palveluja käyttää Käytettävät palvelut saadaan

Lisätiedot

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

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili 0..0 Omistaja->..3 asiakas

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

2. Olio-ohjelmoinnin perusteita 2.1

2. Olio-ohjelmoinnin perusteita 2.1 2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. 2.2 Luokat ja oliot Olio-ohjelmoinnin keskeisimpiä

Lisätiedot

Kertaus: yleistys-erikoistus ja perintä

Kertaus: yleistys-erikoistus ja perintä Kertaus: yleistys-erikoistus ja perintä Nauta, Lehmä ja Kuttu ovat Kotieläimiä, Kotieläimet Eläimiä Kotieläimillä (siis myös Naudoilla, Lehmillä ja Kutuilla) on Omistaja Kuttu ja Lehmä toteuttavat rajapinnan

Lisätiedot

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Ohjelmistojen mallintaminen. Luento 7, 23.11.

Ohjelmistojen mallintaminen. Luento 7, 23.11. Ohjelmistojen mallintaminen Luento 7, 23.11. Kertaus: olioiden yhteistyön kuvaaminen Luokkakaavion avulla voidaan kuvata ohjelman rakenne Minkälaisista luokista ohjelma koostuu ja miten luokat liittyvät

Lisätiedot

Luokka (class) esitetään suorakulmion avulla, jonka sisälle kirjoitetaan luokan nimi (vahvennettuna).

Luokka (class) esitetään suorakulmion avulla, jonka sisälle kirjoitetaan luokan nimi (vahvennettuna). Luokkakaavio (Class diagram) Oliokaavio (Object diagram) Luokka (class) esitetään suorakulmion avulla, jonka sisälle kirjoitetaan luokan nimi (vahvennettuna). Ikkuna Olio (object) on luokan ilmentymä (instance).

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

2. Olio-ohjelmoinnin perusteita 2.1

2. Olio-ohjelmoinnin perusteita 2.1 2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Esitellään peruskäsitteitä yleisellä tasolla: Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. Olioperustainen

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin laatiminen

Ohjelmistojen mallintaminen luokkamallin laatiminen 582104 Ohjelmistojen mallintaminen luokkamallin laatiminen 1 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue on

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

Johdatus sovellussuunnitteluun, s2001, osa 4a Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokka- ja oliokaaviot

Johdatus sovellussuunnitteluun, s2001, osa 4a Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokka- ja oliokaaviot Luokka- ja oliokaaviot Luokka- ja oliokaavioilla kuvataan ohjelmiston / järjestelmän koostuminen olioista, olioiden tietämys, niiden tarjoamat palvelut sekä olioiden väliset yhteydet Olio tiedon ja sen

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Ohjelmistojen mallintaminen. Luento 4, 22.11.

Ohjelmistojen mallintaminen. Luento 4, 22.11. Ohjelmistojen mallintaminen Luento 4, 22.11. Kertaus: olioiden yhteistyön kuvaaminen Luokkakaavion avulla voidaan kuvata ohjelman rakenne Minkälaisista luokista ohjelma koostuu ja miten luokat liittyvät

Lisätiedot

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen Unified Modeling Language (UML) 582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance) Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /

Lisätiedot

Nimi: Henkilötunnus: {id} {+id}

Nimi: Henkilötunnus: {id} {+id} TEHTÄVÄ : Eräillä kursseilla on kertauskysymyksiä, joihin opiskelijat vastaavat webin kautta. Kurssilla voi olla useita kysymyssarjoja, joihin voi kuulua monta kysymystä. Kysymyssarjalla on kurssikohtainen

Lisätiedot

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi

Lisätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

Ohjelmistojen mallintaminen, kertausta

Ohjelmistojen mallintaminen, kertausta 582104 Ohjelmistojen mallintaminen, kertausta 1 Kertausluennon asiat Kysymyksiä? Kurssin keskeisin asiasisältö Koetehtävät tehtävätyypit esimerkkitehtäviä ja -ratkaisuja ja vielä kysymyksiä? 2 Kysymyksiä

Lisätiedot

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen kertausta Harri Laine 1 kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin laatiminen

Ohjelmistojen mallintaminen luokkamallin laatiminen 582104 Ohjelmistojen mallintaminen luokkamallin laatiminen 1 Oliot ja luokat Ohjelmistokehitys perustuu usein oletukseen: Minkä tahansa järjestelmän katsotaan voivan muodostua olioista, jotka yhteistyössä

Lisätiedot

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia. 4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

3. Käsiteanalyysi ja käsitekaavio

3. Käsiteanalyysi ja käsitekaavio 3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien

Lisätiedot

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011 Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011 Yleistä olioista ja OOP:sta OOP, eng. Object Oriented Programming C#:ssa oliot luodaan käyttämällä (olio)luokkia Olio tarkoittaa yksinkertaisesti ohjelman

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

1. Tarkastellaan seuraavaa kaaviota

1. Tarkastellaan seuraavaa kaaviota HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS JOHDATUS SOVELLUSSUUNNITTELUUN (JSS) 19.12.2001 (H.Laine) 1. Tarkastellaan seuraavaa kaaviota Mitkä seuraavista väitteistä ovat kaavion mukaisia t.s.

Lisätiedot

UML- mallinnus: Tilakaavio

UML- mallinnus: Tilakaavio UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista

Lisätiedot

Yhteistoimintakaavio (Esimerkki)

Yhteistoimintakaavio (Esimerkki) Yhteistoimintakaavio (Esimerkki) Käyttötapaus: Vuokraa ajoneuvo Yleiskuvaus: Käyttäjä vuokraa ajoneuvon määräajaksi. Esiehdot: Käyttäjä on hakenut vuokrausaikana vapaat ajoneuvot näytölle. Aktori: Asiakas

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Polku luokkakaavioista taulujen toteutukseen kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003,

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN MÄÄRITTELY KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Ohjelmistotekniikan menetelmät, koe 2.5.2014

Ohjelmistotekniikan menetelmät, koe 2.5.2014 Ohjelmistotekniikan menetelmät, koe 2.5.2014 Vastaa tehtävään 3 erilliselle konseptille. Tehtävät 1 ja 2 saavat olla samalla konseptilla. Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

19. Unified Modeling Language (UML)

19. Unified Modeling Language (UML) 19. Unified Modeling Language (UML) Perustuu Kai Koskimiehen Oliokirjaan ja aikaisempaan luentomateriaaliin. 19.1 Sisällys Johdanto. Luokkakaavio: Luokkasymboli, attribuutit ja metodit. Suhteet: Assosiaatiot:

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

12. Monimuotoisuus 12.1

12. Monimuotoisuus 12.1 12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Myöhäinen ja aikainen sidonta. Parametrinvälitys

Lisätiedot