Ohjelmistotekniikan menetelmät, sekvenssikaaviot

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Koostumussuhde Jukka Juslin © Jukka Juslin.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tapahtumasekvenssit = Käyttötapausten realisointi
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Oliomallittaminen ja UML
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Dynaamiset oliottMyn1 Dynaamiset oliot Dynaamisen olion tunnuksen esittely ja olion määrittely voivat tapahtua yhtäaikaisesti tai eri aikaan. Dynaamisen.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
13. Hyvä ohjelmointitapa (osa 1)
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
String-vertailusta ja Scannerin käytöstä (1/2)
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Systeemityö 2 Ajoituskaavio – Timing Diagram
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Package diagram Tiia Jefremoff
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Systeemityö 2 Kokoava vuorovaikutuskaavio – Interaction
Mallinnustavat.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Ajoituskaavio– Timing diagram Olli-Pekka Jokinen Aleksi Alapuranen tik9sna.
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Sequence Diagram Jani Keskitapio, Annika Alakastari, Heng Qing Zhu TIK9SNA.
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
Ohjelmistojen mallintaminen, sekvenssikaaviot
Pakkauskaavio– Package Diagram Jani Pelkonen, Niko Viinikanoja, Teemu Tervahauta.
Tietojärjestelmät ja Systeemisuunnittelu
Olioiden yhteistyön mallintaminen ● Luokkakaaviosta käy hyvin esille ohjelman rakenne – minkälaisia luokkia on olemassa – miten luokat liittyvät toisiinsa.
Kertausta: Ohjelmistotuotantoprosessin vaiheet ● Vaatimusanalyysi- ja määrittely – Mitä halutaan? ● Suunnittelu – Miten tehdään? ● Toteutus – Ohjelmointi.
String-vertailusta ja Scannerin käytöstä (1/2)
5. Kapselointi.
1. Omat operaatiot.
1. Olio-ohjelmointi.
– Ohjelmistojen mallintaminen, mallintaminen ja UML
17. Javan omat luokat.
4. Komentoriviparametrit
7. Hyvä ohjelmointitapa..
Kantaluokan määrittely
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
15. Lohkot.
Kantaluokan määrittely
Sekvenssikaavio– Sequence diagram Lassi Kemppainen
– Ohjelmistojen mallintaminen, kesä 2010
14. Hyvä ohjelmointitapa.
15. Lohkot.
6. Metodit.
3. Komentoriviparametrit
13. Pakkaukset.
7. Hyvä ohjelmointitapa..
7. Näytölle tulostaminen
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
3. Attribuutit.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
Esityksen transkriptio:

582101 - Ohjelmistotekniikan menetelmät, sekvenssikaaviot

Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden kautta Yhteistoimintakuvauksilla kuvataan, miten operaatioita käytetään Yhteistyökuvauksia voidaan määrittelyvaiheessa käyttää liiketoimintasääntöjen kuvaamiseen Olioiden yhteistoiminnan kuvaaminen on kuitenkin lähinnä suunnitteluvaiheen tehtävä

Vuorovaikutuksen mallintaminen UML:llä Kuvataan järjestelmän osien (olioiden) välistä kommunikointia Tarkoituksena tarkistaa ja täydentää luokkamallia & tarjota esimerkkitapauksia sen dynaamisesta soveltamisesta Vuorovaikutus esitetään viesteinä olioiden (tai niiden elinkaarta esittävien elämänviivojen, lifeline) välillä Painopiste on viestisekvenssin kuvaamisessa, ei viestien tietosisällössä Vuorovaikutus voi olla synkronista tai asynkronista

Vuorovaikutuskaaviot UML:ssä Sekvenssikaavio (sequence diagram) kuvaa operaatioiden tapahtumajärjestystä ja viestien kulkua olioiden välillä olioiden lisäksi toinen ulottuvuus on aika Kommunikointikaavio (communication diagram) painottaa olioiden välisiä kytkentöjä tunnettiin ennen UML 2.0:aa nimellä yhteistyörakennekaavio (collaboration diagram)

Sekvenssikaavio Havainnollistaa oliorakenteen toimintaa Laaditaan keskeisille operaatioille ja tilanteisiin, joissa kaavioiden käyttö edistää rakenteiden ymmärtämistä Kuvaa olion (tai järjestelmän) operaation (tiettyyn) suoritukseen liittyvän olioiden yhteistyön: operaation suoritukseen osallistuvat avustavat oliot mitä näiden operaatioita kutsutaan missä järjestyksessä operaatioita kutsutaan Vältä pitkiä kaavioita (harvoin havainnollisia)

Sekvenssikaavionotaatio

Sekvenssikaavioesimerkki

Viestit ja aktivaatiot aika olio1: Luokka olio2: Luokka viesti nimeää kutsuttavan operaation [ehto] viesti (parametrit) operaation aktivaatio eli suoritus (palkin pituus kuvaa sen kestoa) paluu operaation suorituksesta (jätetään usein merkitsemättä) 8/35

Erilaiset viestityypit

Sekvenssikaavioesimerkki (1/2) public class A { private B b; private C c; private D d; ... public int doIt() { b.assist1(); c.assist2(d); } public class B { private E e; ... public void assist1() { e.doMagic(); } public class C { public void assist2(D d) { d.serviceD()

Sekvenssikaavioesimerkki (2/2) b: B e: E c: C d: D doIt assist1() doMagic assist2(d) serviceD

Sekvenssikaavio: olioiden elinkaaren merkitseminen m: MyMain tmp: MyHelper create use yksityiskohdat jätetty pois delete Huom. delete-operaatio voi olla eksplisiittinen (kuten C++:ssa) tai implisiittinen (kuten Javassa)

Sekvenssikaavio: silmukat *[ehto]palvelu * koottu koottua palvelujoukkoa pyydetään useilta

Sekvenssikaavio: jakaminen Käytettävää palvelua kuvaava erillinen alikaavio

Esimerkki: Login

Esimerkki: exit

Käytettävä operaatio (viesti) Kommunikaatiokaavio Kuvaa miten, yhteistyö perustuu olioiden välisiin kytkentöihin 1: palvelu1 olio1 olio2 yhteys1 Järjestysnumero kuvaa suoritusjärjestyksen; numerointi voi olla monitasoinen 1.1: palvelu2 yhteys2 Käytettävä operaatio (viesti) olio3

Viestit kommunikaatiokaaviossa

Kommunikaatiokaavioesimerkki 1: assist1 doIt a: A b: B 2: assist2(d) 1.1: doMagic 2.1: serviceD d: D c: C e: E