Suunnittelumallit. OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Oliosuuntautunut analyysi ja -suunnittelu 27. joulukuuta 2003

Koko: px
Aloita esitys sivulta:

Download "Suunnittelumallit. OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Oliosuuntautunut analyysi ja -suunnittelu 27. joulukuuta 2003"

Transkriptio

1 Suunnittelumallit OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Oliosuuntautunut analyysi ja -suunnittelu 27. joulukuuta 2003 Mikael Kujanpää LuTK / TOL -03

2 Tiivistelmä Suunnittelumallit ovat tärkeä työkalu nykypäivän oliopohjaisessa ohjelmistotuotannossa. Mallit tarjoavat tiettyihin ongelmiin valmiit, ajankuluessa hyviksi todetut ratkaisut. Mallien avulla jokaisen ongelman kohdalla suunnittelijoiden ei tarvitse keksiä pyörää uudelleen. Suunnittelumallien avulla voidaan parantaa ohjelmiston ylläpidettävyyttä, kustannustehokkuutta ja vähentää loogisten ohjelmointivirheiden määrää. Toisaalta ohjelmistomalleja oikeaoppisesti sovellettuna saavutetaan ylläpidettävämpi ja rakenteellisesti looginen, hyvin toimiva ohjelmisto. Antisuunnittelumallit ovat malleja, joiden avulla voidaan etsiä huonoja, epätoivottavia ohjelmistosuunnitteluratkaisuja. Olio-ohjelmoinnin kultakausi alkoi 1980-luvulta, alettaessa esittää graafisten käyttöliittymien osia olioiden avulla. Vaikka oliot ovatkin varsin luonnollinen tapa mallintaa ohjelmistoja ja niiden komponentteja, on niidenkin hyödyntämisessä omat ongelmansa. Näihin ongelmiin suunnittelumallit ovat syntyneet vastaukseksi. Suunnittelumallit voidaan nähdä myös hieman toisenlaisessa merkityksessä: ne ovat kokeneiden ohjelmistosuunnittelijoiden ja -ohjelmoijien laatimia dokumentteja, jotka sinällään sisältävät arvokasta informaatiota erilaisten ongelmien ratkaisemiseksi.

3 Sisältö Tiivistelmä Sisältö 1 Johdanto 2 2 Aiheen kartoitus Suunnittelumallien historiaa Mitä ovat suunnittelumallit? Antisuunnittelumallit Suunnittelumallien luokittelu Esimerkki: abstrakti tehdas Analyysi Minkä verran eri suunnittelumalleja käytetään ja miltä tulevaisuus näyttää? Suunnittelumallien hyviä ja huonoja puolia Yhteenveto 10 Viitteet

4 1 Johdanto Tarkastelen tässä esseessäni suunnittelumalleja. Mitä ne ovat, miksi niitä on ja miten niitä käytetään. Teksti on kuitenkin vain pintapuolinen näkemys aihepiiristä, ei mikään kaiken kattava selvitys. En esittele käytännössä kuin yhden suunnittelumallin, abstraktin tehtaan. Tämän esseen tarkoitus ei ole olla opas eri suunnittelumalleista, eikä esseen pituudeksi asetettu raja antaisi sille myötenkään. Yritän siis keskittyä tekstissäni enemmän suunnittelumalleihin yleensä, enkä kasvattaa sivumäärää mekaanisella, eri mallien esittelyllä. Tämän jälkeen analysoin yleisellä tasolla suunnittelumallien tarkoitusta, sekä hyötyjä ja haittoja. Tarkastelen aihetta etenkin suunnittelijan näkökulmasta. Toisaalta mallit ovat nimenomaan tarkoitettukin suunnittelijoille, joten loppukäyttäjälle näkyviä ominaisuuksia saavutetaan suunnittelumallien avulla varsin vähän jollei sellaiseksi lasketa ohjelmiston mahdollista yleistä laadukkuutta. Suunnittelumallit ovat varsin paljon käytetty menetelmä tietynlaisten ongelmien ratkaisemiseksi. Pohjimmiltaan suunnittelumallit ovat ainoastaan kokoelma hyviksi havaittuja sääntöjä ja menetelmiä. Suunnittelumallit eivät ole valmista koodia. 2

5 2 Aiheen kartoitus Käsittelen tässä luvussa suunnittelumallien historiaa, millaisia ne ovat ja miten niitä käytetään. Esimerkinomaisesti esittelen yhden suunnittelumallin yksityiskohtaisesti, abstraktin tehtaan. 2.1 Suunnittelumallien historiaa Suunnittelumallien idea tulee ehkä hiukan yllättäen perinteisestä arkkitehtien maailmasta. Arkkitehti Christopher Alexander suunnitteli järjestelmän, jolle monet nykyajan oliosuunnittelumallit perustuvat. Hän ja hänen kollegansa kehittelivät kahdenkymmenen vuoden ajan suunnittelumalleja arkkitehtuuriin Berkleyssä, Kaliforniassa. Ward Cunningham ja Kent Beck lukivat Alexanderin kirjoittamia kirjoja, ja innostuivat kokeilemaan ideoita myös ohjelmistokehityksessä. He kehittivät ja toteuttivat smalltalk -kieleen viisi suunnittelimallia, jotka käsittelivät graafisen käyttöliittymän suunnittelua: Window per Task, Few Panels, Standard Panels, Nouns and Verbs ja Short menus. [5] Erich Gamma kirjoitti väitöskirjan 1991 suunnittelumallien käytöstä ohjelmistokehityksessä. Valitettavasti kirja kirjoitettiin saksaksi, joten se ei saanut ansaitsemaansa arvostusta keski-euroopan ulkopuolella. Gamma oli kuitenkin neljä vuotta myöhemmin mukana kirjoittamassa yhdessä Richard Helmin, Ralph Johnssonin ja John Vlissidesin kanssa yhtä tunnetuimmista suunnittelumalleja käsittelevistä kirjoista: Design Patterns Elements of Reusable Object-Oriented Software [1]. Kyseisen kirjan jälkeen on kirjoitettu monia muita vastaavanlaisia teoksia, mutta useimmat niistä pohjaavat ajatuksensa enemmän tai vähemmän suoraan Gamman kirjaan. 2.2 Mitä ovat suunnittelumallit? Suunnittelumallit ovat kokoelma erilaisia menetelmiä tietyntyyppisten ongelmien ratkaisemiseksi. Mallit eivät ole valmista koodia, vaan ne ovat ainoastaan ratkaisukuvauksia. Näin ollen niitä voidaan ja niitä tuleekin hyödyntää suunnitteluvaiheessa ainoastaan. Mallit ovat syntyneet ajan saatossa tavallaan itsestään, mutta niistä on laadittu yleiset säännönalaisuudet jottei jokaisen ohjelmiston kohdalla tarvitsisi aina keksiä pyörää uudelleen. [4] Suunnittelumallien avulla ei synny laadukasta ohjelmistoa itsestään. Malleja voidaan soveltaa vain tietyissä, tarkasti rajatuissa tapauksissa. Silloinkin toteutus loppuviimein ratkaisee, miten ohjelmisto toimii suunnittelumalli ei siis automaattisesti luo laadukasta ohjelmistoa. Ei ole myöskään epätavallista, että johonkin ongelmaan ei löydy ollenkaan valmista suunnittelumallia. 3

6 Mirja Immonen on määritellyt suunnitellumallin näin: [3] Suunnittelumalli nimeää, tarjoaa taustatietoa ja selittää käytännössä hyväksi todetun tavan ratkaista jokin järjestelmissä usein esiintyvä arkkitehtuuri- tai suunnitteluongelma. Ratkaisu on yleinen kokoelma olioita ja luokkia, joita sovelletaan ja muokataan ratkaisemaan ongelma erilaisissa käytännön tilanteissa. Raine Lehto [5] on poiminut Desing Patterns -kirjasta [1] seuraavat neljä suunnittelumalliin kuuluvaa osaa. Osat ovat periaatteessa toisenlainen määritelmä suunnittelumallille, joskin näiden ohjeiden perusteella voi paremminkin tutkia voidaanko jotain sääntökokoelmaa kutsua suunnittelumalliksi. 1. Mallin nimi kuvaa kuvaa muutamalla sanalla ongelmaa, ratkaisua ja seurauksia. Hyvin valittu nimi helpottaa mallin hyödyntämistä jatkossa. 2. Ongelma. Kappaleessa kuvaillaan kohteena oleva ongelma, sen tyypillisiä ilmenemisalueita sekä sen perinteisiä ratkaisutapoja. Joskus ongelma voi sisältää listan ehtoja, joiden tulee täyttyä ennenkuin on järkevää käyttää mallia. 3. Ratkaisu. Kappale kuvailee ratkaisun rakenteen jollakin yleisellä esitystavalla, yleensä olioperustaisin menetelmin sanallisesti tarkennettuina UMLkaavioina. 4. Seuraukset. Kappaleessa analysoidaan mallin hyviä ja huonoja puolia, sekä esitellään tilanteita, joihin malli ei sovellu. Lasse Harjumaa on listannut seuraavat asiat huomioon otettavaksi, ennenkuin suunnittelumallia tulisi alkaa hyväksikäyttämään: [2] 1. Varmista, että malli on oikea kyseiseen tarkoitukseen. 2. Varmista, että ymmärrät mallin. 3. Hyödynnä esimerkkikoodia. 4. Määrittele vaikutuksen alaiset luokat. 5. Toteuta. Nämä ohjeet ovat eräänlainen muistilista suunnittelijalle, jotta hän varmasti on hyödyntämässä ongelmaansa siihen tarkoitettua suunnittelumallia. 4

7 2.2.1 Antisuunnittelumallit Mielenkiintoinen lähestymistapa suunnittelumalleihin ovat niin sanotut antisuunnittelumallit. Mallien ideana on esittää erilaisia ei-toivottuja malleja. Vaikka ajatus kuulostaakin äkkiseltään typerältä, on näistä malleista käytännössä paljonkin hyötyä koska niiden avulla voidaan löytää huonoja ratkaisumalleja ohjelmistoista. Mallit ovat luenteeltaan varsin yleismaailmallisia, etenkin perinteisiin suunnittelumalleihin verrattuna. Esimerkki antisuunnittelumallista voisi olla vaikkapa sovelluksen yleinen liian kookkaaksi kasvanut ohjausluokka, joka sisältää suuren määrän toisiinsa liittymättömiä attribuutteja ja operaatioita. [4] 2.3 Suunnittelumallien luokittelu Tämän kappaleen ajatukset ovat lainattu lähes suoraan Mirja Immosen [3] tekemästä erikoistyöstä. Suunnittelumallit luokitellaan tavallisesti kahteen luokkaan: 1. Mitä suunnittelumalli tekee, eli käyttötarkoitus. 2. Onko suunnittelumalli tarkoitettu käytettäväksi luokkien vai olioiden kanssa? Käyttötarkoituksen mukaan suunnittelumallit voidaan luokitella kolmeen luokkaan: 1. Toiminnalliset- tai käyttäytymismallit 2. Luontimallit 3. Rakennemallit Ensimmäiseen ryhmään luetaan luokkamallit, jotka käyttävät perintää jakamaan eri toiminnot eri luokkiin. Samaan kategoriaan kuuluvat myös olioiden yhdistämiseen tähtäävät oliomallit. Toiseen ryhmään luetaan muun muassa mallit, jotka auttavat ratkaisemaan miten luodaan olioita ympäristössä, jossa liittymänä on joukko tapauskohtaisia abstrakteja luokkia tai kuinka varmistetaan, että luokalla on vain yksi ilmentymä joka on kaikkien muiden luokkien saatavilla. Kolmanteen ryhmään katsotaan kuuluvaksi mallit, jotka kuvaavat olioiden välisiä suhteita, ja kuinka olioita yhdistelemällä saadaan uusia toimintoja. Ratkaisumallit auttavat suurten järjestelmien yhteydessä muistinkäytön optimointiin ja tehokkuuden maksimointiin. 5

8 2.4 Esimerkki: abstrakti tehdas Esittelen tässä esimerkkinä erään yleisesti käytössä olevan suunnittelumallin. Lähteenä olen käyttänyt tässä kappaleessa erittäin laajasti Kai Koskimiehen Oliokirjaa [4]. Tarkoitus: Mallin avulla voidaan luoda oliokokoelmia, vaikka ei tunnettaisi näiden olioiden konkreettisia perusluokkia. Motivointi: Oletetaan, että täytyy mallintaa ajoneuvovuokraamo. Kyseisestä liike myös tarvittaessa myy ajokkeja. Abstraktin tehtaan avulla voidaan suunnitella luokkarakenne, jossa on yleinen Ajoneuvo-luokka. Kyseinen luokka on abstrakti luokka, jossa on määritelty ainoastaan rajapinta jonka Ajoneuvoluokan perivät oliot toteuttavat. Rajapinta voisi määritellä esimerkiksi metodit Ajoneuvo.vuokraa(), Ajoneuvo.myy() ja niin edelleen. Tällöin yksittäinen olio voi olla mikä tahansa olio joka on luotu Vene, Polkupyörä, Henkilöauto tai muusta vastaavasta luokasta, ja silti sitä voidaan käsitellä yleisen Ajoneuvo-rajapinnan kautta. Soveltuvuus: Mallia voidaan käyttää silloin, kun: järjestelmän tulisi olla riippumaton siitä, miten sen tuotteita luodaan, kootaan ja esitetään järjestelmän tulisi olla konfiguroitavissa tietylle tuoteperheelle järjestelmän tulisi taata, että tietyn tuoteperheen jäseniä käytetään yhdessä halutaan esittää erilaiset järjestelmän tuotteet luokkakirjastona, ja halutaan paljastaa vain niiden abstraktit rajapinnat, ei toteutustapaa Rakenne: Abstraktin tehtaan rakenne on esitettynä kuvassa 1 Osallistujat: AbstractFactory: määrittelee konkreettisten tuoteolioiden luontioperaatioiden kutsumuodon ConcreteFactory: toteuttaa konkreettisten tuoteolioiden luontioperaatiot AbstractProduct: määrittelee tietyntyyppisen tuoteolion operaatioiden kutsumuodon ConcreteProduct: määrittelee tuoteolion ja toteuttaa AbstractProductluokassa annetut operaatiot Client: käyttää AbstractFactory- ja AbstractProduct-luokkien määrittelemää rajapintaa 6

9 Seuraukset: Mallin avulla voidaan eristää olioiden konkreettiset luokat asiakkaasta Mallin avulla konkreettiset luokat voidaan vaihtaa helposti toisiksi Malli edistää luokkien standardointia yhteisen rajapinnan mukaisiksi Malli ei tue uusien tuotteiden lisäämistä Kuva 1: Abstraktin tehtaan rakenne 3 Analyysi Tässä luvussa analysoin hiukan suunnittelumallien etuja ja haittoja. Pohdin myös lyhyesti suunnittelumallien tulevaisuutta. 3.1 Minkä verran eri suunnittelumalleja käytetään ja miltä tulevaisuus näyttää? Olio-ohjelmoinnin yleistyttyä 1980-luvulla lähinnä graafisten käyttöliittymien myötä myös suunnittelumalleille syntyi luontainen tarve. Graafisissa käyttöliittymissä kuvataan erilaisia käyttöliittymän osia esimerkiksi painonappeja, tekstikenttiä, listoja ynnä muita olioiden avulla. Koska GUI 1 :t ovat loppujen lopuksi varsin samanlaisia ympäristöstä riippumatta, syntyivät suunnittelumallien kaltaiset yleisohjeet varsin luontevasti. Graafiset käyttöliittymät olivat siis yksi tekijä jotka edesauttoivat suunnittelumallien syntymistä. Tältä pohjalta ei liene kovinkaan erikoista, että myös nykyään suunnittelumalleja hyödynnetään paljon etenkin käyttöliittymien yhteydessä. 1 Graphical User Interface 7

10 Koska suunnittelumallit ovat kieli- ja toteutusriippumattomia, kykenevät ne myös elämään ajan mukana vaikka erilaisia ohjelmointikieliä syntyykin. Tosin mallit ovat käytännössä myös nivoutuneet tiiviisti olio-ohjelmointiin, joten mikäli olioiden tilalle kehittyy jotain uutta ja mullistavaa, voi hyvinkin käydä niin että suunnittelumallit katoavat tosin huomattavasti todennäköisempää on, että oliomaiset suunnittelumallit jäävät käytöstä pois, ja niiden tilalle syntyy joitain uusia kyseistä tekniikkaa hyödyntäviä malleja. Olio-ohjelmointikielet, kuten C++ ja Java, ovat kuitenkin tällä hetkellä niin vahvasti käytössä, että suunnittelumalleille näyttää olevan vain entistä enemmän tilausta. Niiden merkitys tulee myös epäilemättä korostumaan tulevaisuudessa. Javan luokkakirjastossa on myös lukemattomia Design Patterns -kirjan malleja hyödyntäviä luokkakirjastoja [5]. Suunnittelumalleja voi kehittää kuka tahansa, jopa tyhjästä. Käytännössä vain tämä on erittäin vaikeata, koska mallit ovat yleensä itsestään syntyneet monien toisistaan riippumattomien ongelmien ratkaisujen yhteisenä kuvauksena. Oman mallin kehittäminen olisi siis huomattavasti helpompaa tutkimalla tietyntyyppisten ongelmien ratkaisuja eri ohjelmistoista, ja laatimalla näistä mahdollisimman yleiskäyttöisen kuvauksen. 3.2 Suunnittelumallien hyviä ja huonoja puolia Suunnittelumalleilla saavutetaan merkittäviä säästöjä resursseissa. Samaa ongelmaa ei tarvitse ratkaista joka kerta uudelleen, vaan voidaan tyytyä yleiskäyttöisiin, hyviksi havaittuihin menetelmiin. Tämä nopeuttaa ohjelmistokehitystä, ja useimmiten myöskin mahdollistaa laadukkaampien ja ylläpidettävimpien ohjelmistojen tuottamisen. Lisäksi suunnittelumallien avulla voidaan välttää joitakin ohjelmointivirheitä. Suunnittelumallien avulla myös komponenttien uudelleenkäytettävyys helpottuu. Vaikka olio-ohjelmointi paradigmana ylipäätään tukee komponenttien uudelleenkäytettävyyttä, on kokemattoman suunnittelijan vaikea suunnitella ohjelmistoa joka mukautuu helposti erilaisiin käyttötilanteisiin. Tässä suunnittelumallit voivat olla suurena apuna, koska niiden avulla ohjelmiston yleisestä mallista saattaa syntyä hyvinkin yleiskäyttöinen ja kohtuullisen vähällä vaivalla hyödynnettävissä oleva kokonaisuus. Suunnittelumallien eräänlaisena haittana voidaan pitää sitä, että mikäli niitä ei ole ennen hyödynnetty, täytyy henkilöstön opetella niiden käyttö. Tämä voi olla aikaavievää, ja vaatii koulutusta tai itseopiskelua. Suunnittelumalleja voi myös tahattomasti väärinkäyttää, esimerkiksi valitsemalla väärän mallin. Pienessä projektissa tätä ei välttämättä edes huomaa eikä se ehkä haittaakaan, mutta suuressa projektissa virhe voidaan havaita vasta myöhään, jolloin viikkojen työ voi mennä hukkaan 8

11 tai joudutaan tehdä purkkaliimakorjaus, joka todennäköisesti on tie vielä pahempiin vaikeuksiin. On siis erittäin tärkeätä käyttää riittävästi aikaa oikean mallin etsimiseen. Suunnittelumallit eivät myöskään ratkaise jokaista vastaan tulevaa ohjelmistosuunnitteluongelmaa; siksi kaikkeen ei kannata yrittää edes etsiä ratkaisua suunnittelumalleista. Tosin antisuunnittelumalleista voi olla näissäkin tapauksissa hyötyä. Toisenlainen ongelma suunnittelumalleista voi syntyä silloin, jos niiden käyttö muodostuu itsetarkoitukseksi. Kokematon suunnittelija saattaa erehtyä luulemaan, että ohjelmistosta syntyy sitä parempi mitä useampaa suunnittelumallia on hyödynnetty. Näinhän ei missään nimessä ole, vaan jokaista mallia tulisi käyttää ainoastaan silloin kun projekti sitä edellyttää. Mallit ovat ohjelmistoja varten, ei toisinpäin. 9

12 4 Yhteenveto Suunnittelumallien avulla voidaan ratkoa monia ohjelmistosuunnitteluun liittyviä ongelmia. Nykyään erilaisia malleja on olemassa hyvin paljon, joten jotakuinkin kaikkiin yleisiin ongelmiin löytynee jo valmis ratkaisumalli. Mallien huolellinen käyttö auttaa luomaan laadukkaamman ohjelmiston nopeammin. Mallia tarkasti seuraamalla myös joitakin rakenteellisia ongelmia on mahdollista välttää. Toisaalta suunnittelumallien käyttöä täytyy opiskella, ja niitä voi myös etenkin kokematon suunnittelija käyttää vahingossa myös väärin. Suunnittelumallit ovat tarkoitettu kuitenkin etupäässä kokemattomille suunnittelijoille ja ohjelmoijille. Suunnittelumallit ovat tiettyjen ongelmien hyviksi havaittuja ratkaisumenetelmiä, joista on koottu ajan saatossa yleiset ratkaisuohjeet, suunnittelumallit. 10

13 Viitteet [1] E. Gamma. Desing Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley, [2] Lasse Harjumaa. Luentomateriaali: olio-ohjelmointi. Oulun yliopisto, [3] Mirja Immonen. Erikoistyö: suunnittelumallit. Kuopion yliopisto, tietojenkäsittelytieteen ja sovelletun matematiikan laitos, Teho/Suunnittelumallit.pdf, [4] Kai Koskimies. Oliokirja. Satku - Kauppakaari, Gummerus kirjapaino, Jyväskylä, [5] Reijo Lehto. Seminaariesitelmän alustus: olioarkkitehtuurit. Helsingin yliopisto, tietojenkäsittelytieteen laitos, rmelehto/olioarkkiteh tuurit/esitelma.html,

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

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2008 Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen

Lisätiedot

http://www.enteract.com/~bradapp/docs/patterns-intro.html http://www.hillside.net/patterns/

http://www.enteract.com/~bradapp/docs/patterns-intro.html http://www.hillside.net/patterns/ 5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki: Rekursiokooste Antisuunnittelumallit Suunnittelumallit ja UML Mallikielet Suunnittelumallit

Lisätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

2. Olio-ohjelmoinista lyhyesti 2.1 2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin

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

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

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

Olio-ohjelmointi Johdanto olio-ohjelmointiin

Olio-ohjelmointi Johdanto olio-ohjelmointiin Olio-ohjelmointi Johdanto olio-ohjelmointiin Ohjelmistoa kehitettäessä voidaan tunnistaa ainakin kaksi abstraktiota: prosessiabstraktio ja dataabstraktio. Prosessiabstraktio huomattiin jo varhain, koska

Lisätiedot

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistoarkkitehtuurit. Syksy 2007 Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1 Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto 2 Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien

Lisätiedot

Suunnittelumallien käyttö ohjelmistosuunnittelussa

Suunnittelumallien käyttö ohjelmistosuunnittelussa Suunnittelumallien käyttö ohjelmistosuunnittelussa Mika Rantakeisu Rovaniemen ammattikorkeakoulu Avoin ammattikorkeakoulu mika.rantakeisu@edu.ramk.fi Tiivistelmä Tämä on selvitys suunnittelumallien käytöstä

Lisätiedot

Software product lines

Software product lines Thomas Gustafsson, Henrik Heikkilä Software product lines Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Asiantuntijateksti 17.11.2013 Sisällys 1 Johdanto 1 2 Software product

Lisätiedot

Kertaus: yleistys-erikoistus ja perintä

Kertaus: yleistys-erikoistus ja perintä Kertaus: yleistys-erikoistus ja perintä Nauta, Lehmä ja Kuttu ovat Kotieläimiä, Kotieläimet Eläimiä Kotieläimillä (siis myös Naudoilla, Lehmillä ja Kutuilla) on Omistaja Kuttu ja Lehmä toteuttavat rajapinnan

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 15. maaliskuuta 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

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

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä

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

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

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

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

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter Olio-ohjelmointi Suunnittelumallit Adapter ja Composite Rakennemalleissa päähuomio kohdistetaan siihen, miten luokkia ja olioita yhdistellään muodostamaan laajempia rakenteita. Rakenteelliset luokkamallit

Lisätiedot

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Seuraavaksi tarjolla: Otekn-asiaa vähän pintaa syvemmältä Virtuaalifunktiot ja erikoistaminen, olioiden kopiointi ja elinaika

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

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT KOULUTUKSEN KOHDERYHMÄ SISÄLTÖ Koulutuksen tavoitteena on antaa opiskelijalle valmiudet uusien tietoteknisten menetelmien ja välineiden hyödyntämiseen.

Lisätiedot

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014. Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014. Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0 KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014 Käyttäjätutkimus ja käsitteellinen suunnittelu Järjestelmän nimi versio 1.0 Jakelu: Tulostettu: 201543 Samuli Hirvonen samuli.hirvonen@student.tut.fi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole.

3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole. 1 Unelma-asiakas Ohjeet tehtävän tekemiseen 1. Ota ja varaa itsellesi omaa aikaa. Mene esimerkiksi kahvilaan yksin istumaan, ota mukaasi nämä tehtävät, muistivihko ja kynä tai kannettava tietokone. Varaa

Lisätiedot

Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/

Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/ Koodaamme uutta todellisuutta FM Maarit Savolainen 19.1.2017 https://blog.edu.turku.fi/matikkaajakoodausta/ Mitä on koodaaminen? Koodaus on puhetta tietokoneille. Koodaus on käskyjen antamista tietokoneelle.

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

E-kirjan kirjoittaminen

E-kirjan kirjoittaminen 1 E-kirjan kirjoittaminen Ohjeet e-kirjan kirjoittamiseen Tämän ohjeistuksen tavoitteena on auttaa sinua luomaan yksinkertainen e-kirja (pdftiedosto) asiakkaallesi. Kirja näyttää hänelle kuinka hyvin ymmärrät

Lisätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

Lisätiedot

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

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

19/20: Ikkuna olio-ohjelmoinnin maailmaan

19/20: Ikkuna olio-ohjelmoinnin maailmaan Ohjelmointi 1 / syksy 2007 19/20: Ikkuna olio-ohjelmoinnin maailmaan Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! eli... Hyvä kaava sanoo enemmän kuin,... tuhat riviä koodia!... sata riviä tekstiä!... kymmenen diagrammia! YLEISTÄ FORMAALEISTA

Lisätiedot

JavaBeans Components

JavaBeans Components JavaBeans Components OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Software Architectures 6. helmikuuta 2004 Mikael Kujanpää mahead@ee.oulu.fi LuTK / TOL -03 Tiivistelmä Ohjelmistokomponentit ovat

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

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt S11-04 Kompaktikamerat stereokamerajärjestelmässä Projektisuunnitelma Ari-Matti Reinsalo Anssi Niemi 28.1.2011 Projektityön tavoite Projektityössä

Lisätiedot

S11-09 Control System for an. Autonomous Household Robot Platform

S11-09 Control System for an. Autonomous Household Robot Platform S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

Lisätiedot

KUINKA KIRJOITAT E-KIRJAN päivässä

KUINKA KIRJOITAT E-KIRJAN päivässä KUINKA KIRJOITAT E-KIRJAN päivässä Valmentaja-Akatemia opettaa sinulle kuinka valmentajana pystyt kasvattamaan bisnestäsi, auttamaan useampia ihmisiä ja ansaitsemaan enemmän. www.valmentaja- akatemia.fi

Lisätiedot

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia. 4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Moniperintä 2 Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Oliomallinnus TITE.2040 Hannu K. Niinimäki 1 Delegointi 1 Moniperinnän toteuttaminen

Lisätiedot

11.4. Context-free kielet 1 / 17

11.4. Context-free kielet 1 / 17 11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä

Lisätiedot

Opinnäytetyön ulkoasu

Opinnäytetyön ulkoasu Opinnäytetyön ulkoasu Antti Leino Tampereen yliopisto Kieli-, käännös- ja kirjallisuustieteiden yksikkö Suomen kielen tutkinto-ohjelma Tutkielmaohje Syyskuu 2012 Tampereen yliopisto Suomen kielen tutkinto-ohjelma

Lisätiedot

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

Tietokoneohjelmien käyttö laadullisen aineiston analyysin apuna

Tietokoneohjelmien käyttö laadullisen aineiston analyysin apuna Tietokoneohjelmien käyttö laadullisen aineiston analyysin apuna Laadullinen, verbaalinen, tulkinnallinen aineisto kootaan esimerkiksi haastattelemalla, videoimalla, ääneenpuhumalla nauhalle, yms. keinoin.

Lisätiedot

7 Uusia tarjouskilpailuja koskevien ilmoitusten tilaaminen

7 Uusia tarjouskilpailuja koskevien ilmoitusten tilaaminen 7 Uusia tarjouskilpailuja koskevien ilmoitusten tilaaminen Käyttäjä voi tilata sähköposti-ilmoituksen kaikista uusista tarjouskilpailuista valitsemallaan alalla CPV-luokituksen pohjalta. Euroopan komissio

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Opas koulujen VALO-hankintaan. Elias Aarnio Avoimet verkostot oppimiseen -hanke Educoss Innopark Oy

Opas koulujen VALO-hankintaan. Elias Aarnio Avoimet verkostot oppimiseen -hanke Educoss Innopark Oy Opas koulujen VALO-hankintaan Elias Aarnio Avoimet verkostot oppimiseen -hanke Educoss Innopark Oy Mikä ihmeen VALO? VALO = vapaat ja avoimen lähdekoodin ohjelmistot Kyse on siis Open Sourcesta eli vapaista

Lisätiedot

Johdatus rakenteisiin dokumentteihin

Johdatus rakenteisiin dokumentteihin -RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista

Lisätiedot

ELMAS 4 Laitteiden kriittisyysluokittelu 8.2.2012 1/10. Ramentor Oy ELMAS 4. Laitteiden kriittisyysluokittelu. Versio 1.0

ELMAS 4 Laitteiden kriittisyysluokittelu 8.2.2012 1/10. Ramentor Oy ELMAS 4. Laitteiden kriittisyysluokittelu. Versio 1.0 1/10 Ramentor Oy ELMAS 4 Laitteiden kriittisyysluokittelu Versio 1.0 2/10 SISÄLTÖ 1 Kuvaus... 3 2 Kriittisyysluokittelu ELMAS-ohjelmistolla... 4 2.1 Kohteen mallinnus... 4 2.2 Kriittisyystekijöiden painoarvojen

Lisätiedot

Palvelupyyntöjärjestelmä. Asiakkaan ohje

Palvelupyyntöjärjestelmä. Asiakkaan ohje Palvelupyyntöjärjestelmä Asiakkaan ohje Festum Software Oy Palvelupyyntöjärjestelmä asiakkaan ohje 2 ( 8 ) Sisällysluettelo 1. Palvelupyyntöjärjestelmä osana asiakastukea... 3 2. Käytön aloittaminen...

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

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

Teollisuusautomaation standardit Osio 9

Teollisuusautomaation standardit Osio 9 Teollisuusautomaation standardit Osio 9 Osio 1: SESKOn Komitea SK 65: Teollisuusprosessien ohjaus Osio 2: Toiminnallinen turvallisuus: periaatteet Osio 3: Toiminnallinen turvallisuus: standardisarja IEC

Lisätiedot

Kurssin hallinta -työväline

Kurssin hallinta -työväline Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,

Lisätiedot

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2015. Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2015. Olio-ohjelmoinnin perusteet (5 op) Tavoitteena Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot,

Lisätiedot

LUKUVUOSITODISTUKSEN ARVIOINTILAUSEET VUOSILUOKILLE 1 4

LUKUVUOSITODISTUKSEN ARVIOINTILAUSEET VUOSILUOKILLE 1 4 LUKUVUOSITODISTUKSEN ARVIOINTILAUSEET VUOSILUOKILLE 1 4 tuetusti / vaihtelevasti / hyvin / erinomaisesti vuosiluokka 1 2 3 4 käyttäytyminen Otat muut huomioon ja luot toiminnallasi myönteistä ilmapiiriä.

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

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

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

Hallintaliittymän käyttöohje

Hallintaliittymän käyttöohje Hallintaliittymän käyttöohje 1. Yleisiä huomioita Hallintaliittymän käyttöä helpottavia yleisiä huomioita: - Käytä listanäkymien hakukentissä kentän vieressä olevaa hakunappia, älä enter-näppäintä. - Älä

Lisätiedot

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen Nspire CAS - koulutus Ohjelmiston käytön alkeet 3.12.2014 Pekka Vienonen Ohjelman käynnistys ja käyttöympäristö Käynnistyksen yhteydessä Tervetuloa-ikkunassa on mahdollisuus valita suoraan uudessa asiakirjassa

Lisätiedot

Objective-C. Ryhmä 35: Ilpo Kärki Aleksi Pälä

Objective-C. Ryhmä 35: Ilpo Kärki Aleksi Pälä Objective-C Ryhmä 35: Ilpo Kärki Aleksi Pälä Sisällysluettelo 1 Yleistä...3 1.1 Lyhyesti...3 1.2 Historiaa...3 1.3 Hybridikieli...3 2 Muistinhallinta...5 2.1 Manual Retain Release (MRR)...5 2.2 Automatic

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009

Tähtitieteen käytännön menetelmiä Kevät 2009 Tähtitieteen käytännön menetelmiä Kevät 2009 2009-01-12 Yleistä Luennot Luennoija hannu.p.parviainen@helsinki.fi Aikataulu Observatoriolla Maanantaisin 10.00-12.00 Ohjattua harjoittelua maanantaisin 9.00-10.00

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

MONOGRAFIAN KIRJOITTAMINEN. Pertti Alasuutari

MONOGRAFIAN KIRJOITTAMINEN. Pertti Alasuutari MONOGRAFIAN KIRJOITTAMINEN Pertti Alasuutari Lyhyt kuvaus Monografia koostuu kolmesta pääosasta: 1. Johdantoluku 2. Sisältöluvut 3. Päätäntäluku Lyhyt kuvaus Yksittäinen luku koostuu kolmesta osasta

Lisätiedot

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa 1 Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa Passion leads to design, design leads to performance, performance leads to SUCCESS! OLLI NIEMI Yoso Oy Mitä määrittelyltä

Lisätiedot

Ohjelmien automaattisen verifioinnin reunamailla

Ohjelmien automaattisen verifioinnin reunamailla Ohjelmien automaattisen verifioinnin reunamailla Antti Siirtola Tietotekniikan laitos, Perustieteiden korkeakoulu, Aalto-yliopisto, antti.siirtola@aalto.fi Suomalainen Tiedeakatemia, Nuorten akatemiaklubi,

Lisätiedot

Matematiikan didaktiikka, osa II Algebra

Matematiikan didaktiikka, osa II Algebra Matematiikan didaktiikka, osa II Algebra Sarenius Kasvatustieteiden tiedekunta, Oulun yksikkö Mitä on algebra? Algebra on aritmetiikan yleistys. Algebrassa siirrytään operoimaan lukujen sijaan niiden ominaisuuksilla.

Lisätiedot

TEHTÄVÄN NIMI YHDELLE TAI USEAMMALLE RIVILLE FONTTIKOKO 24 Tarvittaessa alaotsikko fonttikoko 20

TEHTÄVÄN NIMI YHDELLE TAI USEAMMALLE RIVILLE FONTTIKOKO 24 Tarvittaessa alaotsikko fonttikoko 20 Etunimi Sukunimi fonttikoko 16 Ryhmätunnus TEHTÄVÄN NIMI YHDELLE TAI USEAMMALLE RIVILLE FONTTIKOKO 24 Tarvittaessa alaotsikko fonttikoko 20 Tehtävätyyppi Koulutusohjelma fonttikoko 16 Elokuu 2010 SISÄLTÖ

Lisätiedot

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

OHJELMISTOKEHITYS -suuntautumisvaihtoehto OHJELMISTOKEHITYS -suuntautumisvaihtoehto Suuntautumisvaihtoehdon esittely 1. vuoden opiskelijoille Kari Laitinen www.oamk.fi/~karil/opetus.html Ohjelmistokehitys -opintosuunnan valitsevista henkilöistä

Lisätiedot

KERROSARKKITEHTUURIN SUUNNITTELUMALLIT. Kuisma Lehtonen. 15.8.2006 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma

KERROSARKKITEHTUURIN SUUNNITTELUMALLIT. Kuisma Lehtonen. 15.8.2006 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma KERROSARKKITEHTUURIN SUUNNITTELUMALLIT Kuisma Lehtonen 15.8.2006 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma TIIVISTELMÄ Suunnittelumallit ovat yleisiä ratkaisuja tiettyihin oliopohjaisiin

Lisätiedot

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä 2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa

Lisätiedot

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma 12.11.2007 Janne J. Korhonen 12.11.2007 Agenda 1. Prosessit ja palvelut, BPM ja SOA 2. BPM-projekteista yleensä 3. Prosessin elinkaarimalli 4. Kokemuksia

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

KEHITYSVAMMAISTEN PALVELUJEN HYVÄT KÄYTÄNNÖT OHJEET KÄYTÄNNÖN KUVAAMISEKSI. Kehitysvammaliitto / Hyvät käytännöt -projekti

KEHITYSVAMMAISTEN PALVELUJEN HYVÄT KÄYTÄNNÖT OHJEET KÄYTÄNNÖN KUVAAMISEKSI. Kehitysvammaliitto / Hyvät käytännöt -projekti 1 KEHITYSVAMMAISTEN PALVELUJEN HYVÄT KÄYTÄNNÖT OHJEET KÄYTÄNNÖN KUVAAMISEKSI Kehitysvammaliitto / Hyvät käytännöt -projekti 2 Tuotetaan käytännöstä tietoa yhdessä Käytännön kuvaamisen tarkoituksena on

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Arkkitehtuuriratkaisujen uudelleenkäyttö olioperustaisessa ohjelmistokehityksessä. Janne Kauppila

Arkkitehtuuriratkaisujen uudelleenkäyttö olioperustaisessa ohjelmistokehityksessä. Janne Kauppila Arkkitehtuuriratkaisujen uudelleenkäyttö olioperustaisessa ohjelmistokehityksessä Janne Kauppila Tampereen yliopisto Tietojenkäsittelytieteiden laitos Tietojenkäsittelyoppi Pro gradu tutkielma Toukokuu

Lisätiedot

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

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

12. Kehysarkkitehtuurit

12. Kehysarkkitehtuurit 12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

OULA TelemArk - arkkitehtuuri

OULA TelemArk - arkkitehtuuri OULA TelemArk - arkkitehtuuri Fax +358 (0)8 551 3870 www.buscom.fi Date: 9.12.2004 Page: 1 Versiohistoria Versio Pvm Tekijä Muutoksen kuvaus 0.01 02.03.2004 Pvu Ensimmäinen versio. 0.02 11.03.2004 Pvu

Lisätiedot

SUDOKU - ratkaisuohjeet. Jarno Tuimala 18.9.2005

SUDOKU - ratkaisuohjeet. Jarno Tuimala 18.9.2005 SUDOKU - ratkaisuohjeet Jarno Tuimala 18.9.2005 Japanilainen sudoku Seuraavassa on esitetty ohjeet japanilaistyyppisten sudoku-ristikoiden ratkontaan. Japanilaisia ristikoita luonnehtivat seuraavat piirteet:

Lisätiedot

STEP 1 Tilaa ajattelulle

STEP 1 Tilaa ajattelulle Työkalu, jonka avulla opettaja voi suunnitella ja toteuttaa systemaattista ajattelutaitojen opettamista STEP 1 Tilaa ajattelulle Susan Granlund Euran Kirkonkylän koulu ja Kirsi Urmson Rauman normaalikoulu

Lisätiedot

Oliot viestivät metodeja kutsuen

Oliot viestivät metodeja kutsuen 6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen

Lisätiedot

UML Luokkakaavio 14:41

UML Luokkakaavio 14:41 UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,

Lisätiedot

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen

Lisätiedot

1 Kannat ja kannanvaihto

1 Kannat ja kannanvaihto 1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:

Lisätiedot

Työkalut ohjelmistokehityksen tukena

Työkalut ohjelmistokehityksen tukena 1 Työkalut ohjelmistokehityksen tukena Johdanto 2 Työkaluja eli ohjelmistotyötä tukevia ohjelmistoja käytetään ohjelmistoalan yrityksissä nykypäivänä paljon. Työkalut auttavat ohjelmistoalan ihmisiä suunnittelemaan

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

Aaltoa kulttuurimatkaillen. Seinäjoen kaupunki Kulttuuritoimi PL 215 60101 SEINÄJOKI

Aaltoa kulttuurimatkaillen. Seinäjoen kaupunki Kulttuuritoimi PL 215 60101 SEINÄJOKI Aaltoa kulttuurimatkaillen Seinäjoen kaupunki Kulttuuritoimi PL 215 60101 SEINÄJOKI Alvar Aalto Seinäjoella Seinäjoki on Etelä-Pohjanmaan maakunnan keskus ja yksi Suomen voimakkaimmin kasvavista kaupunkikeskuksista.

Lisätiedot

Sisällönanalyysi. Sisältö

Sisällönanalyysi. Sisältö Sisällönanalyysi Kirsi Silius 14.4.2005 Sisältö Sisällönanalyysin kohde Aineistolähtöinen sisällönanalyysi Teoriaohjaava ja teorialähtöinen sisällönanalyysi Sisällönanalyysi kirjallisuuskatsauksessa 1

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot