Olioperustainen ohjelmistokehitys tampereen yliopisto syksy 2000 roope raisamo
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo. perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin. OSA 2: Olioperustainen analyysi ja suunnittelu.

Download Presentation

Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Olioperustainen ohjelmistokehitys tampereen yliopisto syksy 2000 roope raisamo

Olioperustainen ohjelmistokehitysTampereen yliopisto, syksy 2000Roope Raisamo

perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin


Osa 2 olioperustainen analyysi ja suunnittelu

OSA 2: Olioperustainen analyysi ja suunnittelu

Sisältö: UML-notaatio, mallinnusmenetelmät, olioperustainen analyysi- ja suunnitteluprosessi


Luku 7 esimerkki ohjelmiston kehitt misest

Luku 7: Esimerkki ohjelmiston kehittämisestä

Olioperustainen ohjelmistokehitysprosessi


7 2 arkkitehtuuri suunnittelu

7.2.Arkkitehtuuri-suunnittelu

Arkkitehtuurisuunnittelussakiinnitetään järjestelmän arkkitehtuuriin kuuluvat valinnat.


Arkkitehtuurisuunnittelu

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]


Arkkitehtuurisuunnittelu1

Arkkitehtuurisuunnittelu

Rakenteen kuvaukseen käytetään esimerkiksi:

  • luokkakaavioita

  • komponenttikaavioita

  • sijoittelukaavioita


Arkkitehtuurisuunnittelu2

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


Arkkitehtuurisuunnittelu3

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.


Tarkkailija suunnittelumalli observer

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.


Tarkkailija suunnittelumalli observer1

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.


Tarkkailija suunnittelumalli observer2

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.


Tarkkailija suunnittelumallin luokkakaavio

Tarkkailija-suunnittelumallin luokkakaavio

Tarkkailija

{abstract}

päivitä() {abstract}

päivitä()

for all g in tarkkailee {

g.päivitä()

}

tarkkailee

Subjekti

{abstract}

*

liitä(x: Tarkkailija)

poista(x: Tarkkailija)

ilmoita()

rekisteröityy

KonkrSubjekti

KonkrTarkkailija


Tarkkailija suunnittelumallin sekvenssikaavio

Tarkkailija-suunnittelumallin sekvenssikaavio

Muuttaa tilaansa

päivitä()

:KonkrSubjekti

t1:KonkrTarkkailija

t2:KonkrTarkkailija

:Alustaja

liitä(t1)

liitä(t2)

ilmoita()

päivitä()


Tarkkailija suunnittelumallin soveltaminen

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ä()


Tarkkailija suunnittelumallin soveltaminen1

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.


Arkki tehtuuri tason sekvenssi kaavio k ytt tapaukselle askellus

Arkki-tehtuuri-tason sekvenssi-kaavio käyttö-tapaukselle Askellus

:Peli

:PeliNäkymä

:PeliOhjain

:Käyttäjä

heitä noppaa

nopanHeitto()

Heittää noppaa

Hakee kohdepaikat

näytä noppatulos ja

kohteet

päivitä()

kohteen valinta (q)

siirräPelaaja(q)

Pelaajan siirto,

tulee lappupaikalle

näytä siirto,

käännetäänkö?

päivitä()

kyllä

käännäLappu()

Lappu käännetään,

pelaajan päivitys

päivitä()

näytä tilanne


Arkkitehtuurisuunnittelu4

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.


  • Login