SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.

Slides:



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

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Koostumussuhde Jukka Juslin © Jukka Juslin.
Ohjelmiston tekninen suunnittelu
Moodlen ohje opiskelijoille
Active directory.
1 Heli Lepomäki Yritysten ja muiden organisaatioiden käyttöön sähköinen työpöytä on jo leviämässä, koska niiden toiminta ja asiakaspalvelu.
Toimittaja – Sovellusarkkitehtuuritas on pilkkominen Kalle Launiala, ProtonIT Oy
UML-notaatio staattinen ja dynaaminen mallintaminen
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Tapahtumasekvenssit = Käyttötapausten realisointi
Luoton alistaminen Luoton alistaminen voidaan toteuttaa usealla eri tavalla: Rakenteellinen alistaminen -> tulee kysymykseen moniportaisessa yritysjärjestelyssä.
Tietojärjestelmän suunnittelu
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.
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
HALLITUKSEN PUHEENJOHTAJA VASTUUALUE 1VASTUUALUE 3 VASTUUALUE 4 VASTUUALUE 2 SIHTEERI MALLISEURA RY / HALLITUS - dynaamisen organisaatiokaavion esittely.
Olioperustainen ohjelmistoprosessi
2. Vuokaaviot.
Oliosuunnittelu.
© Jukka Harju, Jukka Juslin
Vaasan yliopisto Tietojenkäsittely TiTe.1020 Ohjelmat.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
Käyttötapauskaavio ja käyttötapaukset
Käyttöönottokaavio – Deployment diagram Sami Stenius.
Viestintäsuunnitelma
© 2010 IBM Corporation1 Objektien käyttöoikeudet  Kaikilla sisällönhallinnan objekteilla on käyttöoikeudet. Käyttöoikeudet on jaoteltuina Lukuoikeuksiin,
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Systeemityö 2 Ajoituskaavio – Timing Diagram
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Vesa Ollikainen & Outi Grotenfelt
Komponenttikaavio Lehtonen Iiro, Janne Liikka
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Kontrollirakenteet laajemmin
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Graafinen käyttöliittymä, osa 1
Käyttöönottokaavio– Deployment diagram Vesa Jokikokko Tarmo Kemi TIK9SNA.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Yo-kirjoitukset Yleisohje Matematiikka. Koetehtävät 15 samanarvoista tehtävää, laadittu pakollisten ja syventävien kurssien perusteella saa vastata enintään.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Systeemityö 2 Viestiyhteyskaavio (Sekvenssi kaavio) – Sequence diagram
Koostekaavio– composite structure diagram Mikko Näpänkangas.
S ysteemianalyysin Laboratorio Aalto-yliopiston teknillinen korkeakoulu Esitelmä 22 – Jussi Kangaspunta Optimointiopin seminaari - Syksy 2010 Ohjaamaton.
Olio-ohjelmoinnin perusteet luento 7
Antti-Jussi Lakanen Nuorten peliohjelmointi 2011 / Jyväskylän yliopisto.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
OMT Design System design –design technical environment Object design –design class diagram.
Tietojärjestelmät ja Systeemisuunnittelu
PROJEKTISUUNNITELMA NURKKALA MAARIT & SAARIKKO SANNA Jyväskylän yliopisto syksy 2004.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Sivuston luominen oppilasryhmän käyttöön Matti Lähtevänoja.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Sekvenssikaavio– Sequence diagram Lassi Kemppainen
– Ohjelmistojen mallintaminen, kesä 2010
8. Periytyminen.
Mallintamisen metamalli ja notaatiot
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
1. Olio-ohjelmointi.
Esityksen transkriptio:

SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin

SE-02 OSA 2: Olioperustainen analyysi ja suunnittelu Sisältö: UML-notaatio, mallinnusmenetelmät, olioperustainen analyysi- ja suunnitteluprosessi

SE-02 Luku 7: Esimerkki ohjelmiston kehittämisestä Olioperustainen ohjelmistokehitysprosessi

SE Arkkitehtuuri- suunnittelu Arkkitehtuurisuunnittelussa kiinnitetään järjestelmän arkkitehtuuriin kuuluvat valinnat.

SE-02 Arkkitehtuurisuunnittelu Arkkitehtuurivalintoja: –järjestelmän kerrokset –merkittävät komponentit –korkean tason suunnittelumallit –arkkitehtuurityylit –mahdollisen kehysarkkitehtuurin ydin –ohjelmistojen sijoittelu laitteistoihin –ohjelmistoalustat –prosessit ja niiden kommunikointi –käyttöliittymäratkaisut –[muut keskeiset ratkaisut]

SE-02 Arkkitehtuurisuunnittelu Rakenteen kuvaukseen käytetään esimerkiksi: –luokkakaavioita –komponenttikaavioita –sijoittelukaavioita

SE-02 Arkkitehtuurisuunnittelu Käyttäytymisen kuvaamiseen käytetään sekvenssikaavioita: –osallistujina arkkitehtuuritason elementtejä kuten komponentteja –tarkentavat vaatimusanalyysin sekvenssikaavioita kuvaavat tehtävien suorituksen arkkitehtuuritason yksiköiden välisenä vuorovaikutuksena

SE-02 Arkkitehtuurisuunnittelu Esimerkkisovelluksessa ainoa merkittävä arkkitehtuuritason kysymys koskee käyttöliittymän toteutusta. –Haluamme, että varsinainen pelilogiikka on selkeästi erotettu käyttöliittymästä tällöin näitä voidaan muuttaa toisistaan riippumatta. –Lisäksi haluamme varautua monen käyttäjän versioon, jossa usealla pelaajalla on näkymä samaan peliin.

SE-02 Tarkkailija-suunnittelumalli (Observer) Tarkkailija-suunnittelumallissa ajatellaan, että maailma koostuu kahdenlaisista olioista: subjekteista, joita tarkkaillaan, ja tarkkailijoista, jotka tarkkailevat. Kullakin subjektilla voi olla mielivaltaisen monta tarkkailijaa, joiden laatua subjekti ei tunne. Aina, kun subjektin tila muuttuu, se ilmoittaa tästä muutoksesta kaikille tarkkailijoilleen. –tarkkailijat reagoivat tähän kukin omalla tavallaan Kun tarkkailija haluaa alkaa tarkkailla tiettyä subjektia, se ilmoittautuu tälle.

SE-02 Tarkkailija-suunnittelumalli (Observer) Esimerkkinä käyttöliittymäarkkitehtuuri: –Subjektina on itse sovellus tai sen osa ja tarkkailijana tämän näkymä näytöllä. –Kun sovelluksen tila muuttuu, kaikille sen näkymille ilmoitetaan muutoksesta. –Elementtien ei tarvitse tuntea toisiaan, vaikka ne riippuvatkin toisistaan. –Sovelluksen ei tarvitse tuntea näyttöjen tarkempaa laatua eikä toteutustapaa ainoastaan tarkkailijarajapinta (operaatio), jolla muutoksesta ilmoitetaan.

SE-02 Tarkkailija-suunnittelumalli (Observer) Tämä suunnittelumalli sopii sellaisiin tilanteisiin, joissa toisistaan riippuvat oliot halutaan toteuttaa mahdollisimman riippumattomasti. –vaikka subjektin on tunnettava tarkkailijoiden ilmoitusoperaatio (rajapinta), subjekti ei tule riippuvaiseksi tietystä tarkkailijaluokasta. –Tarkkailijarajapinta voidaan määritellä kutakin subjektiluokkaa kohden erikseen. –Kaikki tarkkailijarajapinnan toteuttavat luokat voivat toimia kyseisen subjektin tarkkailijoina.

SE-02 Subjekti {abstract} Subjekti {abstract} Tarkkailija {abstract} Tarkkailija {abstract} päivitä() {abstract} KonkrSubjekti KonkrTarkkailija päivitä() tarkkailee * rekisteröityy for all g in tarkkailee { g.päivitä() } liitä(x: Tarkkailija) poista(x: Tarkkailija) ilmoita() Tarkkailija-suunnittelumallin luokkakaavio

SE-02 :KonkrSubjektit1:KonkrTarkkailija liitä(t1) päivitä() t2:KonkrTarkkailija liitä(t2) ilmoita() päivitä() :Alustaja Muuttaa tilaansa Tarkkailija-suunnittelumallin sekvenssikaavio

SE-02 Tarkkailija-suunnittelumallin soveltaminen Esimerkkisovelluksessa: –pelikartan ja -tilanteen näyttö –käyttöliittymäelementit, joilla pelaajat vaikuttavat pelin kulkuun Sovitaan, että näyttö on yksi yhtenäinen piirtoalue, johon piirtää vain yksi luokka. –Tämä luokka, PeliNäkymä, on tarkkailijana pelitilanteen kuvaavalle Peli-luokalle. –PeliNäkymä-luokalla operaatio piirrä()

SE-02 Tarkkailija-suunnittelumallin soveltaminen –Lisäksi tarvitaan luokka, joka käsittelee käyttäjän antamat syötteet. –Tämä luokka, PeliOhjain, tarkkailee käyttöliittymätapahtumia ja kutsuu sopivia Peli-olion operaatiota päivittääkseen pelitilanteen. –Pelitilanteen päivitys aiheuttaa PeliNäkymä-olioiden päivityksen.

SE-02 :PeliOhjain:PeliNäkymä :Peli :Käyttäjä heitä noppaa nopanHeitto() päivitä() näytä noppatulos ja kohteet kohteen valinta (q) siirräPelaaja(q) päivitä() näytä siirto, käännetäänkö? kyllä käännäLappu() näytä tilanne Heittää noppaa Lappu käännetään, pelaajan päivitys Hakee kohdepaikat Pelaajan siirto, tulee lappupaikalle Arkki- tehtuuri- tason sekvenssi- kaavio käyttö- tapaukselle Askellus

SE-02 Arkkitehtuurisuunnittelu Tässä esimerkissä arkkitehtuurivalinnalla ei ollut kovin suurta merkitystä ja se koski vain käyttöliittymän toteutusta. Tarkemmin arkkitehtuureihin ja niiden suunnitteluun liittyviin asioihin perehdytään kurssin kolmannessa osassa. –erittäin tärkeä osa ohjelmiston suunnittelua erityisesti laajemmissa ohjelmistoissa.