Sisällys. Luokkakaaviot 2

Koko: px
Aloita esitys sivulta:

Download "Sisällys. Luokkakaaviot 2"

Transkriptio

1 Luokkakaaviot Luokkakaaviot ovat keskeinen väline etsittäessä järjestelmän kannalta keskeisiä käsitteitä ja niiden välisiä riippuvuuksia. Perinteisesti tässä on käytetty erilaisia käitekaaviotekniikoita. Oliosuuntautuneen lähestymistavan myötä käyttöön ovat tulleet erilaiset luokkakaaviokuvaukset, jotka korostavat tietorakenteen ja tietoja käsittelevien operaatioiden yhteenkuuluvuutta. Käsittely kattaa luokkakaavioiden yleisperiaatteet ja olioteknisten piirteiden (periytymis- ja koostemekanismit) käytön kuvauksissa, sekä kaavioiden ilmaisuvoimaa ja täsmällisyyttä koskevaa pohdintaa. UML:n mukaisen luokkakaaviokuvauksen rinnalle esitellään myös käsitekaavioiden kuvaustekniikoina sekä Chenin että Martinin käsitekaaviot. Exit

2 Sisällys Luokkakaaviot UML luokkakaaviot: notaatio Luokkakaavioiden rooli kehitystyössä Luokat, yhteydet, attribuutit, metodit Luokkakaavion komponentit Oliot ja linkit Luokka, olio Luokkien etsintä Attribuutit Lukumääräsuhteet Luokkakaavio ja tietokantarakenne Rakenneominaisuudet Yleistys, erikoistaminen,periytyminen Fyysinen ilmentymä vs. looginen rakenne Periytyminen Koostuminen/komponentti(us) Periytyminen ja koostuminen Muodoste Rajapintojen kuvaaminen Rajapinta, toteutussuhte Stereotyypit ja ikoonit Rajapinnat, ikonit: esimerkki Pakkaukset Kaavioiden ilmaisuvoima Kaavioiden laatiminen Kaavioiden muokkaaminen Muita notaatioita Esimerkki: kirjasto Esimerkki: maalausrobotti Kertauskysymykset Luokkakaaviot 2

3 Luokkakaaviot luokkakaaviot: järjestelmän keskeiset käsitteet ja niiden keskinäiset suhteet oliopohjaisen mallinnuksen väline; luokka on yleistys samanlaisista olioista luokkaan kuuluvalla oliolla on tila (attribuuttien arvot), jota sen metodit muuttavat perustana käsitekaaviot (tietokantasuunnittelu) relaatiotietokantojen suunnittelun perusta kaavion jalostaminen (normalisoiduksi) tietokantakuvaukseksi tässä yhteydessä UML:n luokkakaavio Chenin ja Martinin käsitekaavionotaatiot OMT, Booch rakenne luokkakaavio: muutokset tilaan luokan sisältä palvelukutsun toteutuksen seurauksena käsitekaavio: käsittely ja tietorakenne rakentuvat yleensä erillään Seuraavat Seuraavat kalvot: kalvot: UML-luokkakaavioiden UML-luokkakaavioiden notaatio. notaatio. Aiheen yksityiskohtainen Aiheen yksityiskohtainen esittely esittely alkaa alkaa niiden niiden jälkeen jälkeen Luokkakaaviot 3

4 UML luokkakaaviot: notaatio Geneerisen luokan ilmentymä: Window<Xwindow> Attribuuttilista (valinn.) Operaatiolista (valinn.) + = public - = private # = protected = unknown Window {abstract, author = KK status = tested} +size #visibility: Boolean = false -xptr: WinType WinType +display() hide() +create() -attachxwindow(xwin: WinType*) Geneerinen parametri Malliparametriluettelo (valinn.) Luokkaoperaatio (staattinen) (attribuutti ja operaatio voidaan antaa pelkällä nimelläkin) Lähde: K.Koskimies (2000) Luokkakaaviot 4

5 UML luokkakaaviot: notaatio Riippuvuus (esim. kutsu) Parser Scanner Assosiaatio Person owns Car Yleistys Car Vehicle Toteutus Car <<interface>> Vehicle Aito kooste ( ei olemassa ilman ) Ministeri 15..* Valtioneuvosto Kooste Workstation 1..* Network Lähde: K.Koskimies (2000) Luokkakaaviot 5

6 UML luokkakaaviot: notaatio Vaihteleva määrä ilmentymiä alaraja yläraja C1 n1..n2 C2 ** = ei eiylärajaa ** = 0..* 0..* Kiinteä määrä ilmentymiä C1 5 C2 Lähde: K.Koskimies (2000) Luokkakaaviot 6

7 esimerkki UML luokkakaaviot: esimerkki Car 4 Wheel UserGroup * belongs * User Kurssi * 1..* Opettaja Lähde: K.Koskimies (2000) Luokkakaaviot 7

8 esimerkki UML luokkakaaviot: esimerkki Oliokaavio Oliokaavio :Instructor :Course :Instructor :Course :Course :Instructor :Instructor :Course Luokkakaavio Luokkakaavio Instructor * * Course Lähde: K.Koskimies (2000) Luokkakaaviot 8

9 esimerkki UML luokkakaaviot: esimerkki University name: Name address: String phone: Number 1..* Department name: Name addcourse() removecourse() 1..* * Course name: Name id: Number adddepartments() adddepartment() removedepartment() getdepartment() getalldepartments() LabCourse LectureCourse labid: Number roomreqs: Number Lähde: K.Koskimies (2000) Luokkakaaviot 9

10 UML luokkakaaviot: notaatio Navigaatio Person has AccessRight Kvalifiointi Bank accountnr * Client Rooli Yritys työnantaja työntekijä :IWorker Henkilö Lähde: K.Koskimies (2000) Luokkakaaviot 10

11 UML luokkakaaviot: notaatio Luokkien Luokkien rajoitteet rajoitteet Transaction value {value > 0} Transaction value constraints: {value > 0} Lähde: K.Koskimies (2000) Luokkakaaviot 11

12 UML luokkakaaviot: notaatio Assosiaatioiden Assosiaatioiden rajoitteet rajoitteet Person * member-of {subset} * Committee 1 chair-of * worker * 0..1 boss Person employee employer * 0..1 Company {Person.employer = Person.boss.employer} Lähde: K.Koskimies (2000) Luokkakaaviot 12

13 UML luokkakaaviot: notaatio Rajapinnat: Rajapinnat: Strategia Strategiasuunnittelumalli: Context contextinfo() <<interface>> Strategy algorithm() MethodA algorithm() MethodB algorithm() Lähde: K.Koskimies (2000) Luokkakaaviot 13

14 UML luokkakaaviot: notaatio Rajapinnat Rajapinnat (supistettu (supistettu muoto) muoto) Strategy Context contextinfo() MethodA algorithm() MethodB algorithm() Lähde: K.Koskimies (2000) Luokkakaaviot 14

15 UML luokkakaaviot: notaatio Aktiiviset Aktiiviset luokat luokat Paksumpi rajaviiva <<controller>> DeviceController currentconfiguration Mahdollinen stereotyyppi Signaalilohko (olio tunnistaa nämä signaalit) Signals deviceinterrupt userinterrupt seriousflaw Aktiivinen olio (aktiivisen luokan ilmentymä): olio, joka omistaa prosessin/säikeen, ja joka reagoi sille lähettetyihin signaaleihin. Käyttäytyminen kuvataan usein tilakaaviolla Lähde: K.Koskimies (2000) Luokkakaaviot 15

16 Luokkakaavioiden rooli kehitystyössä luokkakaavioilla (käsite-) on keskeinen rooli kehitystyössä hahmottelu tietosisällön määrittely: lähtee liikkeelle todellisten tilanteiden tarkastelulla (oliot, todelliset olioiden väliset tilanteet) -> esimerkit (kuvataan oliokaavioina) tietojen kuvaus: oliokaavioita laadittaessa hahmotetaan niitä kuvaavat attribuutit ja niiden rakenne (tietohakemistokuvaus tukee ja kokoaa) oliokaavioista yleistetään luokkakaavio (yhteiset ominaisuudet ja yhteyksien lukumääräsuhde) toiminnallisuuden kuvaus:» lähtee käyttötapauksista, joita kuvataan olioiden välisenä vuorovaikutuksena (tapahtumasekvenssit) -> esimerkkitilanteet» vuorovaikutukseen liityvien olioiden sisäinen käyttäytyminen kuvataan toimintokuvauksina (tilakaavioina); esim. tsk:n olioiden toiminnallisuus Luokkakaaviot 16

17 Esimerkeistä yleistykseksi Esimerkki oliokaavio Lopullinen kuvaus luokkakaavio tapahtumas.kaavio (nuolet) tapahtumas.kaavio (oliot) operaatiokuvaukset (luonnollinen kieli) jne. vuorovaikutuskuvaus toimintokuvaukset toimintokuvaukset jne. Luokkakaaviot 17

18 Kuvauskannan rakentuminen hlö1:asiakas tavara1:tilaus Asiakas hlö2:asiakas tavara2:tilaus tavara3:tilaus Tuotetilaus Käyttötapauskuvaus: Nimi: xxxxxxxx Suorittajat: xxxxxxxxxx.. Asiakas Tilaus Tuote 1 0..* 0..* 0..* hlö1: Asiakas hlö2:asiakas Operaatiokuvaukset Tietohakemisto: tilaus = tno + asno + tno =.. Tietokantakuvaus Toimintokuvaukset Kuvauskanta Luokkakaaviot 18

19 Luokat, yhteydet, attribuutit, metodit keskeisiä termejä luokat: järjestelmässä mallinnettavat kohteet yhteydet: kohteiden välinen riippuvuus» suuntamerkintä» lukumääräsuhteet attribuutit: luokan ominaisuudet (tila) metodit: attribuutteja muuttavat toiminnot lisäpiirteitä: merkkiarvot (tag), stereotyypit ilmentymät» luokka olio» yhteys - linkki Luokkakaaviot 19

20 Luokkakaavion komponentit (1) luokka merkkiarvo attribuutit asiakas {persistent} nimi osoite uusi tilaatuote() lukumääräsuhde 1 tekee 0..* tilaus {persistent} yhteys operaatiot Luokkakaaviot 20

21 Oliot ja linkit ahto simakuutio : asiakas tilaus 1 : tilaus tilaus 2 : tilaus Oliokaaviot Oliokaaviot teemu teekkari : asiakas tilaus 3 : tilaus outi opiskelija : asiakas asiakas 0..* tilaus Luokkakaavio Luokkakaavio saadaan saadaan yleistämällä yleistämällä oliokaavion oliokaavion mukaisia mukaisia tilanteita tilanteita Luokkakaaviot 21

22 Luokka,, olio luokka edustaa kuvauksessa koko luokkaa [opiskelija, opettaja, tentti, suoritus, kurssi, opintojakso] samoja ominaisuuksia omaavien olioiden luokka sovelluksen kannalta merkityksellinen voi sisältää ominaisuuksia kuvaavia attribuutteja ja toimintoja kuvaavia metodeja» esimerkiksi: asiakas, tuote (konkreettisia reaalimaailman olioita); aikataulu, suunnitelma (abstrakteja reaalimaailman olioita) olio (luokan ilmentymä) on yksittäinen luokan edustaja konkreettinen luokkaan kuuluva olio» esimerkiksi: asiakas - Jaakkola Hannu Luokkakaaviot 22

23 Luokkakaavion komponentit (2) Assosiaatioluokka Opiskelija nimi op.nro osoite ilmoittaudu( ) 0..* suoritus arvosana ov-määrä pvm osallistuu 1..* 0..* suorittaa kurssi kurssitunnus periodit lukukausi 1 kuuluu 0..* 0..* tentti 0..* 1 opintojakso kuvaus opettaja nimi osoite henkilönro Luokkakaaviot * <kuvaa luennoi riippuvuusviiva (ei lukumääräsuhdetta!) 0..1 Huom! Huom! kuusi kuusi luokkaa, luokkaa, suhteellisen suhteellisen suuri suuri tietojärjestelmä tietojärjestelmä Järjestelmän Järjestelmän tarkoitus tarkoitus ja ja tavoitteet: tavoitteet: KURREK-järjestelmä KURREK-järjestelmä sisältää sisältää kuvaukset kuvaukset TTKK:n TTKK:n opintojaksoista, opintojaksoista, opettajista opettajista ja ja opintosuorituksista. opintosuorituksista. Järjestelmä Järjestelmä tuottaa tuottaa kurssien kurssien osallistujalistoja, osallistujalistoja, tenttien tenttien tuloslistoja tuloslistoja ja ja opintosuoritusrekisteriotteita. opintosuoritusrekisteriotteita. Opettajat Opettajat kirjaavat kirjaavat järjestelmän järjestelmän avulla avulla opintosuorituksen opintosuorituksen rekisteriin. rekisteriin. Opiskelijat Opiskelijat ilmoittautuvat ilmoittautuvat järjestelmän järjestelmän avulla avulla kursseille kursseille ja ja voivat voivat tutkia tutkia omia omia suoritustietojaan. suoritustietojaan.

24 Luokkakaavion komponentit (3) yhteys edustaa luokkien välistä riippuvuutta [osallistuu, suorittaa, kuuluu, luennoi] yhteys on yleensä kaksisuuntainen; yksisuuntaisuus voidaan osoittaa suuntaa kuvaavalla nuolenkärjellä (kurssi - opiskelija) yhteyden kuvaukseen voi liittyä suunta (opintojakso-kurssi) yhteyteen voi liittyä tarkentava rooli (tarvittaessa molempiin päihin; ks. on esimies jäljempänä) yhteyteen voi liittyä lukumääräsuhde (ks. jäljempänä) yhteys voi olla myös useamman kuin kahden käsitteen välinen (ei ole suositeltavaa; kuvaus on purettavissa kahden välisiksi yhteyksiksi) myös muunlaisia yhteyksiä: kooste, riippuvuus, muodoste, erikoistaminen,... [tarkastellaan esimerkkien avulla jäljempänä] linkki on todellinen yhteys (ilmentymä) kahden olion välillä Luokkakaaviot 24

25 Luokkien etsintä järjestelmään sisältyvät luokat ja yhteydet löytyvät määrittelyn yhteydessä tarkasteltaessa järjestelmän toimintaa Hannu Jaakkola luennoi OTP-kurssin (opettaja) (yhteys) (kurssi) tässä: predikaatti kuvaa yhteyttä ja substantiivi luokkaa Luokkakaaviot 25

26 Attribuutit attribuutit: luokkaa kuvaavat ominaisuudet (arvot muodostavat luokan (olion) tilan) nimi, opiskelijanumero, osoite, puhelinnumero,. attribuuttien sijoittelu luokkiin ei ole selvää esim. opintoviikot (voi olla kurssi tai opintojakso) attribuutit eivät saa olla toistuvia attribuuttien sijoittelu luokkiin saattaa vaikuttaa myös kaavion rakenteeseen edellä tarvitaan assosiatiivinen luokka suoritus (attribuutit arvosana, suorituspäivä), koska sen attribuutteja ei ole mahdollista sijoittaa yhteyden luokkiin (assosiatiiviluokka)» attribuutit liittyvät tässä tapauksessa yhteyden olemassaoloon eli niitä ei ole (tai niillä ei ole arvoa) jos yhteyttä ei ole olemassa Luokkakaaviot 26

27 Lukumääräsuhteet yhteyden luonnetta kuvaavat lukumääräsuhteet 1-1 (yksi yhteen): jokaista oliota A vastaa vain yksi olio B ja päinvastoin 1-N (yksi moneen): jokaista oliota A vastaa monta oliota B ja oliota B vastaa täsmälleen 1 olio A N-M (monta moneen) jokaista oliota A vastaa monta oliota B ja päinvastoin lukumääräsuhteen lukumääräalue (kardinaliteetti) voi olla mm. 1 täsmälleen yksi 0..1 nolla tai yksi 1..* monta, vähintään 1 0..* monta, ei välttämättä yhtään... Luokkakaaviot 27

28 lukumääräsuhteet lukumääräsuhteet kaaviossa esitetään todellista tilannetta kuvaavat ala- ja ylärajat vaikuttaa tietokannan rakenteeseen!» huolehdittava siitä, että lukumääräsuhde on oikea» korjaaminen (etenkin monimutkaisempaan suuntaan) on tietokannan rakenteellisten ratkaisuiden kiinnittämisen jälkeen vaikeaa» suhde 1 suhteeksi N - mitä vaikuttaa tietokannan rakenteessa?) Luokkakaaviot 28

29 lukumääräsuhteet Lukumääräsuhteen vaikutus tietorakenteen toteutukseen aina yksi kurssi opettaja kurssi opettaja opettaja kurssi kurssi1 kurssi2 kurssi3 nolla tai yksi kurssia nolla... monta kurssia (lukumääräsuhteen vaikutus toteutukseen: tietorakenne ja käsittelytapa muuttuu) Luokkakaaviot 29

30 lukumääräsuhteet Opiskelija nimi op.nro osoite ilmoittaudu() 0..* kurssi osallistuu kurssitunnus periodit 1..* 0..* lukukausi suorittaa 1 kuuluu 0..* 0..* tentti 0..* 1 0..* <kuvaa opintojakso kuvaus luennoi opettaja 0..1 nimi osoite henkilönro suoritus arvosana ov-määrä pvm mitä edellinen kuvaus kertoo kuvausta vastaavasta reaalimaailmasta? kurssilla on vähintään yksi osallistuja opiskelija osallistuu nollaan tai useampaan kurssiin kurssi vastaa täsmälleen yhtä tiettyä opintojaksoa kaaviota voidaan testata sovittamalla siihen todellisia tapauksia Luokkakaaviot 30

31 Luokkakaavio ja tietokantarakenne käsitekaavionäkökulma luokkakaavio vastaa perinteistä käsitekaaviota» luokka ~ käsite käsitekaavio kuvaa relaatiotietokannan rakennetta (yhteyksien normalisoinnin jälkeen)» käsitteet (luokat) vastaavat tauluja» attribuutit vastaavat taulun sarakkeita» yhteydet vastaavat viiteavaimien avulla rakentuvia liityntöjä taulujen välillä» metodit vastaavat toimintokuvauksessa esiintyviä operaatioita automaattinen tietokantakuvauksen generointi käsitekaaviosta (luokkakaaviosta) Luokkakaaviot 31

32 Rakenneominaisuudet luokkakaaviot ovat kehittyneet osana oliotekniikoiden kypsymistä; oliopiirteitä ovat mm. yleistys / erikoistaminen koostuminen / komponenttius rajapintaoperaatiot» interface-rakenteet yleistys / erikoistaminen - periytymismekanismi luokat poikkeavat toisistaan vain muutaman attribuutin osalta» yhteiset piirteet isäluokan (yliluokan) tasolla» erikoistetut piirteet lapsiluokassa (aliluokassa)» ylimäärittely virtuaalimetodit: mahdollistaa suunnittelutason joustavat ratkaisut ja pakottaa toteutuksen noudattamaan sovittua rajapintaa kun luokkaa vastaava ilmentymä tietojärjestelmässä syntyy, se ei voi elinaikanaan muuttua toiseksi alityypiksi (ks. seuraava kuva) Luokkakaaviot 32

33 Yleistys, erikoistaminen, periytyminen yliluokka on abstrakti luokka, jota vastaavaa oliota ei tietojärjestelmässä ole todelliset oliot (ilmentymät) kuuluvat johonkin aliluokkaan (koko elinaikansa) aliluokka perii yliluokan ominaisuudet (attribuutit ja metodit) ylimäärittely voi uudelleenmääritellä perityn ominaisuuden aliluokan tasolla erikoistamismekanismi mahdollistaa luokan käyttämisen kehitystyössä, vaikka sen tarkaa sisältöä ei tunneta ja se tarkentuu vasta sunnittelutyön edetessä erikoistaminen ja ylimäärittely eivät muuta yliluokan tasolla sovittua rajapintasopimusta yliluokan ominaisuudet ovat suunnittelutyössä käytetettävissä vaikka lopullista aliluokan rakennetta ei kaikkien ykstyiskohtien osalta tunneta myöhemminb määräytyviä yksityiskohtia ei luonnollisesti voi käyttää (ennekuin ne tunnetaan) Luokkakaaviot 33

34 yleistys, erikoistaminen, periytyminen H-auto a L-auto e c f d g b K-auto Auto a,b,c,d,e,f,g Iso Iso massiivinen massiivinen luokka luokka Kaksi Kaksi ratkaisua: ratkaisua: yksi yksi luokka, luokka, jossa jossa on on kaikkien kaikkien kolmen kolmen erityyppisen erityyppisen olion olion ominaisuudet ominaisuudet TAI TAI erikoistamisrakenne, erikoistamisrakenne, jossa jossa on on yhteiset yhteiset (ja (ja mahdollisesti mahdollisesti erikoistettavat) erikoistettavat) ominaisuudet ominaisuudet erikoistettujen erikoistettujen ominaisuuksien ominaisuuksien sijaitessa sijaitessa aliluokissa. aliluokissa. Tarve Tarve ratkaisee. ratkaisee. Tehottomuus! Tehottomuus! H-auto a L-auto e c f d g b K-auto d periytyy periytyy a,b,c a,b,c luokkaspesifejä luokkaspesifejä e,f,g e,f,g ylimääritelty ylimääritelty (yksi (yksi tarpeeton!) tarpeeton!) H-auto d, a, e,f(,g) Auto d, e,f,g K-auto d, b, f,g(,e) L-auto d, c e,g(,f) Luokkakaaviot 34

35 Fyysinen ilmentymä vs. looginen rakenne Kun Kun luokkaa luokkaa vastaava vastaava olio olio syntyy syntyy tietojärjestelmässä, tietojärjestelmässä, määräytyy määräytyy sen sen tyyppi tyyppi (lapsiluokan (lapsiluokan tasolla). tasolla). Olio Olio edustaa edustaa tätä tätä luokkaa luokkaa koko koko olemassaolonsa olemassaolonsa ajan ajan ei ei siis siis voi voi muuttua muuttua toisen toisen lapsiluokan lapsiluokan jäseneksi jäseneksi ( henkilöautosta ( henkilöautosta ei ei voi voi tulla tulla kuorma-autoa ). kuorma-autoa ). Luokkakaaviot 35

36 Yleistys / erikoistaminen: esimerkki tili tilinro saldo otto() pano() saldokysely() tili tilinro saldo otto() pano() saldokysely() 1 {xor} 1 luotollinen tili luottoraja käyttötili luotollinen tili luottoraja otto() käyttötili otto() rajoite TAI: tilinro saldo tili otto() pano() saldokysely() luotollinen tili luottoraja käyttötili otto() Luokkakaaviot 36

37 Yleistys / erikoistaminen: esimerkki luotollinen tili tilinro saldo luottoraja otto() pano() saldokysely() TAI käyttötili tilinro saldo otto() pano() saldokysely() Edellisestä luokkakaaviosta realisoituvat luokat luokat Luokkakaaviot 37

38 Periytyminen aliluokka perii yliluokan attribuutit ja operaatiot aliluokka voi määritellä myös omia attribuuttejaan ja operaatioitaan myös ylimäärittely (attribuutti tai operaatio määritellään uudelleen aliluokssa) on mahdollinen käytetään periytymiseen pohjautuvassa uudelleenkäytössä) mahdollistaa suunnittelutason joustavat ratkaisut ja pakottaa toteutuksen noudattamaan sovittua rajapintaa» virtuaalifunktiot» joustavuus, uudelleenkäyttö Luokkakaaviot 38

39 Koostuminen / komponentti(us) koostumisella ilmaistaan luokan olevan toisen komponentti (tai päinvastoin) olion kiinteä riippuvuus toisesta osana koosterakennetta ilmaistaan muodosteen (composition) avulla koosteeseen kuuluvien olioiden välillä on elinikäriippuvuus kuvataan tummennetulla koostesymbolilla komponentti voi olla muodostesuhteessa vain yhteen isäntäolioon kerrallaan Luokkakaaviot 39

40 Periytyminen ja koostuminen: esimerkki korttikasa kortti erikoistaminen sijaintipöydällä lisääpäälle() otaalta() otapäältä() Kooste Kooste 0..* arvo maa kuvapuolinäkyvissä käännä() yleistäminen pöytäpakka käännäpäältä() otaalta() käsipakka sekoita() käsi korttejaaluksi lajittele() Pöytäpakka, Pöytäpakka, käsipakka käsipakka ja ja käsi käsi ovat ovat (erikoistettuja) (erikoistettuja) korttikasoja. korttikasoja. Korttikasa Korttikasa koostuu koostuu korteista korteista (0 (0... n). n). Luokkakaaviot 40

41 periytyminen ja koostuminen: esimerkki pöytäpakka otapäältä() lisääpäälle() käännäpäältä() otaalta() 0..* kortti arvo maa kuvapuolinäkyvissä käännä() Yksi Yksi edellisestä edellisestä kuvauksesta kuvauksesta realisoituva realisoituva luokka luokka on on pöytäpakka, pöytäpakka, joka joka perii perii osan osan ominaisuuksistaan, ominaisuuksistaan, ylimäärittelee ylimäärittelee osan osan ja ja määrittelee määrittelee joitain joitain omia omia ominaisuuksiaan. ominaisuuksiaan. Luokkakaaviot 41

42 Muodoste: esimerkki yritys osasto henkilö 0..* 1..* Yritys Yritys muodostuu muodostuu osastoista osastoista (0..n). (0..n). Osastoa Osastoa ei ei ole ole olemassa olemassa jos jos ei ei ole ole yritystä. yritystä. Osasto Osasto koostuu koostuu henkilöistä, henkilöistä, mutta mutta voi voi olla olla olemassa olemassa vaikka vaikka siihen siihen ei ei olekaan olekaan liittyneenä liittyneenä yhtään yhtään henkilöä. henkilöä. Luokkakaaviot 42

43 Rajapintojen kuvaaminen rajapintojen suunnittelu on yksi ohjelmistosuunnittelun keskeisimpiä tehtäviä (moduulirakenne, kotelointi) luokkien operaatiot muodostuvat vasta suunnitteluvaiheessa, alustava luokkarakenne on määrittelyn tulos (eriaikainen ratkaisun sitominen) tämän takia rajapintoja on tarkoituksenmukaista käsitellä erillään niiden toteutuksesta rajapinta määritellään luokkana, joka sisältää rajapinnan operaatioiden määrittelyt nämä periytetään (realization; toteutus) rajapinnat toteuttaviin luokkiin mekanismi mahdollistaa rajapinnan käytön suunnittelussa, vaikka rajapintaa ei ole määritelty yksi luokka voi toteuttaa useita rajapintoja Luokkakaaviot 43

44 Rajapinta, toteutussuhde: notaatio ja esimerkki rajapinta realization <<Interface>> varoitin varoita() veturi varoita() void kaynnista() { while (1) {... if (kattilapaine > maxpaine) { vptr->varoita("kohta pamahtaa") }... <<Interface>> ohjaus kaynnista() sammuta() asetanopeus() <<uses>> <<thread>> höyrykone kaynnista() sammuta() asetanopeus() <<Interface>> huolto lisäävettä() poistatuhka() <<thread>> polttomoottori realization rajapinta Kaikkien Kaikkien moottoreiden moottoreiden (polttomoottori, (polttomoottori, höyrykone, höyrykone, ) ) on on toteutettava toteutettava rajapinta rajapinta ohjaus. ohjaus. Kaikkien Kaikkien höyrykonetta höyrykonetta käyttävien käyttävien laitteiden laitteiden on on toteutettava(<<uses>>) rajapinta rajapinta varoitin varoitin (riippuvuus; (riippuvuus; tarjoaa tarjoaa operaation, operaation, jolla jolla varoitetaan varoitetaan liian liian korkeasta korkeasta höyrynpaineesta). höyrynpaineesta). Rajapintaluokat Rajapintaluokat periytetään periytetään rajapinnat rajapinnat toteuttaviin toteuttaviin luokkiin luokkiin (realization). (realization). Yksi Yksi luokka luokka voi voi toteuttaa toteuttaa useita useita eri eri rajapintoja rajapintoja (ks. (ks. höyrykone). höyrykone). Luokkakaaviot 44

45 Stereotyypit ja ikonit stereotyypit esitetään kaksoisväkästen (guillements) välissä toimivat komponenttia täsmentävänä lisämääreenä voivat esiintyä missä useissa eri komponenttityypeissä sekä yhteyksissä standardeja: <<interface>>, <<thread>>, <<uses>> voidaan määritellä itse lisää ikonit korvaa tiettyä stereotyyppiä kuvaavan luokkasymbolin ja stereotyyppimääreen kuvaustekniikassa on valmiita ikoneita; käyttäjä voi laajentaa menetelmää omilla ikoneilla Luokkakaaviot 45

46 Rajapinnat, ikonit: esimerkki Rajapinta, Rajapinta, supistettu supistettu muoto. muoto. Veturi Veturi toteuttaa toteuttaa rajapinnan rajapinnan varoitin. varoitin. varoitin Moottori Moottori toteuttaa toteuttaa (käyttää) (käyttää) rajapinnan rajapinnan varoitin varoitin Veturit Mootorit ohjaus Kaikki Kaikki moottorit moottorit toteuttavat toteuttavat rajapinnan rajapinnan ohjaus ohjaus Luokkakaaviot 46

47 Pakkaukset pakkaus on väline mallin elementtein ryhmittelyyn sisältää luokkia, toisia pakkauksia, komponentteja, (kuvauksen tarpeen mukaan) voidaan käyttää myös käyttötapausten ryhmittelyyn rajapintoja voidaan liittää luokkiin ja komponentteihin rajapintaikoni pakkauksessa: pakkauksen sisällä on luokkia tai kopmponentteja, jotka toteuttavat rajapinnan Luokkakaaviot 47

48 Kaavioiden ilmaisuvoima kaavion oikeellisuutta voi testata todellisilla tilanteilla ja kysymyksillä, joihin sen pitäisi kyetä sopia (tilanteet todellisesta ympäristöstä; oliot ja linkit) ilmaisuvoima ei aina ole riittävä sisältää rakenteellista väljyyttä rajoitukset mahdollistavat tiukentamisen» esim. edellä tili voi olla samanaikaisesti luotollinen ja käyttötili mikäli tätä mahdollisuutta ei rajoiteta erillisellä lisämääreellä (tekstimuotoinen selitys) kaikkien sallittujen (todellisuudessa esiintyvien) tilanteiden on oltava kaaviossa mukana Luokkakaaviot 48

49 kaavioiden ilmaisuvoima kaikkia rajoituksia ei aina pysty ilmaisemaan => lisätään rajoitteita ja kommentteja kaavioita voi testata hakemalla siita vastauksia kysymyksiin ja piirtelemällä kuvia esimerkkitilanteista mahtavatkohan asiakkaat ymmärtää kaavioita? piirtämisessä ero luokka ja olio» olio = luokkasymboli, jossa ilmentymän identifikaatio ja luokan nimi alleviivataan Luokkakaaviot 49

50 kaavioiden ilmaisuvoima henkilö nimi osoite puh autonmerkki vuosimalli rekisterinumero 0..1 pomo Henkilö ei saa olla oma esimiehensä esimies Ahto Simakuutio : henkilö pomo jaospäällikkö : vakanssi konsultti : vakanssi Aikon Oyj : yritys alainen 0..* työskentelee 0..* alainen vakanssi Teemu Teekkari : henkilö testaaja : vakanssi 0..* yritys Henkilö Henkilö työskentelee työskentelee yrityksessä yrityksessä ja ja (henkilö) (henkilö) on on pomona pomona tietyille tietyille vakansseille. vakansseille. Kysymys 1: missä yrityksissä A.S. on töissä? Kysymys 2: kuka on T.T.:n esimies, kun hän on Aikonilla työssä? Kysymys 3: mikä on A.S.:n vakanssi näissä työsuhteissa EI: Kysymys 4: mikä on T.T.:n esimehen titteli kohdan 2 kysymyksessä. Luokkakaaviot 50

51 kaavioiden ilmaisuvoima henkilö nimi osoite puh autonmerkki vuosimalli rekisterinumero Ahto Simakuutio : henkilö jaospäällikkö : vakanssi pomo Aikon Oyj : yritys 0..* työskentelee 0..* yritys vakanssi pomo 0..1 alainen 0..* esimies Teemu Teekkari : henkilö konsultti : vakanssi alainen testaaja : vakanssi Henkilö Henkilö työskentelee työskentelee yrityksessä yrityksessä Työsuhteeseen Työsuhteeseen liittyy liittyy vakanssi. vakanssi. Vakanssien Vakanssien välillä välillä on on määritelty määritelty esimies-alainen esimies-alainen suhde. suhde. Kysymys 4: mikä on T.T.:n esimehen titteli kohdan 2 kysymyksessä. Luokkakaaviot 51

52 Kaavioiden laatiminen kaavioita voidaan käyttää esitutkimuksessa, määrittelyssä ja suunnittelussa esitutkimus ja määrittely: sovellusalueen käsitteet (domain object model), järjestelmän rajaus, analysis object model, järjestelmän tietosisällön määrittely (käsitekaavio, conceptual model), usein myös tietokannan rakenne suunnittelu: ohjelman rakenne (design object model), tietokannan rakenne (esimerkiksi relaatiokannan graafinen esitys) kaavio dokumentoi "sanaston", jolla asioista voi keskustella Luokkakaaviot 52

53 kaavioiden laatiminen kaavio kertoo, millaiset tilanteet ovat mahdollisia kaavio ohjaa kysymään oikeita kysymyksiä yleisiä periaatteita luokan jäsenillä on aina samat attribuutit ja sama käyttäytyminen (metodit) luokkajako perustuu pysyviin ominaisuuksiin ei esimerkiksi olion väliaikaiseen tilaan periytyminen on is-a -suhde: kaikkialla, missä on mielekästä käyttää isäluokan oliota, pitää olla mielekästä käyttää lapsiluokkien olioita. Luokkakaaviot 53

54 kaavioiden laatiminen menettely: laaditaan alustava kaavio : oma asiantuntemus, haastattelut,... kaavioiden analysointi» luokkien ja yhteyksien poistaminen» luokkien ja yhteyksien lisääminen» lukumääräsuhteiden tarkennus» attribuuttien (ja metodien) sijoittelu luokkiin kaavion testaaminen ja kokeilu erilaisilla esimerkeillä muokkaus kokeilun tulosten perusteella varautuminen tulevaisuuden muutoksiin attribuuttien sijoittelu tilankäytön kannalta epäedulliseen kohteeseen lukumääräsuhteen yläraja 1 korvataan ylärajalla * Luokkakaaviot 54

55 Kaavioiden muokkaaminen: esimerkki Vaatimus: luokissa ei saa olla toistuvia attribuutteja Toimenpide: lisätään uusi luokka opiskelija suorittaa tentti tentti suoritus toistuvat toistuvatattribuutit attribuutit omaan omaanluokkaan Luokkakaaviot 55

56 kaavioiden muokkaaminen: esimerkki toistuvat toistuvatattribuutit attribuutit omaan omaanluokkaan työntekijä lapsi työntekijä on huoltaja > lapsi» Vaatimus: luokissa ei saa olla toistuvia attribuutteja» Toimenpide: lisätään uusi luokka Luokkakaaviot 56

57 kaavioiden muokkaaminen tarpeetonta redundanssia (tiedon toistuminen monessa paikassa) ei saa esiintyä eikä tieto saa olla pääteltävissä muista tiedoista; redundanssi tieto poistetaan ja korvataan luokalla ja yhteyksillä (luokka suoritus opintosuoritusrekisteriä koskevassa esimerkissä) luokalla on vain yksi attribuutti (voidaan yhdistää muuhun luokkaan) Luokkakaaviot 57

58 kaavioiden muokkaaminen: esimerkki Tilanne: osa attribuuteista on olemassa vain osalle luokan ilmentymistä Muutos: lisätään uusi luokka, joka sisältää nämä attribuutit, ja yhteys alkuperäisestä uuteen henkilö henkilö autonrno henkilö henkilö omistaa auto auto rno rno Luokkakaaviot 58

59 kaavioiden muokkaaminen: esimerkki Tilanne: kahdella luokalla on yhteisiä attribuutteja Muutos: lisätään uusi luokka, joka sisältää nämä attribuutit ja yhteys alkuperäisestä uuteen saattaa olla ratkaistavissa myös yleistys/erikoistamis -mekanismin avulla - huom! ilmentymän tyypin muuttumattomuus) henkilö henkilö opiskelija opettaja opiskelija opettaja Luokkakaaviot 59

60 kaavioiden muokkaaminen: esimerkki henkilö Vaihtoehtoiset Vaihtoehtoiset tavat tavat opettajan opettajan ja ja opiskelijan opiskelijan luokkakaavioksi. luokkakaavioksi. opiskelija opettaja opettavaopiskelija henkilö Eo. Eo. kaavioiden kaavioiden mahdollistamat mahdollistamat todellisten todellisten olioiden olioiden rakenteet rakenteet ovat ovat erilaisia. erilaisia. Minkälaisia? Minkälaisia? opiskelija opettaja Luokkakaaviot 60

61 kaavioiden muokkaaminen: esimerkki Tilanne: osa luokan attribuuteista on olemassa vain osan ilmentymän eliniästä Muutos: uusi luokka asiakas lainatiedot asiakas omaa lainatiedot Luokkakaaviot 61

62 kaavioiden muokkaaminen: esimerkki Tilanne:luokkien ilmentymien elinikä on sama ja niitä yhdistää 1-1 -yhteys Muutos: luokat voidaan yhdistää opettaja 1 1 palkka määräytyy palkkaus peruste opettaja palkkausper. Luokkakaaviot 62

63 kaavioiden muokkaaminen: esimerkki Tilanne: yhteys on pääteltävissä toisista yhteyksistä Muutos: yhteys voidaan poistaa opiskelija? suorittaa kurssi kurssi osallistuu tentti tentti Luokkakaaviot 63

64 kaavioiden muokkaaminen: esimerkki Tilanne: luokassa on vain yksi olio Muutos: luokka poistetaan työntekijä on naimisissa aviopuoliso työntekijä aviopuoliso. Luokkakaaviot 64

65 kaavioiden muokkaaminen Laadintaa koskevista yleisperiaatteista joudutaan käytännössä toisinaan luopumaan toteutukseen liittyvistä syistä (redundanssin lisääminen, yhteyksien lisääminen, toistuvien kenttien salliminen, käsitteiden yhdistely). Tietokannan normalisointi saattaa muuttaa myös rakennetta Luokkakaaviot 65

66 Muita notaatioita luokkakaavioiden notaation perusta on käsitekaavioissa Chenin käsitekaaviot sisältää luokkakaavioiden perusilmaisuvoiman» käsitteet, attribuutit, yhteydet» myös yli- ja aliluokka Martinin käsitekaavio graafiset yhteysmerkinnät OMT-luokkakaavio Boochin luokkakaavio Luokkakaaviot 66

67 Chenin käsitekaavio Huom: lukusuuntaa kuvaava nuoli opiskelija 0:N kurssi 0:N <-kuvaa 1:1 1:N osallistuu opintojakso 0:N 1:1 0:N 0:N 0:N suorittaa tentti kuuluu luennoi 0:1 suoritus opettaja assosiatiivinen käsite (yhteyteen liittyvät attribuutit) Luokkakaaviot 67

68 Martinin käsitekaavio opiskelija suoritus 1:n 0:n 0:N 1:1 osallistuu kurssi kuvaa 0:N 1:1 luennoi 0:1 kuuluu tentti opintojakso opettaja opiskelija 1:N osallistuu 0:N kurssi 0:N <-kuvaa 1:1 opintojakso 0:N 1:1 0:N 0:N suorittaa tentti 0:N kuuluu luennoi 0:1 suoritus opettaja Luokkakaaviot 68

69 OMT-luokkakaavio Opiskelija nimi op.nro osoite 1+ osallistuu Kurssi kurssitunnus periodi lukukausi <-kuvaa Opintojakso kuvaus ilmoittaudu() kuuluu luennoi suorittaa Suoritus arvosana ov-määrä Tentti pvm Opettaja nimi osoite henkilönro Luokkakaaviot 69

70 Boochin luokkakaavio Opiskelija nimi op.nro osoite ilmoittaudu() osallistuu 1..n 0..n Kurssi kurssitunnus periodi lukukausi <-kuvaa 0..n 1 Opintojakso kuvaus 0..n kuuluu 0..n luennoi suorittaa Suoritus 0..n Tentti pvm 0..1 Opettaja nimi osoite henkilönro arvosana ov-määrä Luokkakaaviot 70

71 Esimerkki: kirjasto Kirjaan liittyy nimi, kirjoittajat, ISBN-numero, kustantaja, painovuosi, sivumäärä. Lisäksi kussakin kirjassa on yksikäsitteinen numerotunnus. Lainaajilla on nimi, osoite ja puhelinnumero. Järjestelmä ylläpitää tietoja lainauksista: kuka lainasi ja milloin. Piirrä luokkakaavio. Luokkakaaviot 71

72 esimerkki: kirjasto Lainaus Kirja 0..n lainaus edustaa 0..n 1 Nimike 0..n k irjoittaa Tarpeellisuus? Tarpeellisuus? Käsittelytarve Käsittelytarve ratkaisee! ratkaisee! 0..1 Lainaaja 0..1 Tekijä Luokkakaaviot 72

73 Esimerkki: maalausrobotti. Tarkastellaan maalausrobotin tuotannonohjausta. Robotilla maalataan useita eri tuotteita. Asiakas tilaa tuotteita ja määrää tuotteiden värityksen. Maalarit tallettavat järjestelmään maalausohjelmia, joista asiakas valitsee värityksen. Järjestelmä pitää kirjaa myös tilausten toteutumisesta. Luokkakaaviot 73

74 esimerkki: maalausrobotti Tarpeellisuus? Tarpeellisuus? Käsittelytarve Käsittelytarve ratkaisee! ratkaisee! Maalari Robotti maalaa Tuote n Kaavion Kaavion luokkien luokkien (käsitteiden) (käsitteiden) relevanssi relevanssi riippuu riippuu tarpeesta. tarpeesta. Olennaisen Olennaisen erottaminen erottaminen epäolennaisesta: epäolennaisesta: esim. esim. tilausjärjestelmän tilausjärjestelmän kannalta kannalta robotti robotti ja ja malari malari ovat ovat tarpeettomia; tarpeettomia; väritys väritys voi voi olla olla osa osa tuotteen tuotteen ominaisuutta. ominaisuutta. Laatujärjestelmän Laatujärjestelmän kannalta kannalta robotti robotti ja ja maalari maalari taas taas voivat voivat olla olla tarpeellisia tarpeellisia tietoja. tietoja. 0..n tilaa 1 Asiakas tallettaa 0..n Väritysoh jelma Tarpeellisuus? Tarpeellisuus? Käsittelytarve Käsittelytarve ratkaisee! ratkaisee! Luokkakaaviot 74

75 Kertauskysymykset Mitä eroa on koosteella ja aidolla koosteella (muodoste). Mitä tarkoitetaan aktiivisella oliolla ja miten se esitetään luokkakaaviossa. Järjestelmän kuvaustyössä osa kuvauksista kuvaa esimerkinomaisesti reaalimaailmassa tapahtuvia toimintoja tai sen rakenteita, osa taas mallintamisen näkökulmasta antaa kattavan kuvauksen joko mallinnettavan kohteen rakenteesta tai sen käyttäytymisestä. Mikä on tällaisten esimerkki-kuvausten rooli laadittaessa järjestelmän kattavaa kuvausta. Mitkä kuvausmenetelmät ovat luonnehdiottavissa esimerkkikuvauksiksi ja mitkä kattaviksi kuvauksiksi. Minkälaisen prosessin tuloksena rakennetta / toimintaa koskevat kattavat kuvaukset saadaan. Kuvaa luokkakavioiden, tapahtumasekvenssikavioiden ja tilakaavioiden välinen yhteys tietojärjestelmän kuvaamisessa. Mitä eroa on yhteydellä ja linkillä. Selitä kurssimateriaalissa oleva kurssien suoritusten hallintaa kuvaava luokkakaavio. Mitä kuvaa luokkakaavion yhteysviivassa oleva lukumääräsuhde. Mitä kuvaa oliokavion yhteysviivassa oleva lukumääräsuhde. Millä eri keinoilla voi luokkakaaviokuvauksessa tarkentaa yhteyden luonnetta. Mitä tarkoitetaan luokkakaaviossa yleistämisellä ja erikoistamisella. Mitä tarkoitetaan periytymisellä. Mitä periytymismekanismissa tarkoitetaan ylimäärittelyllä. Miksi tällaista tarvitaan. Periytyminen on yksi uudelleenkäyttöä tukeva ratkaisu. Mitä hyötyä periytymismekanismin käyttömahdollisuudesta on uudelleenkäytön näkökulmasta. Kurssimateriaalissa on esitetty pankkitilien eri muotoja koskeva luokkakaavio. Toisessa kaaviossa asia ilmaistaan perinteisen yhteysrakenteen muodossa ja toisessa hyödyntämällä erikoistamismekanismia. Mitä eroa loogisesta näkökulmasta on näillä ilmaisuilla kun tarkastellaan asiaa syntyvän tietokantaratkaisun näkökulmasta. Mikä on virtuaalifunktio (-metodi). Selitä kurssimaterialissa oleva korttikasan rakennetta kuvaava luokkakaavio. Luokkakaaviot 75

76 kertauskysymykset Kuvaa erillisinä luokkakuvauksina kaikki em. luokkakaavioista synnytettävissä olevat luokat. Mikä merkitys on rajapintakuvauksella UMLluokkakaavioissa. Mihin niitä tarvitaan. Selitä kurssimateriaaliin sisältyvä rajapintoja käsittelevä luokkakaavio (juna, mottorit,...). Miksi rajapintakuvausten käyttö on tässä yhteydessä tarpeellista. Mitä ovat stereotyypit ja ikonit UMLssä. Mihin niitä voi käyttää. Selitä kurssimateriaalissa olevan kahden työsuhteen ja esimiesaseman kuvaamiseen liittyvän luokkakaavion ilmaisuvoiman eroavuudet. KUrssimateriaalissa esitellään kolme eri luokkakaaviota opiskelijan ja opettajan kuvaamiseksi tietojärjestelmässä. Kuvaustapoina on yhteysrakenteen kautta tehtävä määrittely, periytymismekanismilla tehty määrittely ja moniperitymistä hyödyntävä malli. Mitä eroa näillä kuvauksilla on tietojärjestelmään syntyvien olioiden näkökulmasta. Anna luokkakaavio sairaalan henkilökunta- ja potilasrekisterisovellusta varten. Harjoitustehtäviä kirjasta Koskimies, Oliokirja. Kurssimateriaalin (tämän osion) lopussa on käsitelty yksinkertaisen kirjastojärjestelmän toimintaa esimerkkinä luokkakaavion laatimisesta. Selitä järjestelmän luokkakaavioratkaisu ottaen erityisesti kantaa siihen, minkälaisia ilmaisumahdollisuuksia eri kaaviovaihtoehdot antavat. Kurssimateriaalin (tämän osion) lopussa on käsitelty maalausrobotin avulla maalattavien tuotteiden tilausjärjestelmän toimintaa. Selitä järjestelmän luokkakaavioratkaisu ottaen erityisesti kantaa siihen, minkälaisia ilmaisumahdollisuuksia eri kaaviovaihtoehdot antavat. Anna luokkakaavio, jossa on vähintään 10 suhdetta (assosiaatio, kooste, yleistys/erikoistus) seuraavien luokkien kesken. Nimeä assosiaatiot. Voit tarvittaessa lisätä muita luokkia. Luokat: koulu, pelikenttä, rehtori, johtokunta, luokkahuone, kirja, oppilas, opettaja, kahvila, tietokone, pöytä, tuoli, ovi, luokanvalvoja, järjestäjä Luokkakaaviot 76

77 kertauskysymykset Anna aterioivien filosofien ongelman luokkakaavio. Ongelman asetelma on seuraava: Viisi filosofia istuu pyöreässä pöydässä, jokaisessa välissä on yksi haarukka, jonka vieressä olevat filosofit jakavat. Kukin filosofi tarvitsee kahta haarukkaa syödäkseen: jokainen haarukka on siten joko pöydällä tai filosofin kädessä. Filosofi joko ajattelee tai syö. Anna luokkakaavio kirjaston tiedonhallintajärjestelmälle. Kirjastoon sisältyvät mm. seuraavat käsitteet: kirja, lehti, cd-levy, videonauha, lainattava teos, ei-lainattava teos, lainaaja-asiakas, lainauskortin numero, osoite, osasto, hylly, tekijä(t), kirjan nimi, julkaisupaikka- ja vuosi, lainausaika, lainauspaikka, kirjastoauto, kirjastotalo. Järjestelmässä on pystyttävä toteuttamaan mm. kyselyt: "kenellä on lainassa kohde x?", "missä on sijoitettuna kohde x?", "mitä kohteita on lainassa henkilöllä x?", "koska kohde x vapautuu lainasta?". Voit täydentää tehtävää tarpeen mukaan. Luokkakaaviot 77

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

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

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

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

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

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita

Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita Mahdollistavat todellisuuden havainnollistamisen ja yksinkertaistamisen Sallivat eri abstraktiotasot, laajuudet ja näkökulmat Auttavat ymmärtämään

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

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

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

2. Käsiteanalyysi ja relaatiomalli

2. Käsiteanalyysi ja relaatiomalli 2. Käsiteanalyysi ja relaatiomalli lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Tietokannan suunnitteluprosessin osat sivu 2 Käsiteanalyysi ER-mallinnus, tietomallinnus

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

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012 OHJ-300 Ohjelmistotuotannon perust eet, kesäkurssi 202 OHJ-300 Ohjelmistotuotannon perusteet, kesä 202 5.06.2 Ajankoht aist a kurssilla - Asiakasvaatimusten dedis meni... - Torstaina 4.6.202 ei harjoituksia:

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

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

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

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

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

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

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

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

Tietokannan suunnittelu

Tietokannan suunnittelu HELIA TIKO-05 1 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnittelu Tietokannan suunnitteluprosessi... 2 Tavoitteet...2 Tietojärjestelmän suunnitteluprosessi...3 Abstraktiotasot tietokannan

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

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

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

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

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

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

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

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

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

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

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

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

Luokka- ja oliokaaviot

Luokka- ja oliokaaviot Luokka- ja oliokaaviot Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 32 Miten toteuttaisin softalla... Procedure for determining employee holidays, (Pressman, p. 620): Executive order

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

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

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

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

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

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

Luento 3 Tietokannan tietosisällön suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen

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

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

käyttötapaukset mod. testaus

käyttötapaukset mod. testaus käyttötapaukset Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Kartta hyväksyntä määrittely suunnittelu suunnittelu mod. testaus integrointi sys. testaus Ylläpito koodaus (toteutus)

Lisätiedot

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. MagicDraw-pikaohje Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Windows (sali TC205) 1) Kirjaudu sisään TTY:n intra-tunnuksella.

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

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

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

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, mallinnustekniikat käytännössä

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä 582104 Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä 1 Sisältö Oliomenetelmien taustaa Kirjastojärjestelmän käyttötapaukset Kirjastojärjestelmän luokkamalli 2 Oliosuuntautunut suunnittelumenetelmä

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

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

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

TyontekijaOhjelma. +main() (käyttää) + = public - = private

TyontekijaOhjelma. +main() (käyttää) + = public - = private 1 (6) OPPIMISTEHTÄVÄT 11 (opetusviikko 15) Periytyminen, Rajapinta, Kertaus 1) Periytyminen: Periytä Henkilo-luokasta Tyontekija-aliluokka. Tyontekija-luokalla on attribuutti tuntipalkka (desimaaliluku).

Lisätiedot

VH5, JOTU, MagicDraw:n käyttö

VH5, JOTU, MagicDraw:n käyttö VH5, JOTU, MagicDraw:n käyttö 1. Käynnistä MagicDraw (versio 18.2) 2. Valitse Manage Projects-kohdasta Create New Project toiminto. Oletusarvona on UML Project, saa olla. Täytä nimi (Name) ja tallennuspaikka

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

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

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

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

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

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

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

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

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

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

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

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

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

Kaaviotekniikoista (erityisesti UML)

Kaaviotekniikoista (erityisesti UML) Kaaviotekniikoista (erityisesti UML) Kari Systä 20.10.2014 20.10.2014 Jotu2014/KSY 1 Tiedotettavaa Jos ette ole varanneet välinäyttöä, varatkaa heti (keskiviikkona dedis) Dokumentit IDLEeen (sähköposti

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 2 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 28.8.2017 27/8/17 Helsinki Metropolia University of Applied Sciences 1 Oppitunnin

Lisätiedot