Tietorakennepohjaiset menetelmät

Koko: px
Aloita esitys sivulta:

Download "Tietorakennepohjaiset menetelmät"

Transkriptio

1 Tietorakennepohjaiset menetelmät Käsiteltävän tiedon rakenne määrää ohjelmiston rakenteen: peräkkäisyys, ehdollisuus, toisto hierarkkisuus Lähtökohtana tulosteiden, syötteiden, tietokannan, kyselyn, tapahtuman rakenne (esim. Jacksonin JSP, Warnier & Orr) Osatehtävät: tietorakenteiden kuvaaminen perusprimitiivien avulla: peräkkäisyys, vaihtoehtoisuus, toisto tietorakenteen muuntaminen kontrollihierarkiaksi ohjelmistohierarkian tarkentaminen ohjelmiston toiminnallinen kuvaus Tietorakennepohjaiset menetelmät Tyypillisiä sovellusalueita: kaupallis-hallinnolliset sovellukset tietokoneavusteinen suunnittelu ja valmistus (CAD, CAM, CAE) sovellukset, joiden käsittelemällä tiedolla on hyvin määritelty ja hierarkkinen rakenne Esim.: JSP - Jackson Structured Programming (-75) Tietorakenteesta kuvattavissa peräkkäisyys, vaihtoehtoisuus ja toisto Tietorakenteet kuvataan hierakisena kaaviona, joka voidaan esittää myös tekstimuodossa. Harri Laine 1/20

2 JSP-rakennekaavio Tuloslista kurssitiedot opiskelija * yhteenveto tunnus nimi arvosana hetu o o JSP-periaate Muodostetaan palveluun liittyviä peräkkäisrakenteita vastaavat tietorakenteet (1 tai useampia) esim. raportin rakennekuvaus, syottötiedostojen rakennekuvaukset. Jos rakenteita on useampia määrätään eri rakennekuvausten rakenneosien vastaavuus kytkemällä vastinosat yhteen. Kutsutaan vastionosien yhteenliittymää osapariksi (yhteenliittymässä voi olla yli 2 osaa) raportin rakenneosa & tietokannan rakenneosa Harri Laine 2/20

3 JSP-periaate JSP-periaate Aikaansaatu kytketty tietorakennekaavio muunnetaan ohjelmarakennekaavioksi: moduuli jokaista osaparia kohden moduuli jokaista paritonta kohden Rakenteiden yhteensovittamisessa voi syntyä rakenneristiriitoja (esim raportti eri järjestyksessä kuin syöttöaineisto) Menetelmä tarjoaa standardiratkaisuja näiden hoitamiseen. Harri Laine 3/20

4 JSP-periaate raportti tietokanta tulos Oliopohjaiset menetelmät - Object oriented design Sekä analyysissä että suunnittelussa on sama peruskäsitteistö oliot ja luokat yhteyksien kohdalla tarkastellaan kuitenkin miten yhteydet toteutetaan linkkeinä, indekseinä, viiteavaimina Joissain suunnittelutason malleissa oliot on jaettu useampaan kategoriaan, esimerkiksi /Jacobsson/ liittymäolioihin (interface objects), pääasiallisena tehtävänä on kommunikointi järjestelmän ulkopuolisten tahojen, esimerkiksi käyttäjien tai oheislaitteiden kanssa. raportit, kyselyt ja graafisen käyttö-liittymän ikkunat ja näiden osat Harri Laine 4/20

5 Oliopohjaiset menetelmät - Object oriented design tieto-olioihin (entity objects) Tieto-olioiden vastuulla on järjestelmän tieto-sisältö Tieto-oliolla voi olla useita olomuotoja, aktiivinen ohjelmassa toimiva muoto, talletusmuoto esim. tietokannassa, yksi tai useampia esitysmuotoja käyttöliittymässä ohjausolioihin (control objects) Ohjaus-oliot vastaavat toimintalogiikasta. ohjaavat ja tarkkailevat työnkulkua Eri kategorioihin kuuluville olioille annetaan yleensä myös erilainen graafinen esitystapa kaavoissa. UML-käyttää erotteluun lajimäärettä (stereotype) Oliopohjaiset menetelmät Olioiden jaottelu kategorioihin auttaa suunnittelijaa jäsentämään kokonaisuutta ja sijoittamaan palveluja olioille. Esimerkiksi tietosisältöön liittyvää loogisuus-tarkistusta ei ole syytä sijoittaa liittymäolion palveluiksi, vaan tarkistus sopii paremmin tietosisällöstä vastaavan tieto-olion palveluksi. Käyttötapaukseen liittyvän monimutkaisen työnkulun valvonta olisi parempi antaa erillisen ohjausolion tehtäväksi kuin yrittää upottaa sitä väkisin käyttöliittymäikkunan tai sitä vastaavan tieto-olion vastuulle. Olioiden jaottelu kategorioihin on siis eräänlainen karkean tason ratkaisumalli. Harri Laine 5/20

6 Oliopohjaiset menetelmät Määrittelyn ja suunnittelun raja on epäselvä. Suunnitteluakin tapahtuu eri tarkuustasoilla Suunnittelussa määrittelyn tuottamaa oliorakennetta täydennetään Järjestelmän kehittelyn lähtökohtana tehtäväalueelle ominaiset tietotyypit ja abstraktiot Suunnittelu pohjautuu voimakkaasti tiedon kätkemisen periaatteelle: järjestelmä nähdään joukkona (itsenäisiä) olioita, jotka ovat vuorovaikutuksessa keskenään kullakin oliolla on tila, johon voidaan koskea ainoastaan sovituilla operaatioilla olioiden välinen kommunikointi perustuu sanomiin Olioiden kuvaaminen Erotetaan kaksi erillistä osaa: protokollan kuvaus = olion käyttöliittymä: sanomat ja niihin liittyvät operaatiot toteutuksen kuvaus = olion sisäinen rakenne: sisäinen tietorakenne operaatioiden toteutuksen yksityiskohdat Käyttäjä tarvitsee ainoastaan protokollan kuvauksen Toteuttaja tarvitsee toteutuksen kuvauksen Kaksitasoinen kuvaaminen tukee suunnittelun ja toteutuksen riippumattomuutta modulaarisuutta komponenttien uuskäyttöä Harri Laine 6/20

7 Oliosuunnittelu Oliopohjaista suunnittelua ja toteutusta suositellaan käytettäväksi oliopohjaisen analyysin jatkona: analyysin yhteydessä laadittu oliomalli muodostaa suunnittelun oliomallin ytimen, jota täydennetään ja muutetaan: ottamalla huomioon toteutusympäristö laitteet, käyttäjät, tietoliikenne toteutusvälineet käytettävät kirjastot suorituskykyvaatimukset suunnittelumallit arkkitehtuurimalli seurauksena uusia olioluokkia ja palveluita esim.printer, FileManager,käyttöliittymäoliot kuten ikkunat,napit, yms. Oliosuunnittelu ottamalla mukaan työtiedot ja apupalvelut ratkaisemalla yhteyksien toteutustapa, esim. Määrittelyssä kirja 1..* luku Harri Laine 7/20

8 Oliosuunnittelu collection item[ ] * object kirjat item[ ] kirja luvut suunnittelussa toteutus kirjastoluokkien avulla luvut luku item[ ] Arkkitehtuurin hyödyntäminen Liittymäoliot muodostavat yhteyden käyttöliittymän ja muun koneensisäisen oliomaailman välille. Käyttöliittymän komponentteja vastaa jokin liittymäolio. Liittymäluokkien tietosisältöön ja toimintoihin vaikuttavat päätökset siitä, missä määrin ja miten käyttöliittymä pyritään eristämään järjestelmän muista osista. Eristämisnen voidaan toteuttaa esim. MVC (Model-View- Controller) -arkkitehtuurin avulla (Krasner, G., Pope S:: Cookbook for using the Model- View-Controller User Interface Paradigm in Smalltalk-80, JOOP August/Sept.1988) Harri Laine 8/20

9 MVC-arkkitehtuuri MVC:ssä eristetään tietosisältö (model) sen esittämisestä (view) ja siihen kohdistuvan käsittelyn hallinnasta (controller). Sisältöoliot pitävät sisällään kaikki esitettävät tiedot ja niiden muuttamiseen tarvittavat operaatiot. Ne eivät tiedä mitään käyttöliittymästä, tietojen esittämismuodosta eivätkä tiedoille käyttöliittymässä tehtävistä operaatioista. Sisältöoliot tarjoavat käyttöliittymästä riippumattomat operaatiot tietojen hakuun ja muokkaukseen. Esim. sisältöolio kello: ylläpitää sisäisesti kellonaikaa tarjoaa operaation ajan kysymiseksi tarjoaa operaatiot ajan asettamiseksi MVC-arkkitehtuuri Näkymäoliot (view) esittävät niihin liitetyn sisältöolion tilaa. Ne käyttävät hyväkseen sisältöolion kyselypalvelua saadakseen tilan selville. Esim. Kellon voisi liittyä kaksi näkymäoliota: analogianäyttö ja digitaalinäyttö. Harri Laine 9/20

10 MVC-arkkitehtuuri Ohjausolio (controller) hallitsee sitä, miten käyttäjä voi vaikuttaa sisältöolioiden tietoihin. Se esimerkiksi ottaa vastaa hiiren näpäyksiä, näppäimen painamisia jne. ja muuntaa nämä sisältöolioiden tilaan vaikuttaviksi operaatioiksi. Esim. Kellon analogianäyttöön voisi liittyä säädin, jossa on eteen ja taakse napit. Näiden painaminen siirtäisi viisareita eteen tai taaksepäin. Painamisen kesto määräisi siirtymän suuruuden. Kun painaminen loppuu säätönuppi välittää tiedon muuttuneesta ajasta kellooliolle sen ajanasetus operaation avulla MVC-arkkitehtuuri Yllä ohjausolio toimii aluksi vaikuttamalla suoraan näkymään. Kun tieto on välitetty sisältöoliolle se välittää tiedon kaikille siihen liittyville näkymille. Kelloesimerkissä digitaalinäyttö näyttäisi siis eri aikaa niin kauan kuin säätimen nappia painetaan, mutta kun nappi irroitetaan se muuttuisi samaan aikaan analogiakellon kanssa. Joissain tapauksissa olio voi toimia sekä näkymäettä ohjausoiliona. Sisältöolioon voi liittyä monta (näkymä, ohjausolio) -paria. Harri Laine 10/20

11 MVC-arkkitehtuuri sisältö <-- muuta tilaa ohjain muuta_tilaa tiedota lisää_näkymä poista_näkymä päivitä ulkoasu --> 0..* ulkoasu näkymä päivitä_ulkoasu (reagoi-ohjaukseen) <-- reagoi ohjaukseen MVC-arkkitehtuuri Sisältöolio rekisteröi näkymän lisää-näkymä operaatiolla ja vastaavasti voi kytkeytyä siitä irti. Ohjain voi vaikuttaa suoraan näkymän tilaan tai epäsuorasti muuttamalla sisällön tilaa. Kun sisällön tila muuttuu sisältöolio tiedottaa asiasta kaikille olion tilasta kiinnostuneiksi rekisteröityneille näkymille. Harri Laine 11/20

12 Suunnittelun eteneminen Oliopohjaisessakin suunnittelussa voidaan nähdä tieto- tai toimintokeskeisiä painotuksia tietokeskeisen oliosuunnittelun lähtökohtana on tiedon piilottaminen: olioluokkia pyritään löytämään tietoabstraktioiden kautta toimintokeskeistä painotusta edustaa ns. vastuuseen perustuva oliosuunnittelu, jossa olioiden määrittelyperustana on olion vastuu jostakin (yleensä toiminnallisesta) kokonaisuudesta ja olion tietosisältö määräytyy vastuun mukaisesti Valittu lähestymistapa johtaa erilaiseen olio- ja luokkarakenteeseen Suunnitteluohjeita Oliorakennetta suunniteltaessa pitäisi pyrkiä minimoimaan olioiden välisiä yhteyksiä olio 'tuntee' mahdollisimman vähän muita olioita ja näiden luokkia olio käyttää mahdollisimman vähän muiden olioiden palveluja palvelujen käyttöön liittyvät sanomat ovat mahdollisimman yksinkertaisia (vrt. Kytkentä) Harri Laine 12/20

13 Suunnitteluohjeita postinkantaja kuljetaposti (posti, paikka) opettaja posti paikka omavahtimestari lähetä (posti, Paikka) vahtimestari postimies getpostimies( ) postinkantaja getpostimies () { return postimies; } lähetä(posti,paikka) { postinkantaja kantaja; kantaja = omavahtimestari.getpostimies; kantaja.kuljetaposti(posti,paikka); } Suunnitteluohjeita postinkantaja kuljetaposti (posti, paikka) opettaja posti paikka omavahtimestari lähetä (posti, paikka) postimies vahtimestari toimitaposti (posti, paikka) toimitaposti () { postimies.kuljetaposti(posti,paikka); } lähetä(posti,paikka) { omavahtimestari.toimitaposti(posti,paikka); } Tämä on parempi! Harri Laine 13/20

14 Suunnitteluohjeita opettaja vahtimestari postinkantaja vaihtoehto 1 getpostimies kuljetaposti vaihtoehto 2 toimitaposti kuljetaposti Suunnitteluohjeita Järjestelmän keskeisiä olioita ovat jo määrittelytasolta periytyvät oliot joiden tietoa järjestelmässä on tarkoitus säilyttää ja ylläpitää. (siis yleensä tietoolioit). Näille luokille voidaan perusoperaatioina määritellä yksinkertaiset operaatiot attribuuttien kysymiseksi ja attribuuttien arvojen asettamiseksi (getattribute, setattribute). Jos luokan oliolla on monia olomuotoja (tietokanta, keskusmuisti) näiden väliset muunnokset ovat välttämättömiä operaatioita. Jos näyttää siltä, että usein tarvitaan perusattribuuteista johdettua tietoa, tarjotaan nämä operaationa tai johdettuna attribuuttina. Harri Laine 14/20

15 Käyttötapauslähtöinen suunnittelu (Laine: Olioiden maihinnousu, luku 6.4, Suomen Atk-kustannus, 1997) Käyttötapauslähtöisessä suunnittelussa suunnittelu etenee käyttötapaus kerrallaan. Suunnittele kokonaisvaltaisesti käyttöliittymän perusratkaisu ikkunat, painikkeet, valikot, yms. Ratkaise eristetäänkö käyttöliittymä ja tietosisältöja tee tästä päätöksestä johtuvat perusratkaisut, esim. MVC Käyttötapauslähtöinen suunnittelu Käy läpi järjestelmän käyttötapaukset laadi käyttötapauskohtainen näkemys järjestelmän oliorakenteesta (vain ne luokat, jotka osallistuvat toimintaan) Käyttötapauskohtaisessa näkymässä kuvataan vain ne osat oliomallista, jotka ovat välttämättömiä käyttötapauksen kannalta. hahmottele käyttötapauksen läpivientiin liittyvä olioyhteistyö Koosta näkemyksistä kokonaisvaltainen järjestelmän oliorakenne (tätä voidaan tehdä sitä mukaa kun näkemyksiä valmistuu) Harri Laine 15/20

16 Käyttötapauslähtöinen suunnittelu Parantele oliorakennetta yleistä, erota yhteiset osat, yhtenäistä, sovella suunnittelumalleja Mukauta nakemykset ja olioyhteistyö parannettuun malliin Käyttötapaus esittää toiminnallisen vaatimuksen ts. tavoitteen : tehtävänä on miettiä miten toiminta saadaan aikaan olioiden avulla Käyttötapauksen läpivientimallit Mitä on tehtävä = tehtävä skenaariossa (tilannekuvauksessa) Miten käyttäjä toimii Miten järjestelmä reagoi karkealla tasolla täsmallisesti olioyhteistyönä Harri Laine 16/20

17 Käyttötapauksen läpivientimallit käyttötapauksen läpivientimalli taulukkona suoritustapa kuvaus tavasta, jolla tehtävä tehdään järjestelmän toiminta karkeahko kuvaus siitä, miten järjestelmä reagoi käyttäjän toimiin Käyttötapauksen läpivientimallit käyttäjätehtävä tehtävä asia Käyttäjätehtävä Valitse luokka (a) Suoritustapa 1. Vie kaavioikkunassa hiirikursori luokkasymbolin päälle 2. Näpäytä hiiren vasenta näppäintä Järjestelmän toiminta Järjestelmä tutkii oliko näpätyssä kohdassa luokkasymboli. Jos oli, niin vanha valintajoukko tyhjennetään ja valittua symbolia vastaava luokka lisätään valintajoukkoon. Valintajoukkoon kuuluvat näytetään ruudulla valittuina Harri Laine 17/20

18 Suunnittelun eteneminen Suunnittelussa järjestelmän toiminnan kuvausta tarkennetaan, pyrkimyksenä löytää olioiden yhteistyöketju toiminnan hoitamiseksi: Liikkeelle lähdetään käyttäjän toiminnan vastaanottavista olioista ja niiden luokista. Jacobssonin jaottelussa nämä ovat liittymäolioita, MVC:ssä näkymä- tai ohjainolioita. Liittymäoliolle määritellään käyttäjäoperaation vastaanottava(t) palvelu(t). Toiminta tarkennetaan toimenpiteiksi ja ehdoiksi, joiden vallitessa toimenpide suoritetaan. Suunnittelun eteneminen Kullekin toimenpiteelle valitaan suorittaja Tämä voi olla liittymäolio, siihen liitetty tieto-olio tai jokin ohjaus- tai apuolio. Oliot suorittavat toimenpiteitä omien vastuidensa mukaisesti. Jos suorittajalla ei vielä ole toimenpidettä vastaavaa palvelua (operaatiota), sille määritellään sellainen. kenelle palvelu pitäisi määritellä:» ensisijaisesti kohteelle = se, jonka tila muuttuu, jos kohteita on useita, onko joku näistä pääkohde, jakautuuko palvelu osiin suorittajaa valittaessa voidaan joutua määrittelemään uusi luokka, koska nykymallissa ei ole sopivaa. Harri Laine 18/20

19 Suunnittelun eteneminen Esim: hevosen satulointi hevonen.satuloi(satula)» jos ensisijaisesti hevosen tila muuttuu satula.kiinnity(hevonen)» jos ollaan ensijaisesti kiinnostuneita satuloiden tiloista (vapaana, käytössä) ratsastaja.satuloi(hevonen,satula)» ohjausolio hoitelee homman Suorittajia valittaessa sovelletaan hyviksi havaittuja suunittelumalleja (design pattern) Suunnittelun eteneminen Suorittajalla on oltava riittävästi tietoa palvelun suorittamiseksi. Lisätään tarvittaessa luokalle uusia ominaisuuksia tai palvelulle parametreja. Jos palvelulle lisättiin parametreja, varmistetaan, että palvelua käyttävät oliot ja palvelut kykenevät ne toimit-tamaan. Elleivät kykene, on suunnitelmaa iteroitava. Luokkaan voidaan myös liittää avustajia, joille voidaan delegoida osa toiminnasta. Olio voi käyttää vain tuntemiensa olioiden palveluja. Täten, jos toiminnon suorittamiseen tarvitaan avustajia, on määriteltävä, miten alkuperäinen olio tuntee nämä. Harri Laine 19/20

20 Suunnittelun eteneminen Tunteminen voi perustua: siihen, että avustava olio on yleisesti tunnettu (globaali), siihen, että avustaja ilmoitetaan avustuksen tarvitsijalle palvelua pyydettäessä (parametri) oliosta on tietorakenteiden avulla luotu yhteys avustavaan olioon. Avustusta määriteltäessä voidaan joutua määrittelemään olemassaoleville olioluokille uusia ominaisuuksia ja palveluja tai jopa uusia olioluokkia ja niille ominaisuuksia sekä palveluja. Myös uusien yhteyksien määrittely voi olla tarpeen. Oliorakenteet ja yhteistyö suunnitellaan samanaikaisesti Harri Laine 20/20

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1 Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development 2.12.2008 Harri Laine 1 Jacobson jakaa ohjelmiston oliot kolmeen tyyppiin liittymäolioiksi (interface objects, boundary objects)

Lisätiedot

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1 Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä

Lisätiedot

Ohjelmiston suunnittelu. Olioperustaiset menetelmät

Ohjelmiston suunnittelu. Olioperustaiset menetelmät Ohjelmiston suunnittelu Suunnittelun tavoite Suunnitteluperiaatteet Perinteiset suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset Suunnitteludokumentti, katselmus Erityisteemat: käyttöliittymät,

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1 Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa 14.11.2008 Harri Laine 1 Oliot ohjelmiston mallinnuksessa käyttötapaus käyttää Käyttämämme oliokeskeinen perusmalli ohjelmistojen

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

Lisätiedot

UML - unified modeling language

UML - unified modeling language UML - unified modeling language Lähtökohtana: Booch, Rumbaugh, Jacobsson Tavoitteena Unified Method - syntyykö? Kehittäjänä: Rational Inc. Standardointi: Object Management Group (OMG) - vaiheessa Lähteet:

Lisätiedot

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

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

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

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /

Lisätiedot

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Palveluperustaiset arkkitehtuurityylit

Palveluperustaiset arkkitehtuurityylit Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio 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ä:

Lisätiedot

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen kertausta Harri Laine 1 kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit

Lisätiedot

1. Tarkastellaan seuraavaa kaaviota

1. Tarkastellaan seuraavaa kaaviota HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS JOHDATUS SOVELLUSSUUNNITTELUUN (JSS) 19.12.2001 (H.Laine) 1. Tarkastellaan seuraavaa kaaviota Mitkä seuraavista väitteistä ovat kaavion mukaisia t.s.

Lisätiedot

UML- mallinnus: Tilakaavio

UML- mallinnus: Tilakaavio UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista

Lisätiedot

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

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus Luokkakaavion tarkoitus Järjestelmän tietosisällön kuvaaminen: tiedot ja niiden väliset kytkennät järjestelmän tiedot kuvaavat kohdealueiden ilmiöitä, joten luokkakaavion tulisi määritellä kohdealueen

Lisätiedot

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä Olio-ohjelmointi Johdanto suunnittelumalleihin Hyvin toimivan olio-ohjelmointiparadigmaa noudattavan ohjelman suunnitteleminen ei ole helppo tehtävä. On löydettävä sopiva luokkarakenne kuvaamaan ratkaistavaa

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2010 582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5

Lisätiedot

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

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus Luokkakaavion tarkoitus Järjestelmän tietosisällön kuvaaminen tiedot ja niiden väliset kytkennät järjestelmän tiedot kuvaavat kohdealueiden ilmiöitä, joten luokkakaavion tulisi määrittellä kohdealueen

Lisätiedot

Lähestymistavat - toiminnallinen

Lähestymistavat - toiminnallinen Lähestymistavat - toiminnallinen Systeemiteoreettinen lähestymistapa INPUT PROCESS OUTPUT systeemi on prosessi, joka saa syötteitä ja tuottaa tuloksia systeemi voidaa jakaa osasysteemeihin tietojärjestelmissä

Lisätiedot

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

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet 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

Lisätiedot

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet. Tietosisällön kuvaaminen Toteutusvälineistä riippumaton tietosisällön kuvaus Entity-Relationship malliperhe Lähtökohta: Chenin malli vuodelta 1976 Useita muunnelmia, pieniä eroja peruskäsitteissä ja erityisesti

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse

Lisätiedot

Nimi: Henkilötunnus: {id} {+id}

Nimi: Henkilötunnus: {id} {+id} TEHTÄVÄ : Eräillä kursseilla on kertauskysymyksiä, joihin opiskelijat vastaavat webin kautta. Kurssilla voi olla useita kysymyssarjoja, joihin voi kuulua monta kysymystä. Kysymyssarjalla on kurssikohtainen

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun Harri Laine Johdatus sovellussuunnitteluun Osa 3 Helsingin yliopisto Tietojenkäsittelytieteen laitos 2000 Sisältö: 5. OLIOIDEN YHTEISTYÖ JA PALVELUIDEN MÄÄRITTELY... 1 5.1 SEKVENSSIKAAVIO... 1 5.2 YHTEISTYÖRAKENNEKAAVIO...

Lisätiedot

Olioiden yhteistyön mallintaminen

Olioiden yhteistyön mallintaminen Olioiden yhteistyön mallintaminen Luokkakaaviosta käy hyvin esille ohjelman rakenne minkälaisia luokkia on olemassa miten luokat liittyvät toisiinsa Entä ohjelman toiminta? Luokkakaaviossa voi olla metodien

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

Lisätiedot

CQRS, -ES, PACS, DICOM, WTF?

CQRS, -ES, PACS, DICOM, WTF? CQRS, -ES, PACS, DICOM, WTF? 27.2.2014 Ajankohtaisuuksia harjoitustyöhön liittyen http://www.hs.fi/terveys/tutkimus+veri+paljastaa+riskin+kuolla+seur aavan+viiden+vuoden+aikana/a1393301682104 Vähän vanhempia

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

Lisätiedot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen FiSMA 1.1 Monikerrosarkkitehtuuri 1 (6) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen

Lisätiedot

5. Järjestelmämallit. Mallinnus

5. Järjestelmämallit. Mallinnus 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

OSAII: Käytännön rutiinit. Ohjelmiston suunnittelu

OSAII: Käytännön rutiinit. Ohjelmiston suunnittelu OSAII: Käytännön rutiinit Projektin hallinta Ohjelmiston vaatimusten määrittely Ohjelmiston suunnittelu Ohjelmointi Testaus ja laadunvarmistus Ylläpito Ohjelmiston suunnittelu Ohjelmiston suunnittelun

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

9 Edistynyt PHP-ohjelmointi

9 Edistynyt PHP-ohjelmointi 9 Edistynyt PHP-ohjelmointi Luentokerran tavoitteena on käydä läpi joukko sellaisia PHP-sovelluksen toteuttamiseen liittyviä tekijöitä, joiden avulla voidaan parantaa verkkopalvelun totetustyön tuottavuutta

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio. 21.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio. 21.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio 21.11.2008 Harri Laine 1 Joidenkin järjestelmien sisältömallissa on erotettavissa luokkia, joiden ilmentymien käyttäytymisen kuvaaminen, kirjaus

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja

Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja 582101 - Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen FiSMA 1.1 Monikerrosarkkitehtuuri 1 (7) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen

Lisätiedot

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

Lisätiedot

Analyysi on tulkkaamista

Analyysi on tulkkaamista Analyysi on tulkkaamista Petri: Pitää osata menetelmiä, arkkitehtuureja, suunnittelumalleja, eli miten [ohjelmistoja] ylipäänsä kehitetään. Pitää olla viestintätaitoja. Perttu: Pitää ymmärtää miten projekti

Lisätiedot

Yhteistoimintakaavio (Esimerkki)

Yhteistoimintakaavio (Esimerkki) Yhteistoimintakaavio (Esimerkki) Käyttötapaus: Vuokraa ajoneuvo Yleiskuvaus: Käyttäjä vuokraa ajoneuvon määräajaksi. Esiehdot: Käyttäjä on hakenut vuokrausaikana vapaat ajoneuvot näytölle. Aktori: Asiakas

Lisätiedot

Oliosuunnittelu. Oliosuunnittelu

Oliosuunnittelu. Oliosuunnittelu Oliosuunnittelu Perinnän ja dynaamisen sidonnan hyödyntäminen Tarkastellaan ohjelmaa, jonka tehtävänä on tuottaa erilaisista kuvioista muodostuva kuvaesitys Ratkaisu 1: perinteinen malli - ei perintää

Lisätiedot

Ohjelmiston toteutussuunnitelma

Ohjelmiston toteutussuunnitelma Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,

Lisätiedot

Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun Harri Laine Johdatus sovellussuunnitteluun Osa 3 Helsingin yliopisto Tietojenkäsittelytieteen laitos 2002 Sisältö: 5. OLIOIDEN YHTEISTYÖ JA PALVELUIDEN MÄÄRITTELY...1 5.1 SEKVENSSIKAAVIO...1 5.1 YHTEISTYÖRAKENNEKAAVIO...6

Lisätiedot

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

Testaaminen ohjelmiston kehitysprosessin aikana Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Luento 3 Tietokannan tietosisällön suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät Ohjelmistotekniikan menetelmät Luokat ja oliot Luokka- ja oliokaavio 7.11.2008 Harri Laine 1 Luokat ja oliot käyttötapaus Käyttötapaus käyttää järjestelmän palveluja käyttää Käytettävät palvelut saadaan

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät Ohjelmistotekniikan menetelmät Luokat ja oliot Luokka- ja oliokaavio 7.11.2008 Harri Laine 1 Luokat ja oliot käyttötapaus Käyttötapaus käyttää järjestelmän palveluja käyttää Käytettävät palvelut saadaan

Lisätiedot

Ohjelmistotekniikan menetelmät, suunnittelumalleja

Ohjelmistotekniikan menetelmät, suunnittelumalleja 582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmistojen mallintaminen, sekvenssikaaviot 582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden

Lisätiedot

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented) DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio 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ä:

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän

Lisätiedot

Ohjelmistojen mallintaminen, kertausta

Ohjelmistojen mallintaminen, kertausta 582104 Ohjelmistojen mallintaminen, kertausta 1 Kertausluennon asiat Kysymyksiä? Kurssin keskeisin asiasisältö Koetehtävät tehtävätyypit esimerkkitehtäviä ja -ratkaisuja ja vielä kysymyksiä? 2 Kysymyksiä

Lisätiedot

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja

Lisätiedot

TOIMINNALLINEN MÄÄRITTELY MS

TOIMINNALLINEN MÄÄRITTELY MS TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa

Lisätiedot

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

Lisätiedot

Luokka- ja oliokaaviot

Luokka- ja oliokaaviot Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka

Lisätiedot

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely Tietojärjestelmät tarjoavat tietoa sekä käyttäjille että epäsuorasti muille tahoille. Tahoja, jotka ovat järjestelmän ulkopuolella, mutta kuitenkin palvelujen kautta kytkeytyneitä järjestelmään, kutsutaan

Lisätiedot

Tuotemallipohjaisen toimintaprosessin mallintaminen

Tuotemallipohjaisen toimintaprosessin mallintaminen Tuotemallipohjaisen toimintaprosessin mallintaminen Miksi? Miten? Mitä? Mitä sitten? Kari Karstila Eurostepsys Oy kari.karstila@eurostep.com www.eurostep.com Pro IT-seminaari, 2004-01 01-1919 PROSESSIMALLINTAMISEN

Lisätiedot

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta

Lisätiedot

Graafinen käyttöliittymä, osa 1

Graafinen käyttöliittymä, osa 1 Graafinen käyttöliittymä, osa 1 Idea, MVC-malli ja ensimmäinen ohjelma Graafinen käyttöliittymä Ensimmäisen kerran tavoitteena on oppia graafisen ohjelman perusidea sekä oppia laatimaan esimerkin mukaan

Lisätiedot

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

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

Lisätiedot

Piirilevyohjelma ARES

Piirilevyohjelma ARES Piirilevyohjelma ARES Ohjelman käyttöliittymä on seuraavanlainen: Valikot Yleisikkuna Työkaluvalikko Valintaruutu C1 yläkupari, C10 alakupari Pikanäppäimet: F1 = Ohje F2-F4 = Snap(grid) tuuman tuhannesosia.

Lisätiedot

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1 Ohjelmistojen mallintaminen Tietovuokaaviot 3.11.2008 Harri Laine 1 t Data flow diagrams Pohjana systeemiteoreettinen järjestelmämalli Input system output Järjestelmän tehtävä on muokata lähtötiedoista

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman arkkitehtuurista. 1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä

Lisätiedot

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,

Lisätiedot

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen Unified Modeling Language (UML) 582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..

Lisätiedot

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

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , ) Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss. 121-133, 135 141) Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Sisältö Sekvenssikaaviot ja tilakaaviot osana UML:ia Sekvenssikaaviot

Lisätiedot

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä Maria Vinter 2 Taustaa Diplomityö: Tietomallinnuksen hyödyntäminen siltojen ylläpidossa, valmis 09/2017 https://julkaisut.liikennevirasto.fi/pdf8/opin_2017-03_tietomallinnuksen_hyodyntaminen_web.pdf

Lisätiedot