Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Samankaltaiset tiedostot
Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Yhteistoimintakaavio (Esimerkki)

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

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

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Analyysi on tulkkaamista

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

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Ohjelmistotekniikan menetelmät, UML

Luokka- ja oliokaaviot

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

UML- mallinnus: Tilakaavio

Ohjelmistotekniikan menetelmät, koe

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

1 Tehtävän kuvaus ja analysointi

UML Luokkakaavio 14:41

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

Luokkakaavion laatiminen

UML - unified modeling language

3. Käsiteanalyysi ja käsitekaavio

Javan perusteita. Janne Käki

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

UML:n yleiskatsaus. UML:n osat:

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

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Ohjelmistojen mallintaminen, kesä 2010

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

Ohjelmistotekniikan menetelmät, kevät 2008

UML ja luokkien väliset suhteet

Ohjelmistotekniikan menetelmät, kesä 2008

Olio-ohjelmointi Javalla

18. Abstraktit tietotyypit 18.1

Olioperustaisuus (object oriented)

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

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

Olioiden yhteistyön mallintaminen

Rajapinta (interface)

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

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Kertaus: yleistys-erikoistus ja perintä

2. Olio-ohjelmoinnin perusteita 2.1

1. Olio-ohjelmointi 1.1

Ohjelmistojen mallintaminen. Luento 4,

Mikä yhteyssuhde on?

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

2. Olio-ohjelmoinista lyhyesti 2.1

Ohjelmistojen mallintaminen, kesä 2009

2. Olio-ohjelmoinnin perusteita 2.1

Ohjelmoinnin jatkokurssi, kurssikoe

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Metodien tekeminen Javalla

ITKP102 Ohjelmointi 1 (6 op)

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

käyttötapaukset mod. testaus

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

4. Olio-ohjelmoinista lyhyesti 4.1

Luokkakohtaiset eli stattiset metodit ja attribuutit

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

YHTEYSSUHDE (assosiation)

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

ITKP102 Ohjelmointi 1 (6 op)

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

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

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

9. Periytyminen Javassa 9.1

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Transkriptio:

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä: Arkkitehtuurin mallintaminen, Staattinen mallintaminen, Dynaaminen mallintaminen, Käyttöliittymän suunnittelu.

Muokkaa käyttötapauksia Muokkaa dynaamisia malleja Muokkaa kohdealueen mallia Analyysia tehdään iteratiivisesti (Rosenberg & Stephens, 2007)

Staattinen mallintaminen Tarkoituksena on rakentaa ymmärrettävä kuvaus niistä rakenteellisista ilmiöistä, joita vaatimusmäärittelyt koskevat. Lähtökohtina toimivat vaatimusmäärittelyt, käyttötapausmalli sekä sovellusaluetta ja sen ympäristöä koskeva asiantuntemus, Tuloksena luokkakaavio (kohdealuemalli)

Kohdealueen malli = Luokkakaavio, jossa esitetään kohdealueen tietoja ja lainalaisuuksia. Kohdealueen malliin tulee pääsääntöisesti vain liiketoimintaluokkia.

Staattisen mallintamisen kaksi kaaviota (mihin niitä voi käyttää?) Oliokaaviot (object diagrams) kuvaavat yksittäisiä olioita ja niiden välisiä rakenteellisia suhteita. Näitä käytetään lähinnä monimutkaisten tietorakenteiden havainnollistamiseen. Luokkakaavio (class diagram) kuvaa olioluokat ja niiden väliset suhteet. Luokkakaaviota voidaan pitää eräänlaisena kaavana tai mallina, joka määrittää, millaiset ajonai- kaiset oliorakenteet ovat mahdollisia.

Luokkakaavio (mitä elementtejä siihen kuuluu?)

Toiminnot eli käyttäytyminen Tieto eli rakenteelliset ominaisuudet Olio (ks. määritelmä): rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta ja joka kattaa sekä rakenteen(tilan) että käyttäytymisen.

-luo uusi -lisää korkeutta -muuta x-koord. -muuta y-koord. Koodi: OH414 Korkeus: 1500 jalkaa X-koord: 145 Y-koord: 346 Koodi: BA315 Korkeus: 3000 jalkaa X-koord: 176 Y-koord: 567

Olio OH414: Lentokone Lentokone koodi korkeus x-koord y-koord OH414 1500 jalkaa 145 346 koodi korkeus x-koord y-koord lentokone() lisääkorkeutta() vähennäkorkeutta() muutaxkoord() muutaykoord() lentokone() lisääkorkeutta() vähennäkorkeutta() muutaxkoord() muutaykoord() Olioluokka

Lentokone + koodi: string - korkeus: double = 0 - x-koord: int - y-koord: int lentokone() lisääkorkeutta() vähennäkorkeutta() muutaxkoord() muutaykoord() Nimi Attribuuttilista Operaatiolista Olioluokka

+ koodi: string Lentokone + paikka_ref[]:paikka Paikka + paikan numero + tyyppi + hinta lentokone().... paikka() varaa_paikka()..

Lentokone palautustyyppi parametri + koodi: string - korkeus: double = 0 - x-koord: int - y-koord: int void lisääkorkeutta(int uusikorkeus) { korkeus = korkeus + uusikorkeus; } lentokone() lisääkorkeutta(int uusikorkeus): void vähennäkorkeutta() muutaxkoord() muutaykoord() double haekorkeus() { return korkeus; }

Työntekijä * töissä 1 Yritys

Roolit ja assosiaatioluokka (Rumbaugh ym, 1999 s. 159)

Kooste ja kompositio(rumbaugh ym, 1999)

Yleistys ja erikostaminen(rumbaugh ym, 1999)

Yleistys ja erikostaminen

Miten luokkakaavio laaditaan? Suppea esitys: 1. Tunnista luokat. 2. Tunnista assosiaatiot. 3. Tunnista attribuutit. 4. Iteroi.

Luokkakaavio (miten sellainen laaditaan?) Lähtökohtana toimivat vaatimusmäärittelyt, käyttötapaukset ja keskustelut käyttäjien kanssa. Aloita luokkien tunnistamisella. Kiinnitä huomiota erityisesti usein toistuviin substantiiveihin. Kerää niistä lista. Karsi listalta kohdealueen malliin kuulumattomat luokat. Aloita liiketoimintaluokista ja vältä toteutukseen liittyviä seikkoja. Poista päällekkäiset, samaa asiaa kuvaavat luokat. Poista epämääräiset luokat. Ovatko luokat pikemminkin attribuutteja tai operaatioita?

Luokkakaavio (miten sellainen laaditaan?) Lähtökohtana toimivat vaatimusmäärittelyt, käyttötapaukset ja keskustelut käyttäjien kanssa. Jatka assosiaation tunnistamisella. Mikä tahansa kytkentä tai riippuvuus luokkien välillä on potentiaalinen assosiaatio. Etsi tekstistä verbejä. Kiinnitä huomioita ilmiöihin, jotka kuvaavat sidosta, toimintaa, yhteydenpitoa, omistusta, jne. Mallinna assosiaatiot luokkien välillä. Käytä sopivia assosiaationimiä. Lisää kardinaalisuusmerkinnät.

Luokkakaavio (miten sellainen laaditaan?) Lähtökohtana toimivat vaatimusmäärittelyt, käyttötapaukset ja keskustelut käyttäjien kanssa. Jatka attribuuttien tunnistamisella. Attribuutit kuvaavat luokkaan kuuluvien olioiden rakenteellisia ominaisuuksia. Löytyvät harvemmin tavoitemäärittelystä, tarvitaan lisänä yleistietämystä. Esiintyvät usein substantiiveina, ovat alisteisia luokille. Adjektiivit ilmaisevat yksittäisiä attribuuttiarvoja. Iteroi: Tarkenna luokkien määritystä ja assosiaatioita.

Luokkakaavio (Esimerkki) Tutkimuslaitoksessa on kymmeniä projekteja ja niiden kirjaamiseksi tarvitaan selainohjelmiston avulla käytettävä tietojärjestelmä. Kunkin projektin rahoitus tulee useammasta lähteestä, jotka voivat olla yrityksiä tai valtion yksiköitä. Projektissa työskentelee yksi tai useampi henkilö. Kullakin projektilla on johtaja. Projektin työ liittyy johonkin tai joihinkin tutkimusaiheisiin. Projekti tuottaa tutkimusraportteja, joiden kansilehdellä tuodaan esille myös raportin tekijät. Tutkimusraportti voi olla tutkimuslaitoksen sisäinen (sisältää julkaisunumeron), konferenssiartikkeli (sisältää konferenssin nimen ja vuoden. lisäksi yhden raportin kirjoittajista tulee esittää artikkeli konferenssissa) tai tieteellisessä lehdessä (sisältää vuoden ja lehden numeron) julkaistu artikkeli.