Ohjelmistojen mallintaminen luokkamallin laatiminen
|
|
- Mika Pääkkönen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelmistojen mallintaminen luokkamallin laatiminen 1
2 Oliot ja luokat Ohjelmistokehitys perustuu usein oletukseen: Minkä tahansa järjestelmän katsotaan voivan muodostua olioista, jotka yhteistyössä toimien ja toistensa palveluja hyödyntäen tuottavat järjestelmän tuottamat palvelut Mikä siis on olio? jokin ohjelman tai sen sovellusalueen kannalta mielenkiintoinen asia tai käsite, tai ohjelman osa yhdistää tietoa ja toiminnallisuutta omaa identiteetin, eli erottuu muista olioista omaksi yksilökseen 2
3 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue on laaja ensin karkea yleiskuva, sitten lisää yksityiskohtia JA/TAI Osista kokonaisuuteen (bottom-up) jaetaan kokonaisuus osiin ja tehdään osakohtaisia malleja, jotka sitten yhdistetään kokonaismalliksi osa voisi olla esimerkiksi käyttötapaus yksityiskohdista yleiskuvaan 3
4 Suunnittelu- ja toteutusvaiheen oliot ja luokat Oliota ja luokkia ajatellaan usein ohjelmointitason käsitteinä Javassa määritellään luokka class Henkilo { } Ja luodaan olioita Henkilo arto = new Henkilo() Ohjelma siis muodostuu olioista Oliot elävät koneen muistissa Ohjelmiston suunnitteluvaiheessa suunnitellaan mistä oliosta ohjelma koostuu ja miten oliot liittyvät toisiinsa Nämä oliot sitten toteutetaan ohjelmointikielellä toteutusvaiheessa Mistä suunnitteluvaiheen oliot tulevat? Miten ne keksitään? 4
5 Perussanasto Luettelo organisaation toiminnan kannalta keskeisistä käsitteistä ja niiden määritelmistä Voidaan esittää Koko organisaatiolle liiketoimintatason sanasto Kullekin kohdealueelle tarkemmin ja liiketoimintatason sanastoa laajentaen Auttaa luokkamallin laatimisessa Olioiden, olioiden välisten suhteiden ja olioluokkien löytäminen 5
6 Liiketoimintatason luokkamalli Liiketoiminnalliset oliot (business entity) Vain organisaation päätoiminnallisuus ja peruskäsitteet Ei sisällä suunnittelu- eikä toteutustason käsitteitä (esim. käyttöliittymä- tai tietokantayhteysluokkia) Olioiden väliset yhteydet (association) Osallistumisrajoitteet (multiplicity) Koosteisuus (aggregation, composition) Yleistyssuhteet (generalizations) eli periytymishierarkia Ns. POJO-malli (Plain Ordinary Java Objects) 6
7 Luokkakaaviot UML:ssä Luokkakaavioilla kuvataan Ohjelmiston tai muun järjestelmän rakenne Olioiden tietosisältö Olioiden ja olioluokkien väliset suhteet Olioiden tarjoamat palvelut 7
8 Luokka- ja oliokaaviot Luokkaa kuvataan laatikolla, jonka sisällä on luokan nimi Kuten pian näemme, laatikossa voi olla myös muuta Luokan instansseja eli sen mukaisia olioita kuvataan myös laatikolla, erona on nimen merkintätapa Nimi alleviivattuna, sisältäen mahdollisesti myös olion nimen Oliokaavio kuvaa tietyn hetken tilanteen, olemassa 3 henkilöä 8
9 Esimerkit luokka- ja oliokaavioista Kuvassa Person-luokka ja kolme Person-olioa Kolmas olioista on nimetön Luokkia ja olioita ei sotketa samaan kuvaan, kyseessä onkin kaksi kuvaa: vasemmalla luokkakaavio ja oikealla oliokaavio 9
10 Attribuutit luokka- ja oliokaavioissa Tietyn luokan olioilla on attribuutteja eli muuttujia ja operaatiota eli metodeja Nämä määritellään luokkamäärittelyn yhteydessä Aivan kuten Javassa kirjoitettaessa class Person{ } määritellään kaikkien Person-olioiden attribuutit ja metodit luokan määrittelyn yhteydessä Luokkakaaviossa attribuutit määritellään luokan nimen alla omassa osassaan laatikkoa Attribuutista on ilmaistu nimi ja tyyppi (voi myös puuttua) Oliokaaviossa voidaan ilmaista myös attribuutin arvo 10
11 Luokan ilmentymän (olion) kuvaaminen Ilmentymäviitteessä esitetään alleviivattuna joko Ilmentymän nimi/tunniste Luokan nimi Molemmat Alemmassa osassa annetaan ilmentymän attribuuttien arvot Ilmentymiä käytetään yleensä vain esimerkkeinä 11
12 Operaatiot luokkakaavioissa Luokan olioiden metodit eli operaatiot merkitään laatikon kolmanteen osaan Luokkiin on pakko merkitä ainoastaan nimi Attribuutit ja operaatiot merkitään jos tarvetta Usein operaatioista merkitään ainoastaan nimi, joskus myös parametrien ja paluuarvon tyyppi Attribuuttien ja operaatioiden parametrien ja paluuarvon tyyppeinä voidaan käyttää yksinkertaisia tietotyyppejä (int, Double, String, ) tai rakenteisia tietotyyppejä (taulukko). Tyyppi voi olla myös luokka, joko itse määritelty tai asiayhteydestä itsestäänselvä 12
13 Luokkasymbolin osat 13
14 Kirahvi (Giraffa camelopardalis) Korkein maanisäkäs. Uroksen korkeus on 4,8 5,5 metriä ja paino jopa 900 kiloa. Kaulanikamia on seitsemän kuten muillakin nisäkkäillä ja niiden pituus on noin 40 cm. Kirahvin turkissa on vaalealla pohjalla eri kokoisia ja muotoisia läiskiä, joiden väri vaihtelee oranssista lähes mustaan. Jokaisen yksilön kuviointi on erilainen. Kirahvi voi elää luonnossa noin 25vuotiaaksi, tavallisesti elämänkaaren pituus on noin vuotta. [Wikipedia] 14
15 Luokan attribuutit Kuvaavat olioiden tietosisällön muodon Attribuutista voidaan esittää Nimi (välttämätön) Tietotyyppi (String, Date, int, Kirahvi). Arvojen lukumäärä (multiplicity) Oletusarvona 1, epämääräisen monta = * Annetaan hakasuluissa, [5..*] Näkyvyys (visibility) Oletusarvo Muita määreitä 15
16 Attribuutin tyyppi ja arvo Attribuutin arvolla on tyyppi Tyyppi erotetaan attribuutin nimestä kaksoispisteellä (vrt. ilmentymän esittäminen) pvm: Date tai merkki: char Arvo voi olla perustietotyypin arvo, vaikkapa int UML ei rajoita perustietotyyppejä Olio, jolloin tietotyyppinä on olion luokka Olioarvoiset attribuutit esitetään tässä yhteydessä vain, jos olion luokka on perustietotyyppimäinen. String, Date, Color, Point Muutoin kyseessä on yhteys (association) 16
17 Attribuuttilajit ja lisämääreet Attribuutit ovat yleensä ilmentymäattribuutteja (instance attribute) Jokaisella luokan ilmentymällä on oma arvonsa UML:ssä myös luokka-attribuutteja (class attribute) Attribuutilla luokkakohtainen arvo Ilmaistaan alleviivaamalla attribuutin nimi Esim. Eläinten lukumäärän laskeminen Attribuutille voi antaa kaarisulkeissa { } lisämääreitä UML:ssä valmiina, esim. Frozen Mallintaja voi käyttää myös omia lisämääreitä 17
18 Näkyvyysmääreet Tekniikka attribuutin tai operaation käytön rajoittamiseen Merkitään erikoismerkillä tai ikonilla nimen eteen Vaihtoehdot: Private (-) sallii käytön vain luokan omissa operaatioissa Protected (#) sallii käytön myös luokan aliluokissa määriteltävissä operaatioissa Package (~) sallii käytön myös muissa saman paketin luokissa määriteltävissä operaatioissa Public (+) sallii käytön kaikkialla Käytetään usein vain ohjelmointiläheisessä kuvauksessa 18
19 Esimerkki: erilaisia attribuutteja Luokka-attribuutti seurvapaanro Näkyvyyssäännöt Private (-) Protected (#) Package (~) Public (+) Tietotyypit Int, String, decimal, Date Lisämääreet {frozen} 19
20 Esimerkki: erilaisia attribuutteja Luokkakohtainen seurvapaanro kertoo seuraavan vapaan tilinumeron Protected-määreet ovat käytettävissä tämän luokan ja aliluokkien operaatioissa Tilinumero:a ei voi muuttaa olion luonnin jälkeen 20
21 Esimerkki: erilaisia attribuutteja Tapahtumat on moniarvoinen attribuutti, tyyppi jätetty määrittelemättä Attribuutteihin tapahtumat ja saldo voi viitata vain luokan omissa operaatioissa Attribuuttiin valuuttakoodi voi viitata kaikissa niissä luokissa, jotka sijaitsevassa samassa pakkauksessa kuin tämä luokka 21
22 Attribuutit: UML ja Java UML-luokka vastaa Javan luokkaa Javan staattiset kentät (static field) vastaavat luokka-attribuutteja Muut Java-luokassa määritellyt kentät vastaavat ilmentymäattribuutteja UML:n näkyvyysmääreet vastaavat varsin hyvin Javan modifier-määreitä UML:n lisämääreet ({frozen}) saatetaan joutua toteuttamaan itse Javasta löytyy määreitä, jotka jäävät UML:ssä mallintajan kirjoitettavaksi (synchronized, strictfp) 22
23 Olioiden väliset yhteydet Ohjelmat sisältävät useita olioita Olioiden välillä on erilaisia yhteyksiä Työntekijä työskentelee Yrityksessä, Henkilö omistaa Auton, Henkilö ajaa Autolla, Auto sisältää Renkaat, Henkilö asuu Osoitteessa, Henkilö omistaa Osakkeita, Työntekijä on Johtajan alainen, Johtaja johtaa Työntekijöitä, Johtaja erottaa Työntekijän, Opiskelija on ilmoittautunut Kurssille Yhteys voi olla joko pysyvämpiluontoinen tai hetkellinen Olemme seuraavassa kiinnostuneita lähinnä pysyvämpiluontoisista yhteyksistä 23
24 Yhteydet (association) Yhteydet merkitään luokkakaavioon luokkien välisinä viivoina tai nuolina Yhteys merkitsee kyseisten luokkien ilmentymien välistä suhdetta Olioiden väliset yhteydet toteutetaan ohjelmakoodissa olioarvoisena attribuuttina.. Tai jotain muuta epäsuoraa, mutta pysyväisluonteista viittausta käyttäen 24
25 Yhteydet ohjelmakoodissa Ohjelmakoodissa pysyvä yhteys ilmenee yleensä luokassa olevana olioviitteenä, eli attribuuttina jonka tyyppinä on luokka Ihminen omistaa Auton: class Auto { } void aja() { System.out.println("liikkuu"); } class Ihminen { Auto omaauto; // viite olioon, jonka tyyppinä Auto Ihminen(Auto a) { omaauto = a; } } void menetöihin() { omaauto.aja(); } 25
26 Olioiden väliset yhteydet Olioviite voitaisiin periaatteessa merkitä luokkakaavioon attribuuttina, kyseessähän on teknisessä mielessä attribuutti Näin ei kuitenkaan ole tapana tehdä Parempi tapa on kuvata olioiden välinen yhteys luokkakaaviossa Jos Henkilö- ja Auto-olion välillä voi olla yhteys, yhdistetään Henkilö- ja Auto-luokat viivalla 26
27 Yhteysviivatyypeistä Erilaisia viivatyyppejä käytetään merkitsemään erilaisia asioita Assosiaatio, riippuvuus, yleistys Yhteystyypin valinta kertoo painotuksesta Kaavioiden tehtävänä parantaa ihmisten välistä kommunikaatiota 27
28 Yhteydet: kytkentärajoitteet ja roolit Ohjelmakoodissa jokaisella henkilöllä on täsmälleen yksi auto ja auto liittyy korkeintaan yhteen henkilöön Nämä voidaan kuvata luokkakaaviossa kytkentärajoitteina Alla yhteyden oikeassa päässä on numero 1, joka tarkoittaa, että yhteen Henkilö-olioon liittyy täsmälleen yksi Auto-olio Yhteyden vasemmassa päässä 0..1, joka tarkoittaa, että yhteen Auto-olioon liittyy 0 tai 1 Henkilö-olioa Auton rooli yhteydessä on olla henkilön omaauto, rooli on merkitty Auton viereen Huom: roolin nimi on sama kun luokan Henkilö attribuuti jonka tyyppinä Auto Henkilön rooli yhteydessä on olla omistaja 28
29 Yhteydet: moniarvoisuusmääreet Esimerkissämme yhdellä Henkilö-oliolla on yhteys täsmälleen yhteen Auto-olioon Eli yhteyden Auto-päässä on kytkentärajoitteena 1 Jos halutaan mallintaa tilanne, jossa kullakin Henkilö-oliolla voi olla mielivaltainen määrä autoja (nolla tai useampi), niin kytkentärajoitteeksi merkitään * Alla tilanne, jossa henkilö voi omistaa useita autoja Kullakin autolla joko 0 tai 1 omistajaa 29
30 Moniarvoisuusmääreet (multiplicity) Kertoo, moniko yhteysluokan ilmentymä yhteyteen liittyy Esim. 1, *, 0..1 tai 1..* Alaraja 0 kertoo yhteyden olevan valinnainen Yläraja * kertoo yhteyksiä voivan olevan määrittelemätötömästi Lyhennysmerkinnät 1=1..1 ja * = 0..* 30
31 Esimerkki moniarvoisuusmääreestä Määritellään Java-ohjelmassa Pankkitili-luokan omistus-attribuutti seuraavasti Asiakas[] omitus = new Asiakas[3]; Tarkoittaen, että pankkitilillä voi olla korkeintaan kolme omistajaa Vaaditaan lisäksi, että pankkitilillä on oltava vähintään yksi omistaja Tämä ilmaistaan UML:llä näin: 31
32 Yhteyden navigoituvuus Yhteyskuvauksiin liitetty nuoli ilmaisee, että kyseessä on suunnattu yhteys Pankkitili tuntee omistajansa, mutta omistaja ei muista tilejään Tarvittaessa yhteydet voidaan suunnata molemminsuuntaisiksi 32
33 Esimerkki oliokaaviona 33
34 Yhteyksien yhdistäminen ja nimeäminen Ilmentymätasolla navigoitavat yhteydet ovat aina kaksisuuntaisia. Tällöin yhteydet voidaan yhdistää: Yhteydelle voi antaa nimen molempiin suuntiin Yhteyttä ei ole pakollista nimetä Nuoli yhteyden nimessä merkitsee lukusuunnan 34
35 Roolinimet Roolinimiä voidaan käyttää yhteysnimien lisäksi Esim. tili, omistaja Roolinimi voidaan [joskus] johtaa ohjelmakoodista, yhteyden toteuttavan kentän nimestä Roolinimi merkitään yhteyden kohteen päähän 35
36 Yhteyksien kuvaaminen eri abstraktiotasoilla Luokkia korkealla abstraktion tasolla kuvattaessa voimme jättää attribuutit ja/tai operaatiot merkitsemättä Vastaavasti, navigointimahdollisuus voidaan pudottaa pois Yhteysviivan kummassakaan päässä ei merkitä nuolenkärkeä 36
37 Yhteyksien kuvaamisen abstrahointi Navigointimahdollisuus jätetty esittämättä: Tämä tarkoittaa, että navigoiminen on mahdollista kumpaankin suuntaan Nuolenpää omistajasta suuntaan pankkitili Tämä kuvaa sveitsiläistä pankkitiliä omistaja tietää tilinsä, mutta tili ei omistajaansa. 37
38 Yhteys samaan luokkaan Molemmat yhteyden osapuolina olevat oliot voivat kuulua samaan luokkaan Esimerkki: työntekijällä on vain yksi välitön esimies Esimiehellä taas n alaista Ylimmällä päälliköllä ei ole esimiestä 38
39 Esimies-alainen suhde oliokaaviona 39
40 Ilmentymien järjestys Yhteyteen voidaan liittää järjestysmääre ilmaisemaan, että olioon yhteydessä olevien olioiden joukko on jollain perusteella järjestetty Esimerkki: kirjan kirjoittajat on järjestetty 40
41 Operaatioiden määritteleminen UML:ssä Operaatioille annettavat tiedot Näkyvyys (kuten attribuuteille) Nimi (ainut pakollinen osa) Parametrit Paluuarvon tyyppi Muut määreet Syntaksi (hakasuluilla merkitään optionaalinen osuus) [näkyvyys] nimi [(parametrit)] [: paluuarvon tyyppi] [{muut määreet}] l parametrimäärittelyn muoto on l[suunta] nimi: tyyppi [= oletusarvo] 41
42 Henkilötunnus-luokan attribuutit ja operaatiot Henkilötunnusta mallintavalla luokalla on neljä julkista operaatiota Yksi operaatioista on konstruktori Operaatio getbirthdate palauttaa Date-tyyppisen olion Konstruktorille annetaan parametrina henkilötunnus merkkijonona 42
43 Luokkamallin laatimisen yleisohje Laadi kohdealueen perussanasto Muodosta alustava luokkakaavio Tunnista luokkien ilmentymien väliset yhteydet Täsmennä mallia määrittelemällä attribuutit Määrittele yhteyksien moniarvoisuusmääreet Liitä luokkiin operaatiot ja lisää tarvittaessa uusia luokkia käyttötapausten perusteella Varmista käyttötapausten ja luokkamallin yhteensopivuus 43
44 Perussanaston laatiminen Etsi kohdealueen potentiaaliset luokat ja oliot esim. keskeiset toimijat, toiminnan kohteet, ilmiöt, tapahtumat, materiaalit, tuotteet, käsitteet, termit, Lähtökohtana esim. vapaamuotoinen tekstikuvaus Kerää luokkaehdokkaat perussanastoksi luokkaehdokkaat tekstissä usein subjekteja tai objekteja verbit voivat ilmaista yhteyksiä, samoin genetiivit 44
45 Turhien ehdokkaiden karsiminen perussanastosta Luokka oleellinen mallinnettavan ilmiön kannalta? Luokalla (useita) ilmentymiä? Ilmentymillä järjestelmän kannalta välttämätöntä tietosisältöä (yleensä oltava useita attribuutteja)? Poista synonyymit Karsiminen tyypillisesti iteratiivista 45
46 Yhteyksien tunnistaminen Etsi yhteyksiä sanastosta (ja muista kuvauksista) Käy läpi verbit ja genetiivit sekä muut ilmaukset, jotka kuvaavat kytkentää Onko yhteys oleellinen tarkasteltavan ilmiön kannalta? Onko se rakenteellinen? (vallitseva asiaintila) Esitä kukin asia vain kertaalleen Karsi tai merkitse johdettavissa olevat yhteydet Älä piilota yhteyksiä attribuuteiksi! Työntekijä osastonnimi Osasto nimi Työntekijä osasto nimi Osasto 46
47 Attribuuttien tunnistaminen Attribuutteja saattaa löytyä sanastosta Yleensä niiden löytäminen edellyttää lisäselvityksiä kohdealueesta, esimerkiksi toiminnan osapuolten haastatteluja Attribuuttien kohdalla pitäisi myös selvittää, mihin niitä tarvitaan Ja uudelleen: älä piilota yhteyksiä attribuutteihin! 47
48 Moniarvoisuusmääreet Moniarvoisuusmääreiden eli osallistumisrajoitteiden avulla ilmaistaan rakenteellisia sääntöjä Säännöt eivät välttämättä tule esiin sanastossa, vaan edellyttävät tarkempaa kohdealueen analysointia 48
49 Käyttötapausten rooli operaatioiden ja luokkien tunnistamisessa Käydään läpi kukin käyttötapaus ja sen määrittelemät toiminnalliset vaatimukset esimerkiksi taulukkomuodossa Määritellään yksi (tai useampi) pääluokka, joka vastaa toiminnallisuuden toteuttamisesta Määritellään yksi tai useampia operaatioita, jotka vastaavat toiminnallisuuden toteuttamisesta Määritellään tarvittaessa apuluokkia, joita pääluokka käyttää hyväksi 49
50 Käyttötapausten ja luokkamallin yhteensopivuus Käyttötapausmallin ja tietosisältömallin yhteensopivuuden varmistamiseksi voidaan käyttää riippuvuusmatriisia luokat ja yhteydet vs. käyttötapaukset alkiona riippuvuustieto: luo, muuttaa, poistaa, käyttää (ns. CRUD) matriisit voidaan esittää myös attribuuttitasolla, jolloin kuvataan kunkin attribuutin käsittely (tällä tasolla matriisit on kuitenkin syytä pilkkoa luokkakohtaisiksi) 50
51 Riippuvuusmatriisi 51
52 Riippuvuusmatriisin käyttö Jokaiselle luokalle ja yhteydelle täytyisi löytyä käyttötapaus, jolla voidaan luoda luokan ilmentymiä ja kytkeä olioita ko. yhteyteen Jokaiselle luokalle ja yhteydelle täytyisi löytyä käyttötapaus, joka hyödyntää luokan tietoja ja yhteyksiä Jos ilmentymät eivät ole ikuisia, pitää löytyä käyttötapaus, jolla poistetaan ilmentymiä Jos ilmentymän tietosisältö ei ole muuttumaton, pitää löytyä käyttötapaus, jolla tietosisältöä voidaan muuttaa Jos osapuoli voidaan irrottaa yhteydestä, täytyy tähän tarkoitukseen löytyä käyttötapaus Lisäksi: jokaisen käyttötapauksen täytyy jollain tavoin liittyä sisältöluokkiin 52
53 Kysymyksiä? 53
54 Lisäesimerkkejä yhteyksistä Jokaisella maalla on yksi pääkaupunki Pääkaupunki on ainoastaan yhden maan pääkaupunki Alla ensin luokkakaavio ja esimerkkitilanteen kuvaava oliokaavio 54
55 Henkilö voi omistaa usean yhtiön osakkeita Yhtiöllä on monia osakkeenomistajia Eli yhteen Henkilö-olioon voi liittyä monta Yhtiö-olioa Ja yhteen Yhtiö-olioon voi liittyä monta Henkilö-olioa 55
56 Yhtiössä työskentelee useita ihmisiä Ihminen työskentelee korkeintaan yhdessä yrityksessä Huomaa roolinimet: Ihmisen rooli yhteyden suhteen on työntekijä, employee Yrityksen rooli yhteydessä on työnantaja, employer 56
57 Lisää bisnesmaailman esimerkkejä Manageria kohti on useita assistentteja, assistentin johtajana (supervisor) toimii vähintään yksi manageri Yhtiöllä on yksi johtokunta, joka johtaa tasan yhtä yhtiötä Toimistoon on sijoitettu (allocated to) useita työntekijöitä. Työntekijällä on paikka yhdessä toimisto tai ei missään Johtokuntaan kuuluu kolmesta kahdeksaan henkeä. Yksi henkilö voi kuulua useisiin johtokuntiin, muttei välttämättä yhteenkään. 57
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ätiedotOhjelmistojen 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistojen 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ätiedotJohdatus 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ätiedotJohdatus 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ätiedotOlioperustaisuus (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ätiedotJohdatus 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ätiedotJohdatus 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ätiedotTietokantojen 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ätiedotJohdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys
DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän
LisätiedotYhteydelle 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ätiedotLuokkakaavion 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ätiedotJohdatus 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ätiedotJohdatus 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ätiedotJohdatus 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ätiedotLuokkamalli 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ätiedotOhjelmistojen 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ätiedotOhjelmistojen 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ätiedotLuokkakohtaiset 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ätiedotOhjelmistojen 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ätiedotUML 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ätiedotAnalyysi, 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ätiedotAnalyysi, 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ätiedotOlio-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ätiedotOhjelmistojen 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ätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
LisätiedotOhjelmistojen 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ätiedotOlio-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ätiedotUML - 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ätiedotJohdanto. 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ätiedotOhjelmistojen 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ätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Lisätiedoton 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ätiedotNimi: 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ätiedotSisä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ätiedotOhjelmistotekniikan 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ätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
Lisätiedot2. 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ätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
LisätiedotOlio-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ätiedot3. 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ätiedotSisä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ätiedotUML -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ätiedotSisä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ätiedot2. 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ätiedotOhjelmistojen 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ätiedotUML 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ätiedotSisä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ätiedot9. 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ätiedotTietokantasuunnittelun 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ätiedotRajapinnasta 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ätiedotOhjelmistotekniikan 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ätiedotSisä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ätiedotOliosuunnitteluesimerkki: 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ätiedotOhjelmistotekniikan menetelmät, koe 2.5.2014
Ohjelmistotekniikan menetelmät, koe 2.5.2014 Vastaa tehtävään 3 erilliselle konseptille. Tehtävät 1 ja 2 saavat olla samalla konseptilla. Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
LisätiedotLuokka- 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ätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
LisätiedotOhjelmistojen 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ätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotKertausta: 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ätiedotOlioiden 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistotekniikan 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ätiedotOhjelmistojen mallintaminen, sekvenssikaaviot
582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden
LisätiedotOhjelmistojen 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ätiedotKOHDELUOKAN MÄÄRITTELY
KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona
LisätiedotTenttikysymykset. + 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ätiedotAalto 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ätiedot9. 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ätiedotOhjelmistojen 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ätiedot2. 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ätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotLuokat ja oliot. Ville Sundberg
Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi
Lisätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotYHTEYSSUHDE (assosiation)
YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde
LisätiedotOhjelmistojen 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ätiedotOhjelmistojen 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ätiedotOhjelmistojen 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ätiedotVertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
LisätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotSisä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ätiedotT740103 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ätiedotHELIA 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ätiedot1. 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ätiedotTä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ätiedotMitä 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ätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
Lisätiedot