UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Samankaltaiset tiedostot
Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

UML -mallinnus TILAKAAVIO

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Ohjelmointiharjoituksia Arduino-ympäristössä

ITKP102 Ohjelmointi 1 (6 op)

1. Olio-ohjelmointi 1.1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmistojen mallintaminen, sekvenssikaaviot

Olioiden yhteistyön mallintaminen

Listarakenne (ArrayList-luokka)

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Java kahdessa tunnissa. Jyry Suvilehto

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1

Ohjelmoinnin perusteet Y Python

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

1. Mitä tehdään ensiksi?

P e d a c o d e ohjelmointikoulutus verkossa

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

Lista luokan sisällä

Ohjelmoinnin perusteet Y Python

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

UML ja luokkien väliset suhteet

Luento 5. Timo Savola. 28. huhtikuuta 2006

Sisältö. 2. Taulukot. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

Ehto- ja toistolauseet

1 Tehtävän kuvaus ja analysointi

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

public static void main (String [] args)

Ohjelmoinnin peruskurssi Y1

Ehto- ja toistolauseet

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin peruskurssi Y1

Algoritmit 1. Demot Timo Männikkö

ITKP102 Ohjelmointi 1 (6 op)

5/20: Algoritmirakenteita III

Muistutus aikatauluista

13 Operaattoreiden ylimäärittelyjä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Mikä yhteyssuhde on?

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE

Ohjelmoinnin perusteet Y Python

Sisältö. 22. Taulukot. Yleistä. Yleistä

Lyhyt kertaus osoittimista

T Henkilökohtainen harjoitus: FASTAXON

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Java-kielen perusteita

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Rajapinta (interface)

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Luokan muodostimet (Constructors)

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Ohjelmistotekniikan menetelmät, koe

Ohjelmoinnin perusteet Y Python

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmistojen mallintaminen. Luento 3, 9.11.

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

13. Loogiset operaatiot 13.1

Ohjelmoinnin perusteet Y Python

Olio-ohjelmointi Syntaksikokoelma

JavaScript alkeet Esimerkkikoodeja moniste 2

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Ohjelmoinnin perusteet Y Python

Ohjelmistojen mallintaminen, mallintaminen ja UML

Metodien tekeminen Javalla

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Ohjelmoinnin peruskurssi Y1

Muuttujat ja kontrolli. Ville Sundberg

13. Loogiset operaatiot 13.1

1. Omat operaatiot 1.1

Ohjelmistotekniikan menetelmät, kesä 2008

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi

Tietotyypit ja operaattorit

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Sisällys. 15. Lohkot. Lohkot. Lohkot

Ohjelmoinnin perusteet Y Python

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19

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

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Transkriptio:

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

SISÄLLYS 4. Viestiyhteyskaavio suunnitteluvaiheessa 4.1 Suunnitteluvaiheen viestiyhteyskaavion osat 4.2 Aikajakson viestit ohjelmakoodissa 4.3 Ehdonesittäminenohjelmakoodissa 4.4 Toiston esittäminen ohjelmakoodissa 4.5 Palautuksen esittäminen ohjelmakoodissa 4.6 Olion luonti ja tuhoaminen ohjelmakoodissa 4.7 Esimerkkejä

4. Viestiyhteyskaavio suunnitteluvaiheessa Suunnittelu- ja toteutusvaiheessa (OOP) viestiyhteyskaavio kuvaa käyttötapauksen toteuttavien olioiden välistä vuorovaikutusta Suunnittelu- ja toteutusvaiheessa viestiyhteyskaaviolla voidaan kuvata ohjelman toiminta toteutustasolla Suunnittelu- ja toteutusvaiheen viestiyhteyskaavio kuvaa olioiden välistä vuorovaikutusta Oliot saadaan luokkakaavion luokista Olio-ohjelmoinnissa kahden olion välinen vuorovaikutus toteutetaan viestinä yhdeltä oliolta toiselle Viesti tarkoittaa olion funktion suorittamista

4.1 Suunnitteluvaiheen viestiyhteyskaavion osat Olion nimi ja sen luokka, elämänviiva ja aikaväli Funktiokutsun/viestin esittäminen kaaviossa. funktiox1() Olion elämänviiva Olion nimi on OlioX ja luokan nimi LuokkaX Aikajakso, jolloin olion jossain funktiossa suoritetaan viestejä. CLuokkaX::funktioX1() // tehdään jotain Aika juoksee elämänviivassa alaspäin.

4.2 Aikajakson viestit ohjelmakoodissa Olioiden aikajaksot ja niissä suoritettavat viestit Kutsutaan jostain kohtaa ohjelmassa Luokan Y funktiota, joka on void tyyppinen. Tämä aiheuttaa aikajakson suorittamisen. Aikajakson koodi on alla. funktiox1() x=a+2b+c; OlioX->funktioX1(); OlioX->funktioX2(); Vain ne ohjelmakoodin osat kuvataan kaaviossa, joissa suoritetaan viesti. Eli koodiriviä x=a+2b+c; EI kuvata viestiyhteyskaaviossa. funktiox2() void CLuokkaX::funktioX1() // tehdään jotain toimintoja void CLuokkaX::funktioX2() // tehdään jotain toimintoja

4.2 AIKAJAKSON VIESTIT OHJELMAKOODISSA Olioiden aikajaksot ja niissä suoritettavat viestit OlioX->funktioX1(); funktioy2(); void CLuokkaY::funktioY2() OlioX->funktioX2(parametri); funktioy2() funktiox1() funktiox2(parametri)

4.3 Ehdon esittäminen ohjelmakoodissa Käytetään ehdon kuvaamiseen hakasulkuja ja matemaattisia operaattoreita (+,-,%, ==,!=, >,<, &&,...) ja sulkuja Luokan CLuokkaY funktiossa suoritetaan vertailu. Jos laskuri=0, suoritetaan luokan CLuokkaX funktio funktiox1(). Jos laskuri=1, suoritetaan luokan CLuokkaX funktio funktiox2(). Vertailun toteuttaminen switch-case rakenteella [laskuri==0] funktiox1() [laskuri==1] funktiox2() switch(laskuri) case 0: OlioX->funktioX1(); break; case 1: OlioX->funktioX2(); break; Vertailun toteuttaminen if -rakenteella if (laskuri==0) OlioX->funktioX1(); if (laskuri==1) OlioX->funktioX2();

4.3 Ehdon esittäminen ohjelmakoodissa Vertailun esittäminen note graafia käyttäen Viestit funktiox1() ja funktiox2() lähetetään jos [laskutulos==-1] [laskutulos==-1] funktiox1() funktiox2() funktioy2() Vertailun toteuttaminen if -rakenteella laskutulos=(luku1*luku2)-luku3; if (laskutulos==-1) OlioX->funktioX1(); OlioX->funktioX2(); funktioy2();

4.3 Ehdon esittäminen ohjelmakoodissa Jos - muuten vertailun esittäminen [laskuri==0] funktiox1() Vertailun toteuttaminen if - else rakenteella if (laskuri==0) OlioX->funktioX1() else OlioX->funktioX2(p1,p2); [muuten] funktiox2(p1,p2)

4.4 Toiston esittäminen ohjelmakoodissa Toiston esittämiseen käytetään Note -graafia Suoritetaan funktioita funktiox1() ja funktiox2(), kunnes ehto [silmukka<10] ei ole voimassa [silmukka<10] funktiox1() funktiox2() Toiston toteuttaminen while -rakenteella while (silmukka<10) OlioX->funktioX1() OlioX->funktioX2(); silmukka++; Toiston toteuttaminen for -rakenteella for (silmukka==0;silmukka<10;silmukka++) OlioX->funktioX1() OlioX->funktioX2();

4.5 Palautuksen esittäminen ohjelmakoodissa Funktion muuttujan arvon palautus muuttujay=funktiox1() muuttujax muuttujay=oliox->funktiox1(); int CLuokkaX::funktioX1() // toimintoja, joilla muuttujax saa // arvon, joka sitten palautetaan return muuttujax;

4.5 Palautuksen esittäminen ohjelmakoodissa Funktion muuttujan arvon palautus toisen funktion parametriksi OlioZ:CLuokkaZ funktioz1() funktiox2(muuttujaz) muuttujaz void CLuokkaZ::funktioZ1() // toimintoja, joilla muuttujaz saa // arvon, joka sitten palautetaan return muuttujaz; OlioX->funktioX2(OlioZ->funktioZ1()); Voidaan myös esittää seuraavasti funktiox2(olioz->funktioz1())

4.6 Olion luonti ja tuhoaminen ohjelmakoodissa Olion luonti ja tuhoaminen main() <<create>> <<create>> void main() CLuokkaX *OlioX = new CLuokkaX; tai CluokkaX *OlioX; OlioX = new Cluokka; <<destroy>> delete OlioX; CLuokkaX *OlioX = new CLuokkaX; OLION LUONTI OLION TUHOAMINEN

4.7 Esimerkkejä Olio lähettää useita (esimerkissä kaksi) viestejä itselleen funktio1() funktio2() [laskuri=10] funktio3() funktio4() CLuokkaX::funktio1() OlioY->funktio2(); if (laskuri==10) funktio3(); funktio4();

4.7 Esimerkkejä Palautus <<create>> tulos=funktio1(x,y) x*2+y*4 CLuokkaX::CLuokkaX() tulos=olioy->funktio1(x,y); int CLuokkaY::funktio1(int x, int y) return 2*x+y*4;