Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Koko: px
Aloita esitys sivulta:

Download "Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä"

Transkriptio

1 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1

2 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia Yhteysluokkien mallintaminen Mallinnuselementtien erikoistaminen 2

3 Kooste (aggregation) Erikoistapaus, jossa yhteyden osapuolta voidaan pitää osana toista osapuolta Esitetään yhteysviivan kokonaisuuden puoleisen pään avoimella salmiakkisymbolilla Selventää olioiden välistä semanttista suhdetta ei välttämättä vaikutusta navigointimahdollisuuksiin yleensä kuitenkin kokonaisuudesta on pääsy sen osiin Joukkue * jäsen Pelaaja 3

4 Kompositio (composition) Koostetta merkittävämpi erikoistapaus, jossa osan olemassaolo kytketty kokonaisuuteen: kun kokonaisuus poistetaan, häviävät myös osat (vrt. kooste) osa(-olio) voi sisältyä vain yhteen kompositio(- olioon) osa ei voi vaihtaa kompositiotaan kokonaisuus vastuussa osien luonnista ja poistamisesta (yksityiskohdat riippuvat yhteyden toteutuksesta) Merkitään suljetulla salmiakkisymbolilla Rakennus osoite 1..* koodi Huone 4

5 Kompositiosta Kompositio on UML:ssä ainoa tapa ilmaista olemassaoloriippuvuus mallintamisessa tärkeä asia (tärkeämpi kuin osan ja kokonaisuuden yhteys) jos olemassaoloriippuvuus pitää kyetä esittämään, on syytä käyttää kompositiota, vaikka osa-kokonaisuus -yhteys ei aivan selvältä näyttäisikään Kompositiota käytetään myös usein hyväksi olioiden identifioinnissa esim. Exactum-rakennuksen huone C227 5

6 Muita luokkien välisiä suhteita Edellä on tarkasteltu sellaisia luokkakaavioissa esiintyviä suhteita, jotka ilmenevät olioiden välisinä yhteyksinä Lisäksi UML:ssä voidaan esittää luokkien välisiä riippuvuuksia (dependency) luokkahierarkia (class hierarchy, inheritance hierarchy) 6

7 Riippuvuus (dependency) Ilmaisee luokan muuttamisen mahdollista vaikutusta toiseen luokkaan Kuvataan katkoviivalla nuolenkärki osoittaa siihen luokkaan, josta viivan toisessa päässä oleva on riippuva riippuvuuden luonne ilmaistaan yleensä stereotyypillä Esim. luontiriippuvuus 7

8 Luokkahierarkia Luokkahierarkiassa (class hierarchy, inheritance hierarchy) luokka voidaan määritellä toisen luokan aliluokaksi (subclass) Esimerkiksi: luokka Johtaja on luokan Henkilö aliluokka luokat Auto, Laiva ja Lentokone ovat luokan Kulkuväline aliluokkia 8

9 Ilmentymät ja luokkahierarkia Jos luokka A on luokan B aliluokka (ja B vastaavasti A:n yliluokka), niin jokainen A:n ilmentymä on myös B:n ilmentymä esim. jokainen Johtaja on myös Henkilö Tästä seuraa, että kaikki ominaisuudet, jotka on määritelty luokan B ilmentymille, liittyvät myös A:n ilmentymiin esim. jos Henkilölle on määritelty attribuutti nimi, niin myös Johtajalla on automaattisesti nimiattribuutti esim. jos Henkilö on määritelty osapuoleksi työsuhde-yhteyteen, myös Johtajalla on työsuhdeyhteys 9

10 Periytyminen Em. ilmiötä kutsutaan periytymiseksi (inheritance) yliluokkaan (super class, base class) liitetyt attribuutit, operaatiot ja yhteydet periytyvät aliluokalle aliluokkaan voidaan liittää lisäksi omia ominaisuuksia Periytyminen on luokkien välistä määrittelyrakenteiden periytymistä, joten ilmentymät eivät peri attribuuttien arvoja toisiltaan moniarvoisuusmäärettä ei voi merkitä periytymissuhteeseen, sillä moniarvoisuus täsmentää ilmentymien välistä yhteyttä 10

11 Luokkahierarkia eli yleistyssuhteet (generalization) Viiva, jossa yliluokan päässä avoin kolmio Esimerkiksi: johtajalla on vastuualue, jota ei ole henkilöillä yleisesti vain johtajalla voi olla oikeus käyttää edustustiliä johtajalla voi olla alaisia esimies 0..1 Johtaja alainen 0..* Henkilö vastuualue 0..* käyttöoikeus 0..1 Edustustili 11

12 Luokkahierarkia mallinnuksessa Järjestelmää korkealla tasolla mallinnettaessa luokkahierarkiasta on eniten hyötyä rakenteellisten sääntöjen ilmaisemisessa esim. jokin on joko A tai B kuvauksen ekonomisuudessa ei tarvitse toistaa samoja asioita useassa luokassa tarvittaessa voidaan esittää vain hierarkian juuriluokka 12

13 Esimerkki rakenteellisesta säännöstä Autolla on tasan yksi omistaja, joka voi olla joko yritys tai henkilö Auto Auto * yritysomistus * henkilöomistus * Yritys Henkilö Omistaja Voiko autolla olla - sekä yritys- että henkilöomistaja? - nolla omistajaa? Yritys Henkilö 13

14 Luokkahierarkian kattavuus Aliluokkia voidaan muodostaa monin eri perustein Luokittelut voivat olla kattavia (complete) tai ei-kattavia (incomplete) poissulkevia (disjoint) tai osittain päällekkäisiä (overlapping) Henkilö Henkilö {complete, disjoint} Nainen Johtaja Nainen Mies Erillisin perustein muodostettuja osin päällekkäisiä aliluokkia Yhteen luokitteluperusteeseen perustuva kattava ja poissulkeva luokittelu 14

15 Luokittelu mallinnuksessa ja ohjelmoinnissa Kun reaalimaailmassa luokitellaan ilmiöitä, voidaan käyttää samanaikaisesti useita erilaisia luokitteluperusteita esim. sukupuoli, virka-asema, auton omistus, Monissa oliomenetelmissä ja oliokielissä ollaan kuitenkin paljon rajoittuneempia, mikä voi pakottaa kömpelöihin mallinnusratkaisuihin Tyypillisesti esim. ohjelmointikielissä olio ei voi olla usean luokan välitön ilmentymä 15

16 Luokittelu mallinnuksessa ja ohjelmoinnissa Henkilö Henkilö Nainen Johtaja Nainen Johtaja «instanceof» «instanceof» Naisjohtaja liisa Reaalimaailmassa olio voi olla usean luokan välitön ilmentymä liisa «instanceof» Oliokielissä tarvitaan usein esim. keinotekoinen kokoava yliluokka, koska olio ei voi olla usean luokan välitön ilmentymä 16

17 Moniperiytyminen (multiple inheritance) Tarkoittaa tilannetta, jossa luokka on useamman kuin yhden luokan välitön aliluokka Johtaja Sotilas Erityisesti toteutuksen moniperiytyminen voi aiheuttaa monikäsitteisyysongelmia esim. kaksi signatuuriltaan samaa operaatiota kaikki olio-ohjelmointikielet eivät tarjoa (toteutuksen eli lauseiden ja lausekkeiden) moniperiytymistä Kenraali esim. Javassa ei ole, C++:ssa on 17

18 Yhteyden tietojen mallintaminen Yhteyteen voi joskus liittyä myös tietoa Esim. tilanne missä henkilö voi olla (usean) yhtiön osakkeenomistaja Osakkeenomistuksen kannalta tärkeä asia on omistettujen osakkeiden määrä Yksi tapa mallintaa tilanne on käyttää yhteysluokkaa (engl. Association class), eli yhteyteen liittyvää luokkaa, joka sisältää esim. yhteyteen liittyviä tietoja 18

19 Toinen yhteysluokkaesimerkki Luentomonisteessa mallinnetaan tilanne, jossa henkilö voi olla jäsenenä useassa yhdistyksessä yhdistyksessä on vähintään 1 jäsen Jäsenyys kuvataan yhteytenä, johon liittyy yhteysluokka jäsenyyden alkaminen (liittymisaika) sekä jäsenyyden tyyppi (rooli, eli onko rivijäsen, puheenjohtaja tms...) kuvataan yhteysluokan avulla 19

20 Kannattaako yhteysluokkia käyttää? Kannattaako yhteysluokkia käyttää? Korkean tason abstrakteissa malleissa ehkä Suunnittelutason malleissa todennäköisesti ei, sillä ei ole selvää, mitä yhteysluokka tarkoittaa toteutuksen tasolla Yhteysluokan voi aina muuttaa tavalliseksi luokaksi Yhteysluokka joudutaankin käytännössä aina ohjelmoidessa toteuttamaan omana luokkanaan, joka yhdistää alkuperäiset luokat joiden välillä yhteys on Tämän takia yhteysluokkia ei välttämättä kannata käyttää alunperinkään 20

21 Yhteysluokasta normaaliluokaksi Edellinen osake-esimerkki: Esitellään väliluokka Purchase, johon mallinnetaan yhteyden tiedot 21

22 Kaksio olioa ja yhteyksien lukumäärä Henkilöllä voi olla travels on -yhteyksiä useiden lentoyhtiöiden kanssa Yhteysluokkana Ticket on kerrottu matkan tiedot Henkilö voi olla travels on -yhteydessä moniin eri lentoyhtiöolioihin Saman lentoyhtiöolion (esim. Finnair) kanssa ei kuitenkaan voi olla useampaa yhteyttä! 22

23 Siis: jos luokkakaaviossa kahden luokan välillä on yhteys, voi kaksi luokkien olioa olla vain yhdessä yhteydessä kerrallaan Esim. olioiden Arto:Person ja Finnair:Airline välillä voi olla vain yksi yhteys, eli Arto voi lentää Finnairilla vain kerran Tämä siitä huolimatta, että kytkentärajoitus on * Artolla voi olla useita lippuja, mutta jokainen täytyy olla eri lentoyhtiöltä! Järkevin ratkaisu ongelmaan on kuvata yhteys omana luokkanaan Henkilöllä voi olla useita lippuja Lippu liittyy tiettyyn lentoyhtiöön ja tiettyyn henkilöön Lentoyhtiön liittyy useita myytyjä lippuja 23

24 UML:n erikoistaminen Olemme jo ainakin kerran törmänneet kaavioissa merkkien << ja >> sisään kirjoitettuun tekstiin Alla tilanne, jossa AutotonHenkilo- ja Auto-luokkien välisen riippuvuuden (katkoviiva) luonne on tarkennettu Kyseessä on UML:n peruskäsitteen riippuvuus laajennus erikoiskäsitteeksi, eli riippuvuudeksi joka johtuu siitä, että kohteena olevan luokan olioa käytetään parametrina Laajennus ilmaistaan stereotyyppinä, jolla tarkoitetaan tietyn lisämerkityksen antamista halutulle symbolille Stereotyyppi merkitään kaavioon << ja >> välissä olevana kuvaavana sanana 24

25 UML:n erikoistaminen Stereotyyppi voi liittyä oikeastaan mihin tahansa UML-symboliin tai symbolin osaan Esim. stereotyyppi voi tarkentaa luokan roolia: Luokka on joko entity eli tietosisältöluokka tai control eli toiminnanohjausluokka 25

26 UML:n erikoistaminen UML:ssä on joukko valmiiksi määriteltyjä stereotyyppejä (kuten create) Stereotyyppejä voi määritellä halutessaan myös itse Stereotyypin voikin ajatella kommentin tapaiseksi lisäselitykseksi, jolla on hyvin määritelty merkitys omissa kaavioissa Eli jos tarvetta, kannattaa tarkentaa, mitä määritellyllä stereotyypillä tarkoitetaan Erikoistetuille käsitteille voidaan myös määritellä oma graafinen symboli Oikeastaan käyttötapauskaavion tikku-ukko on UMLstandardin itse määrittelemä graafinen laajennussymbooli 26

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

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

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

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

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

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

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

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

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

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

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

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

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. 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

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

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

Ohjelmistojen mallintaminen. Luento 6, 19.11.

Ohjelmistojen mallintaminen. Luento 6, 19.11. Ohjelmistojen mallintaminen Luento 6, 19.11. Kertaus: käsiteanalyysi eli menetelmä luokkamallin muodostamiseen 1. Etsi luokkaehdokkaat tekstikuvauksista (substantiivit) 2. Karsi luokkaehdokkaita (mm. yhdistä

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

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

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

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

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen 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

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

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

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

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

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

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2010 582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kesä 2008 582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

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

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

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

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

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2009 582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

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

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

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistotekniikan menetelmät, kevät 2008 582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

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

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

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

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

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

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

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

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

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

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

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. Luento 4, 12.11.

Ohjelmistojen mallintaminen. Luento 4, 12.11. Ohjelmistojen mallintaminen Luento 4, 12.11. Kertausta: Olioperustainen ohjelmistokehitys Lähdemme siis oletuksesta, että kehitettävän järjestelmän voidaan ajatella koostuvan oliosta Tehdään koko ohjelmistokehitys

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

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

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

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

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

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

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

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 582101 - Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 1 Vaatimukset ja käyttötapaukset Vaiheittainen mallintaminen ja abstraktiotasot Järjestelmän rajaaminen sidosryhmäkaaviolla

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

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen

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

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35 CS-A1150 Tietokannat 5.3.2019 CS-A1150 Tietokannat 5.3.2019 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin UML-kaavion avulla. Tunnet esimerkiksi seuraavat UML-mallinnuksen

Lisätiedot

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi. 17. Kooste 17.1 Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa A on B:n osa tai A kuuluu B:hen. Koostesuhteessa olevat luokat eivät yleensä ole periytymissuhteessa. Kooste

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

TIE-20200 Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

TIE-20200 Ohjelmistojen suunnittelu. Luento 8..9: moniperintä TIE-20200 Ohjelmistojen suunnittelu Luento 8..9: moniperintä 1 Ajankohtaista Harjoitustyön suunnittelusessiot pidetty, työt jatkuvat, välivaiheen esittely seuraavana Viimeinen viikkoharjoituskerta, palataan

Lisätiedot

Kertausta: Olioperustainen ohjelmistokehitys

Kertausta: Olioperustainen ohjelmistokehitys Kertausta: Olioperustainen ohjelmistokehitys Lähdemme siis oletuksesta, että kehitettävän järjestelmän voidaan ajatella koostuvan oliosta Tehdään koko ohjelmistokehitys olioperustaisesti, eli vaiheittain

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

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

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen Lassi Lehto INSPIRE-seminaari 23.08.2012 Sisältö Tietotuoteselosteen rakenne (ISO 19131) Unified Modeling Language (UML) Luokkakaaviotekniikan perusteet

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin 812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta

Lisätiedot

Olio-ohjelmointi Johdanto olio-ohjelmointiin

Olio-ohjelmointi Johdanto olio-ohjelmointiin Olio-ohjelmointi Johdanto olio-ohjelmointiin Ohjelmistoa kehitettäessä voidaan tunnistaa ainakin kaksi abstraktiota: prosessiabstraktio ja dataabstraktio. Prosessiabstraktio huomattiin jo varhain, koska

Lisätiedot

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus Versio: 12.01.2011 Julkaistu: Voimassaoloaika: toistaiseksi Sisällys 1 Johdanto... 1 2 Yleistä... 1 3 Lyhenteet... 1 4 UML-luokkakaaviotekniikan

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

Olioiden yhteistyön mallintaminen

Olioiden yhteistyön mallintaminen Olioiden yhteistyön mallintaminen Luokkakaaviosta käy hyvin esille ohjelman rakenne minkälaisia luokkia on olemassa miten luokat liittyvät toisiinsa Entä ohjelman toiminta? Luokkakaaviossa voi olla metodien

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IV Periytyminen ja monimuotoisuus

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IV Periytyminen ja monimuotoisuus 812347A Olio-ohjelmointi, 2015 syksy 2. vsk IV Periytyminen ja monimuotoisuus Sisältö 1. Periytyminen 2. Johdanto monimuotoisuuteen 3. Ylikuormittaminen 4. Uudelleenmäärittely 5. Muuttujien monimuotoisuus

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

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

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

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

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

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

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

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 7 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 02.10.2017 1/10/17 Helsinki Metropolia University of Applied Sciences 1 Tietokannan

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

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia Tehtävä 1 Tehtävässä 1 mallinnettiin Monopolipeliä. Alla olevassa esimerkissä peliin liittyy aina 2 noppaa, peliä pelataan pelilaudalla,

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

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Ohjelmistojen mallintaminen. Luento 3, 9.11. Ohjelmistojen mallintaminen Luento 3, 9.11. Kertausta: Ohjelmistotuotantoprosessin vaiheet Vaatimusanalyysi- ja määrittely Mitä halutaan? Suunnittelu Miten tehdään? Toteutus Ohjelmointi Testaus Varmistetaan

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse

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

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

Lisätiedot

Ohjelmistojen mallintaminen. Luento 2, 8.11.

Ohjelmistojen mallintaminen. Luento 2, 8.11. Ohjelmistojen mallintaminen Luento 2, 8.11. Kertausta: Ohjelmistotuotantoprosessin vaiheet Vaatimusanalyysi- ja määrittely Mitä halutaan? Suunnittelu Miten tehdään? Toteutus Ohjelmointi Testaus Varmistetaan

Lisätiedot

Ohjelmistojen mallintaminen. Luento 8, 26.11.

Ohjelmistojen mallintaminen. Luento 8, 26.11. Ohjelmistojen mallintaminen Luento 8, 26.11. 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)

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen jatkokurssi Teoria ja ohjelmointitehtävät Java-kielen jatkokurssi 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 8 JAVA-KIELEN JATKOKURSSI... 8 OPISKELUN

Lisätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

2. Olio-ohjelmoinista lyhyesti 2.1 2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin

Lisätiedot

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Moniperintä 2 Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Oliomallinnus TITE.2040 Hannu K. Niinimäki 1 Delegointi 1 Moniperinnän toteuttaminen

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 V Abstraktit tietotyypit ja olioohjelmointi Sisältö I. Abstraktit tietotyypit II. 1. Johdatus abstrakteihin tietotyyppeihin 2. Abstraktit tietotyypit Adassa

Lisätiedot

5. Järjestelmämallit. Mallinnus

5. Järjestelmämallit. Mallinnus 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

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