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



Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, UML

UML -mallinnus TILAKAAVIO

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

UML:n yleiskatsaus. UML:n osat:

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

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

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

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Ohjelmistojen mallintaminen. Luento 7,

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

UML - unified modeling language

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen, sekvenssikaaviot

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

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Rajapinta (interface)

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Luokkakaavion laatiminen

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Java-API, rajapinnat, poikkeukset, UML,...

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Toimintokaavio. UML-Toimontokaavio 1

Unified Modeling Language

Olioiden yhteistyön mallintaminen

2. Olio-ohjelmoinnin perusteita 2.1

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Tilan luonnehdinta (yksi tapa)

Mallinnus UML-yleiskatsaus

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

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Arkkitehtuuri- ja suunnittelumalli

Ohjelmistotekniikan menetelmät, kevät 2008

Mitä on periytyminen?

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen. Luento 3, 9.11.

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

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Tiedonsiirto- ja rajapintastandardit

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

1. Tarkastellaan seuraavaa kaaviota

UML- mallinnus: Tilakaavio

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

P e d a c o d e ohjelmointikoulutus verkossa

Olioperustaisuus (object oriented)

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

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

Muusta kuin vesisioista

UML Luokkakaavio 14:41

Ohjelmistojen mallintaminen, kesä 2010

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

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

Ohjelmoinnin peruskurssien laaja oppimäärä

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

Ohjelmistojen mallintaminen, kesä 2009

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

4. Luokan testaus ja käyttö olion kautta 4.1

2. Olio-ohjelmoinnin perusteita 2.1

Ohjelmistojen mallintaminen. Luento 4,

Kertaus: yleistys-erikoistus ja perintä

Javan perusteita. Janne Käki

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Ohjelmistojen mallintaminen. Luento 6,

Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista)

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Vinkkejä opettajalle

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

2. Olio-ohjelmoinista lyhyesti 2.1

Ohjelmoinnin peruskurssien laaja oppimäärä

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

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

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

Olio-ohjelmointi Javalla

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

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

Java-kielen perusteet

UML-kaaviot. Jouni Kylä-Nikkilä

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

Muutamia peruskäsitteitä

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

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

P e d a c o d e ohjelmointikoulutus verkossa

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

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

Transkriptio:

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 voi olla ongelmallista. Delegoinnissa luokan operaatio siirretään toisen luokan suoritettavaksi. Voidaan käyttää esim. aggregaatiota korvaamaan yleistyksen. Oliomallinnus TITE.2040 Hannu K. Niinimäki 2 1

Delegointi-esimerkki Tiedekunnan jäsen ( opettaja ) voi olla jollakin toisella kurssilla opiskelijana tai opiskelija voi toimia jollakin kurssilla opetustehtävissä. Oliomallinnus TITE.2040 Hannu K. Niinimäki 3 Delegointi 2 Tärkeimmän luokan perintä ja muun delegointi. Oliomallinnus TITE.2040 Hannu K. Niinimäki 4 2

Delegointi 3 Sisäkkäinen yleistäminen. Oliomallinnus TITE.2040 Hannu K. Niinimäki 5 Rajapinnat Usein halutaan kuvata erikseen ulkoiseen käyttäytymiseen liittyviä asioita. Ne voidaan mallintaa erityisenä rajapintaluokkana. Kaikki rajapinnan määrittelemät toiminnallisuudet toteutetaan sitä noudattavissa luokissa. Toiminnallisuus voidaan ottaa käyttöön rajapinnan kautta. Kuvataan sanalla <<interface>> (<<rajapinta>>) tai pallona. Oliomallinnus TITE.2040 Hannu K. Niinimäki 6 3

Rajapinta-esimerkki Oliomallinnus TITE.2040 Hannu K. Niinimäki 7 Abstrakti luokka Luokka, jonka metodeista ainakin yksi on abstrakti. Abstraktin metodin olemassaolo määritellään, mutta ei toteutusta. Abstraktista luokasta ei voida tehdä oliota. Aliluokista, jotka toteuttavat abstraktiksi määritellyt metodit, voidaan. Kuvataan kallistamalla luokan nimi. Realisointi tarkoittaa, että jokin luokka toteuttaa rajapinnan (tai toisen luokan) määrittelemän toiminnan. Oliomallinnus TITE.2040 Hannu K. Niinimäki 8 4

Pakkauskaavio (Package Diagram) Kun halutaan ryhmitellä minkä tahansa kaaviotyypin kuvauksia (esim luokkia) siten, että toisiinsa läheisesti liittyvät ovat samassa pakkauksessa. Oliomallinnus TITE.2040 Hannu K. Niinimäki 9 Sijoittelukaavio (Deployment diagram) Fyysisten laitteiden välisten yhteyksien kuvamiseen Oliomallinnus TITE.2040 Hannu K. Niinimäki 10 5

Komponenttikaavio (component diagram) Esim ohjelmistokomponenttien kuvaamiseen. Oliomallinnus TITE.2040 Hannu K. Niinimäki 11 Olioiden välinen viestintä Tapahtumat (events) 1 Ulkoiset tapahtumat aiheuttavat muutoksia järjestelmässä (oliossa). Tapahtuma Vaikuttaa järjestelmään; järjestelmän on reagoitava tapahtumaaan. Sattuu selvästi tunnistettavana ajan hetkenä. On hetkellinen eli sillä ei katsota olevan ajallista kestoa. Esim. "käyttäjä painaa vasemmanpuoleista nappia" tai "Lento 123 lähtee Chicagoon". Oliomallinnus TITE.2040 Hannu K. Niinimäki 12 6

Tapahtumat 2 Tapahtuma voi edeltää tai seurata ajallisesti toista tapahtumaa, tai tapahtumat voivat olla toisistaan riippumattomia. Lennon 123 täytyy lähteä Chicagosta ennen, kuin se voi saapua San Franciscoon. Tapahtumien välillä on kausaali- (syy-seuraus)suhde. Lento 123 voi lähteä ennen lentoa 456 Roomaan tai sitten sen jälkeen. Tapahtumien välillä ei ole kausaalisuhdetta. Tapahtumat ovat riippumattomia. Oliomallinnus TITE.2040 Hannu K. Niinimäki 13 Tapahtumat 3 Edustaa yhdensuuntaista tiedonvälitystä olioiden kesken. Poikkeaa metodikutsusta, joka saattaa palauttaa arvoja käsittelyn tuloksena. Kun olio lähettää tapahtuman toiselle oliolle, se voi odottaa vastausta tapahtumaan. Vastaus on kuitenkin toinen tapahtuma, josta toinen olio on vastuussa ja sen valittavissa on, lähettääkö se vastauksen vai jättääkö lähettämättä. Voivat liittyä myös virhetilanteisiin. Esim. "moottori juuttui kiinni", "käsittely keskeytetty" ja "time-out" Oliomallinnus TITE.2040 Hannu K. Niinimäki 14 7

Tapahtumaluokat 1 Samankaltaisten tapahtumien kuvaus. Luokka: lentoneen lähdöt, attribuutit: lennon numero lähtöaika lähtöpaikka saapumispaikka Tapahtumaolio: Lento AY-835, lähtee Helsingistä Pariisiin klo 17.30. Attribuutit välittävät tapahtuman mukana tietoa. Signaalit eivät sisällä attribuuttitietoa. Oliomallinnus TITE.2040 Hannu K. Niinimäki 15 Tapahtumasekvenssi Tapahtumasekvenssi on jono tapahtumia, jotka sattuvat järjestelmän yhden suorituskerran aikana. Laajuus voi vaihdella. Voi sisältää kaikki järjestelmässä esiintyvät tapahtumat tai joihinkin olioihin kohdistuvat tapahtumat tai sitten joidenkin olioiden muodostamat tapahtumat. Käytetään usein apuna ajateltua järjestelmää hahmoteltaessa. Oliomallinnus TITE.2040 Hannu K. Niinimäki 16 8

Puhelimen käytön tapahtumasekvenssi. Oliomallinnus TITE.2040 Hannu K. Niinimäki 17 Tapahtumasekvenssikaavio Sequence diagram Tunnetaan myös nimillä sekvenssikaavio ja viestiyhteyskaavio. Liittää tapahtumat, metodikutsut ja kutsujen paluuviestit olioihin. Pystyviivoin kuvataan olioita, vaakaviivoin (nuolin) olioiden välisiä viestejä. Viestit esitetään aikajärjestyksessä ylhäältä alas Oliomallinnus TITE.2040 Hannu K. Niinimäki 18 9

Perusmerkinnät : Luok1 : Luok2 Signaali Kutsu1(param) Aika Kutsu2(param) Paluuarvo Viesti Oliomallinnus TITE.2040 Hannu K. Niinimäki 19 Esimerkki Oliomallinnus TITE.2040 Hannu K. Niinimäki 20 10

Lisämahdollisuuksia Kaaviolla voidaan korostaa olion elinaika (luonti, häviäminen). Tapahtumat voivat olla ehdollisia. Olio voi kutsua myös itseään (rekursio). Tehtävien tekemiseen kuluva aika voidaan kuvata. Oliomallinnus TITE.2040 Hannu K. Niinimäki 21 Lisämahdollisuudet kaaviona Oliomallinnus TITE.2040 Hannu K. Niinimäki 22 11