Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Samankaltaiset tiedostot
Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Yhteistoimintakaavio (Esimerkki)

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

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

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

UML Luokkakaavio 14:41

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Vaatimusmääritelystä UML:n avulla

Ohjelmistotekniikan menetelmät, UML

Mikä yhteyssuhde on?

Ohjelmistotekniikan menetelmät, koe

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

Olio-ohjelmointi Javalla

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

UML- mallinnus: Tilakaavio

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

Luokka- ja oliokaaviot

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

2. Olio-ohjelmoinista lyhyesti 2.1

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Luokkakaavion laatiminen

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

1 Tehtävän kuvaus ja analysointi

2. Olio-ohjelmoinnin perusteita 2.1

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

UML - unified modeling language

4. Olio-ohjelmoinista lyhyesti 4.1

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, sekvenssikaaviot

Analyysi on tulkkaamista

18. Abstraktit tietotyypit 18.1

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

UML ja luokkien väliset suhteet

Ohjelmistotekniikan menetelmät, kesä 2008

Javan perusteita. Janne Käki

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

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

Kertaus: yleistys-erikoistus ja perintä

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

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

Rajapinta (interface)

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

UML:n yleiskatsaus. UML:n osat:

Metodien tekeminen Javalla

3. Käsiteanalyysi ja käsitekaavio

UML-kielen formalisointi Object-Z:lla

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

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

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

Ohjelmistotekniikan menetelmät, kevät 2008

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

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

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

16. Javan omat luokat 16.1

2. Olio-ohjelmoinnin perusteita 2.1

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

Ohjelmistojen mallintaminen, kesä 2009

9. Periytyminen Javassa 9.1

19. Unified Modeling Language (UML)

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

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

käyttötapaukset mod. testaus

Ohjelmistojen mallintaminen. Luento 4,

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

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

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

Olioiden yhteistyön mallintaminen

YHTEYSSUHDE (assosiation)

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Olioperustaisuus (object oriented)

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

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

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

12. Monimuotoisuus 12.1

12. Monimuotoisuus 12.1

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

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

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 Tarkasta: - Onko kaikki eri tavat suorittaa käyttötapaus löydetty ja mallinnettu? - Onko tunnistettu olioluokkiin kuuluvat tarpeelliset tiedot ja toiminnot? - Onko tunnistettu kaikki toiminnallisuuteen liittyvät vuorovaikutus olioiden välillä? 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 Luokka (olioluokka) kuvaa joukkoa rakenteeltaan ja käyttäytymiseltään samanlaisia olioita.

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 Attribuutti kuvaa luokkaan kuuluvien olioiden rakenteellista ominaisuutta.

+ koodi: string Lentokone + paikka_ref[]:paikka Paikka + paikan numero + tyyppi + hinta lentokone().... paikka() varaa_paikka().. Arvona voi olla myös osoitin tai viite olioon (viitearvoinen) tai kokoelma viitteitä.

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; } Operaatio on olioon kohdistuva tai olion suorittaman toimenpiteen määritys. Kuvaus palvelusta jonka olio tarjoaa. Metodi on tietyn luokan olioihin sovitettu operaation toteutus.

Työntekijä * töissä 1 Yritys Assosiaatio on kahden tai useamman luokan välinen pysyväisluonteinen ja rakenteellinen (eli tietoon liittyvä) suhde (esim. Töissä). Kardinaalisuus eli kertautuminen ilmaisee, kuinka monta oliota vähintään/enintään kustakin olioluokasta osallistuu kerrallaan assosiaatioon; assosiaatioviivan päiden yhteydessä merkinnöillä 0..1 (yksi tai ei yhtään), 0..* (ei yhtään, yksi tai monta), 1..* (yksi tai monta), * (ei yhtään, yksi tai monta) ja 1 (täsmälleen yksi); voidaan käyttää myös tarkempia numeerisia merkintöjä (esim. 3..5).

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

Kooste ja kompositio(rumbaugh ym, 1999)

Yleistys ja erikostaminen(rumbaugh ym, 1999)

Yleistys ja erikostaminen Kohdealuetta mallinnettaessa yleistyshierarkian tärkein motiivi on kuvausvaivan säästäminen ja erilaisten sääntöjen täsmällinen esittäminen. Jos usealla luokalla on samoja attribuutteja ja luokille voidaan määritellä yhteinen yliluokka, voidaan yhteiset attribuutit liittää yliluokkaan ja määritellä ne vain kertaalleen. Analyysivaiheessa lähtökohtana ovat kohdemaailman ilmiöiden väliset suhteet. Myöhemmin suunnittelun kuluessa määritellään yleistyssuhteita toteutusratkaisujen näkökulmasta.

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) Yksikössä on koulutukseltaan kahdenlaisia poliiseja: konstaapelit ja rikostutkijat. Poliisit tunnistetaan heidän virkamerkkinsä numeron mukaan ja lisäksi järjestelmään on kirjattu heidän sosiaaliturvatunnuksensa (SOTU), nimi sekä numero kotipuhelimeen. Rikostutkija toimii tutkimusten ajan esimiehenä konstaapeleille. Poliisit tutkivat rikoksia, jotka on ryhmitelty henkirikoksiin, petoksiin jne. Rikoksista rekisteröidään myös tapahtuma- ja ratkaisupäivämäärä sekä tutkimuksen tila - joko ratkaistu tai toistaiseksi ratkaisematon. Rikokseen liittyy epäiltyjä, joiden tiedoista poliisi kirjaa järjestelmään SOTUn ja nimen lisäksi tärkeimmät yhteystiedot mahdollisten yhteydenottojen ja tarkkailun varalta. Tutkimusten ratkettua rikollisten tiedot (samat kuin epäillyillä) lisätään järjestelmään poliisin toimesta. Rikolliselle luodaan samalla rikosrekisteri, jos tätä ei vielä entuudestaan ole. Rikosrekisteri sisältää järjestelmään jo aiemmin kirjattuja rikoksia, joten rekisterin tehtävänä onkin yhdistää rikolliset rikoksiin. Järjestelmän tulee sisältää seuraavat toiminnot: rikosten kirjaaminen ja niiden tilan muuttaminen, epäiltyjen ja rikollisten tietojen kirjaaminen sekä rikoksen lisääminen rikosrekisteriin.

Luokkakaavio (Esimerkki)