Suorituskykypatterneja

Koko: px
Aloita esitys sivulta:

Download "Suorituskykypatterneja"

Transkriptio

1 Suorituskykypatterneja Luento Ohjelmistojen suorituskyky 1 Patterni Patterni (eli ratkaisumalli, pattern) kuvaa ohjelmistoratkaisun ytimen johonkin toistuvaan ongelmaan, joka esiintyy tietyssä kontekstissa Patternien vakiintunut esitysmuoto Nimi Ongelma Ratkaisu Ratkaisun hyödyt Muut seuraukset Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1

2 Suorituskykypatternit Ovat abstraktimpeja kuin (olio-)suunnittelumallit (design patterns) ja koskevat yleensä suurempaa osaa implementaatiosta Patterneissa sovelletaan yleisiä suunnitteluperiaatteita Yksi patterni voi perustua useampaan periatteeseen Ovat usein suoraan arkijärjellä helposti ymmärrettävissä (mutta helpommin sanottu kuin tehty ) Hyvien ratkaisumallien lisäksi on myös tärkeää tunnistaa usein toistuvia suorituskyvyn kannalta huonoja ratkaisuja Näitä on dokumentoitu anti-patterneina Seuraavassa käydään läpi joitakin suorituskyvyn kannalta oleellisia patterneja ja anti-patterneja Ohjelmistojen suorituskyky 3 PATTERNEJA Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2

3 Fast Path (Oikopolku) Tavoitteena on vähentää dominoivien työnkuormien vaatimaa prosessointia Suhteellisen pientä osaa sovelluksen toiminnallisuudesta käytetään yleensä huomattavasti useammin kuin muita toimintoja Näiden työkuormat dominoivat sovelluksen resurssien käyttöä Sovelluksen suoritustehoa halutaan kasvattaa Ohjelmistojen suorituskyky 5 Fast Path (Oikopolku) Keskitysperiaate (centering principle) neuvoo minimoimaan dominoivien työnkulkujen prosessointiin kuluvan ajan Yksi tapa minimoida suoritusaika on tarjota useimmin käytetyille toiminnoille vaihtoehtoinen, turhat väliaskeleet ohittava oikopolku (fast path) Heti toimintopolun alussa tiedetään, mitä asiakas haluaa, joten sitä ei tarvitse joka välissä erikseen kysyä Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3

4 Fast Path (Oikopolku) Esimerkiksi pankkiautomaatti tarjoaa heti PIN-koodin kyselyn jälkeen mahdollisuuden nostaa tietty summa tililtä (ylivoimaisesti yleisin toiminto) tai tehdä jotain muuta (muun nostettavan summan syöttö, saldokysely) Myös monet web-sivustot tarjoavat pikalinkkejä suosituimpiin sisältöihin tai toimintoihin heti lataussivulta Oikopolkuja voi tarjota myös dataan, eli pitämällä useimmin tarvittavat tietoalkiot käteismuistissa, jolloin niitä ei aina tarvitse hakea tietovarastosta asti Oikopolku voidaan myös luoda dynaamisesti ja adaptiivisesti käyttöhistoria huomioon ottaen Ohjelmistojen suorituskyky 7 Fast Path (Oikopolku) Oikopolku perustuu keskitysperiaatteen soveltamiseen, mutta muutkin periaatteet sopivat itse oikopolun lyhentämiseen, esimerkiksi Paikallisuusperiaate (esim. ajallisesti lähekkäin tarvittava data samassa paikassa) Kysynnän minimointi Hyödyt Dominoivien töiden vastausaikojen lyhentäminen parantaa järjestelmän responsiivisuutta käyttäjän näkökulmasta Dom. töiden resurssien käytön vähentäminen voi lievittää resurssikilpailun negatiivisia vaikutuksia, mikä lyhentää muidenkin töiden vastausaikoja Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4

5 Muut seuraukset Fast Path (Oikopolku) Tarjottujen oikopolkujen on oltava relevantteja käyttäjien näkökulmasta, eli on tunnettava käyttäjien oikeat tarpeet ja tavat Käyttötavat voivat muuttua ajan myötä Sovellus on syytä instrumentoida niin, että tarjottujen oikopolkujen käyttöä voidaan seurata ja havaita käyttötapojen muutokset Ohjelmistojen suorituskyky 9 First Things First (Tärkeimmät ensin) Ajan ollessa tiukalla, asiat pitää priorisoida ja varmistaa, että ainakin tärkeimmät tulevat hoidetuksi Ohimenevä ylikuormitustilanne voi aiheuttaa järjestelmän käsittelykapasiteetin ylittymisen Järjestelmä ei joko pysty käsittelemään kaikkia syötteitään (vaan hukkaa osan) tai pyyntöjen vastausajat venyvät kohtuuttoman pitkiksi Voi aiheutua vaaratilanteita tai taloudellisia menetyksiä Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5

6 First Things First (Tärkeimmät ensin) Asetetaan suoritettavat työt/tehtävät tärkeysjärjestykseen, ja tehdään tärkeimmät aina ennen vähemmän tärkeitä Jaa loogiset tehtävät, kuten syötetapahtuman käsittely, omiksi fyysisiksi tehtävikseen (säikeiksi tai prosesseiksi) Aseta fyysisten tehtävien prioriteetit vastaamaan loogisten tehtävien tärkeyttä Ohjelmistojen suorituskyky 11 First Things First (Tärkeimmät ensin) Esimerkiksi reaaliaikajärjestelmissä säikeiden ja prosessien prioriteettien sekä säikeiden skedulointialgoritmien säätäminen on tärkeää tapahtumien käsittelyn kovien aikarajojen saavuttamiseksi Prioriteetit asetetaan yleensä staattisesti, mutta niihin voi liittyä dynaamisiakin piirteitä ( priority inheritance ) Skedulointialgoritmeilta ja tietorakenteilta voidaan vaatia tiettyjä ominaisuuksia, jotka mahdollistavat haluttujen aikarajojen saavuttamisen formaalin (matemaattisen) todistamisen Soveltaa keskitysperiaatetta kiinnittäessään huomion tärkeimpiin töihin Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6

7 First Things First (Tärkeimmät ensin) Hyödyt Varmistaa tärkeimpien töiden tulevan suoritetuiksi Ylikuormituksen sattuessa järjestelmän suoritus-kyky heikkenee hallitusti ja paranee vastaavasti tilanteen mentyä ohi Muut seuraukset Jos ylikuormitustilanne ei ole ohimenevä vaan jatkuva ilmiö, matalamman prioriteetin tehtävät voivat nälkiintyä tai jäädä jopa kokonaan suorittamatta Tässä tapauksessa suoritusympäristön tehoa täytyy lisätä tai töiden vaatimaan prosessoinnin määrää täytyy vähentää Ohjelmistojen suorituskyky 13 Coupling (Rajapinta tehtävän mukaan) Kootaan loogisesti yhteen kuuluvat, usein yhdessä tarvittavat asiat yhden rajapinnan/apin kautta saatavaksi Huom- eri asia kuin kytkentä (coupling) modulaarisuuden indikaattorina! Monikerroksinen (esitys-logiikka-data) web-sovellus käyttää relaatiotietokantaa datan pysyvään säilytykseen Jos tietokannan taulujen rivit esitetään sovelluslogiikkakerrokselle sellaisenaan olioina, joiden attribuutit vastaavat taulun sarakkeita, olioiden attribuuttien käsittely (esimerkiksi oliorakenteen navigointi linkkien kautta) aiheuttaa helposti suuren määrän yksittäisiä tietokantakyselyitä Hajautetussa arkkitehtuurissa tietokantakutsut voivat olla pullonkaula Tietokannan sisäinen rakenne paljastuu myös suoraan logiikkakerrokselle, mikä luo voimakkaan riippuvuuden logiikkakerroksesta datakerrokseen ja sen toteutukseen Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7

8 Coupling (Rajapinta tehtävän mukaan) Koostetaan ja piilotetaan hienojakoinen toteutusrakenne rajapinnan/oliomallin taakse, joka tarjoaa käyttäjän tarpeisiin sopivan data-abstraktion Yhdessä käytettävät dataelementit kootaan samaan koosteeseen Koosteen välittävä toteutus huolehtii datan hausta ja päivityksestä tietovarastoon minimoiden hakujen määrän ja maksimoiden siirrettävän datan määrän Sovelletut periaatteet: kysynnän miminointi, paikallisuus, keskitys Esimerkki modernista ORM-ratkaisusta: Hibernate ORM ( Ohjelmistojen suorituskyky 15 Coupling (Rajapinta tehtävän mukaan) Hyödyt Sovittaa tarjotun palvelun muodon sovellukseen semantiikkaan ja rajoittaa datakerroksen muutosten heijastusvaikutuksia logiikkakerrokseen Muut seuraukset Hyöty saadaan vasta, kun sovelluksen logiikka on vakiintunut (ei muutu), koska oikean rajapinnan määrittely vaatii jonkin verran työtä Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8

9 Flex Time (Aikajoustot) Joustavilla työajoilla pyritään Helpottamaan työntekijöiden yksityiselämän ja liiketoiminnan tarpeiden yhteensovittamista Tasaamaan inhimillisen ja yhteiskunnan (esim liikenne) kapasiteetin käyttöä ylikuormituksen välttämiseksi Monet toistuvat ja tietyin väliajoin tehtävät työt ajoittuvat suoritettavaksi samaan aikaan aiheuttaen kysyntäpiikin ja töiden ruuhkautumisen Ohjelmistojen suorituskyky 17 Flex Time (Aikajoustot) Ajoitetaan ennakoitavat työt tapahtumaan eri aikoihin Jos jonkin toistuvan työn suoritushetkellä ei sinänsä ole merkitystä, pyritään ajoittamaan se hiljaiseen ajankohtaan (esim käyttäjän kotihakemiston varmuuskopiointi) tai tekemään se osittain ennakkoon (yhteenvetoraporttien jatkuva koostaminen) Jos työn ajankohdalla on merkitystä käyttäjälle (esim ajantasaisen raportin tuottaminen tuotantotietokannasta), mutta toimitusajassa on silti jonkin verran joustoa, järjestetään eri käyttäjille ja eri raporteille omat aikaikkunansa, jossa työ toteutetaan Raskaan periodisen työn suorituskykyimpaktia voidaan myös vähentää jakamalla iso työ pienempiin useammin suoritettaviin osatehtäviin Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9

10 Flex Time (Aikajoustot) Hyödyt Töiden tasainen ajallinen jakautuminen vähentää ruuhkaa rajallisilla resursseilla ja lyhentää siten odotusaikoja Isojen töiden jakaminen pienempiin osiin vähentää myös yksittäisen työn resurssien käyttöä, mikä edelleen lyhentää samanaikaisten töiden kokemia viiveitä Muut seuraukset Vaikutus perustuu töiden odotusaikojen lyhenemiseen; töiden skedulointi, niiden ennakoiva suorittaminen ja töiden pilkkominen saattavat kasvattaa resurssien kokonaiskäyttöä Töiden ajallisen hajautuksen onnistuminen on kriittinen tekijä Sovelletut periaatteet Taakan jakaminen, jaetut resurssit, kysynnän minimointi Ohjelmistojen suorituskyky 19 ANTI-PATTERNEJA Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10

11 The god Class (jumalolio) Ohjelmassa on yksi olio, joka käytännössä vastaa suuresta osasta toiminnallisuutta ja joka delegoi vain vähäpätöisiä tukitehtäviä muille Olio on kontrollerin roolissa ohjaten merkittäviä tilamuutoksia ja suorituspolkujen valintaa ( kontrollifriikki ) Muut oliot ovat lähinnä tyhmiä dataobjekteja Toisenlainen jumalolio taas haluaa omistaa kaiken ohjelman datan ( dataholisti ) Suorituskykyä heikentävä vaikutus tulee siitä, että jumalolio on mukana kaikessa toiminnassa, jolloin olioiden välistä viestintää on tarpeettoman paljon Vaikutus korostuu hajautetussa arkkitehtuurissa viestiviiveen takia Ohjelmistojen suorituskyky 21 The god Class (jumalolio) Refaktoroidaan rakenne siten, että päätösvalta ja data jakautuu tasaisemmin ja roolinmukaisesti ohjelman keskeisten olioiden välillä, hyviä oliosuunnittelun periaatteita noudattaen (esimerkiksi Responsibilitydriven Design Sovelletaan paikallisuusperiaatetta kapseloimalla data, päätökset, operaatiot ja niiden tila asianmukaisiin olioihin Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11

12 Circuitous Treasure Hunt (vihjepeli) Löytääkseen jonkin tietyn datan, asiakas tekee ensin tietokantahaun yhteen tauluun ja käyttää sitten saamaansa vastausta muodostaakseen uuden kyselyn johonkin toiseen tauluun; tätä jatkuu, kunnes asiakas lopulta löytää hakemansa datan Vaikutus suorituskykyyn on suuri varsinkin jos tietokantapalvelin sijaitsee eri verkkosolmussa kuin asiakas Sama ilmiö voi esiintyä myös muistissa olevien oliorakenteiden käsittelyssä, jos jonkin tiedon hakeminen vaatii ensin pitkän linkkiketjun (assosiaatioiden) seuraamista oliosta toiseen halutun datan löytämiseksi ja sitten paluuta samaa polkua vastauksen palauttamiseksi hakijalle (metodikutsut, muistin hallinnan operaatiot) Ohjelmistojen suorituskyky 23 Circuitous Treasure Hunt (vihjepeli) Esimerkiksi 4. luennolla käsitellyssä ICADesimerkissä (Arkkitehtuuri 1, diat 12-13), jokainen kulmapiste oli tallennettu omana kolmesta kokonaisluvusta ja tunnisteesta koostuvana tietueenaan Jokaista tietokannasta haettua palkkia kohden joudutaan siis tekemään 2 muuta kyselyä sen kulmapisteiden hakemiseksi toisesta taulusta Koko mallin hakemiseksi tietokannasta joudutaan tyypillisessä 2000 palkin tapauksessa tekemään (2 * 2000) = 6001 kyselyä Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12

13 Circuitous Treasure Hunt (vihjepeli) Valitaan datan tallennusrakenne siten, että tilaa koskeva paikallisuus paranee Esimerkiksi ICAD-tapauksessa, kulmapisteiden paikkakoordinaatit voitaisiin tallentaa suoraan sarakkeina (kenttinä) palkkitauluun Tämä vähentää datan hakuun tarvittavien kyselyjen määrää 4000:lla (66%) Tai järjestetään vaihtoehtoisia, suorempia saantipolkuja dataan Huomaa, että tällaisella tallennusrakenteen optimoinnilla voi olla negatiivista vaikutusta muihin järjestelmän ominaisuuksiin ja toimintoihin Esimerkin tapauksessa muun muassa talletettavan datan määrä voi kasvaa, koska päistään yhteen liitetyt palkit eivät voi jakaa samaa kulmapistettä Ohjelmistojen suorituskyky 25 The One-Lane Bridge (yksikaistainen silta) Vain yksi tai muutama prosessi kerrallaan voi käyttää jotakin kriittistä resurssia (exclusive access, yksinkäyttöoikeus), mikä aiheuttaa muiden sillalle pyrkivien prosessien jonoutumista ja sens vapautumisen odottelua Järjestä vaihtoehtoisia reittejä vähentämään eksklusiivisen resurssin kysyntää Esimerkiksi Pyri hajauttamaan kriittisen tietokantataulun päivitykset eri osiin taulua rivien lukitsemista aiheutuvien viiveiden lyhentämiseksi Kerää samanaikaiset muutokset erillisiin väliaikaisiin tauluihin, jotka konsolidoidaan myöhemmin master dataan Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Esimerkki ohjemasuoritusmallien käytöstä

Esimerkki ohjemasuoritusmallien käytöstä Esimerkki ohjemasuoritusmallien käytöstä Luento 4 58153003 Ohjelmistojen suorituskyky 1 SEKVENSSIKAAVIOISTA SUORITUSVERKKOIHIN 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1 Sekvenssit

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

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

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

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi Miksi optimoidaan Relaatiotietokannan kyselyt esitetään käytännössä SQLkielellä. Kieli määrittää halutun tuloksen, ei sitä miten tulos muodostetaan (deklaratiivinen kyselykieli) Tietokannan käsittelyoperaatiot

Lisätiedot

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri Arkkitehtuuri Termieditorin käyttö vaatii kirjautumisen. Peruskäyttäjälle myönnetään erikseen aineistokohtaisia luku- ja muokkausoikeuksia. Järjestelmän ylläpitäjä (admin) saa ylläpitää kaikkia aineistoja.

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

Ohjelmistojen suorituskyky, Kurssin tavoitteet

Ohjelmistojen suorituskyky, Kurssin tavoitteet Ohjelmistojen suorituskyky, Kurssin tavoitteet Luento 1 58153003 Ohjelmistojen suorituskyky 1 SUORITUSKYKY 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1 Suorituskyky 58153003 Ohjelmistojen

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

Järjestelmätason mallit III

Järjestelmätason mallit III Järjestelmätason mallit III Luento 8 58153003 Ohjelmistojen suorituskyky 1 KEHITYSPROJEKTIN ALKUVAIHEEN MALLIT 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1 Alkuvaiheen arviot Järjestelmän

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

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

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen, tommi.mikkonen@tut.fi

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen, tommi.mikkonen@tut.fi 6. Luento: Skedulointi eli Vuoronnus Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Peruskäsitteet Skedulointialgoritmeja Reaaliaikajärjestelmien skedulointi Skeduloituvuuden analysoinnista Yhteenveto Peruskäsitteet

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

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

Ohjelmasuoritusmalli ja sen käyttö

Ohjelmasuoritusmalli ja sen käyttö Ohjelmasuoritusmalli ja sen käyttö Luento 3 58153003 Ohjelmistojen suorituskyky 1 Skenaarioiden suorituksen kuvaaminen OHJELMASUORITUSMALLI SOFTWARE EXECUTION MODEL 58153003 Ohjelmistojen suorituskyky

Lisätiedot

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

Optimoinnin sovellukset

Optimoinnin sovellukset Optimoinnin sovellukset Timo Ranta Tutkijatohtori TTY Porin laitos OPTIMI 4.12.2014 Mitä optimointi on? Parhaan ratkaisun systemaattinen etsintä kaikkien mahdollisten ratkaisujen joukosta Tieteellinen

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

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

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen, 14. Luento: Kohti hajautettuja sulautettuja järjestelmiä Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Hajautettujen järjestelmien väyliä LON CAN Pienen laitteen sisäinen hajautus OpenCL Network

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

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

REKISTERI- JA TIETOKANTA-AINEISTOJEN SIIRTÄMINEN VAPA-PALVELUUN

REKISTERI- JA TIETOKANTA-AINEISTOJEN SIIRTÄMINEN VAPA-PALVELUUN Arkistolaitos REKISTERI- JA TIETOKANTA-AINEISTOJEN SIIRTÄMINEN VAPA-PALVELUUN Ohje v. 1.0 (16.10.2012) Kansallisarkisto Rauhankatu 17 PL 258, 00171 Helsinki Puh. Tel. (09) 228 521 arkisto@narc.fi Riksarkivet

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

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

Järjestelmäarkkitehtuuri (TK081702)

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

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät Sulautetut järjestelmät Luku 2 Sivu 1 (??) Palvelut Käyttöjärjestelmän tehtävänä on tarjota ohjelmoijalla erilaisia palveluita Tyypillisin palvelu, jota sulautetut käyttöjärjestelmät tarjoavat on prosessien

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

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

The OWL-S are not what they seem

The OWL-S are not what they seem The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi 5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden

Lisätiedot

Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke 18.5 2015

Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke 18.5 2015 Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke 18.5 2015 Taulukon valinta Valitse vasemmalta kansioita, kunnes saat taulukkoluettelon näkyviin. Jos etsit tietoa jostain tietystä aiheesta, voit

Lisätiedot

Tuotannon jatkuva optimointi muutostilanteissa

Tuotannon jatkuva optimointi muutostilanteissa Tuotannon jatkuva optimointi muutostilanteissa 19.4.2012 Henri Tokola Henri Tokola Esityksen pitäjä 2009 Tohtorikoulutettava Aalto-yliopisto koneenrakennustekniikka Tutkimusaihe: Online-optimointi ja tuotannonohjaus

Lisätiedot

Ohjelmistoarkkitehtuurin suunnittelu

Ohjelmistoarkkitehtuurin suunnittelu Ohjelmistoarkkitehtuurin suunnittelu Luento 3 10.9.2014 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Arkkitehtuuritietämyksen lähteet Yleisiä suunnitteluperiaatteita Kaunis arkkitehtuuri 10.9.2014

Lisätiedot

Seuraavat tasot sisältävät alueita ja pisteitä samassa tasossa. o Asemakaavat o Kaavayksiköt o Kiinteistöt

Seuraavat tasot sisältävät alueita ja pisteitä samassa tasossa. o Asemakaavat o Kaavayksiköt o Kiinteistöt 1 (7) 14.3.2017 SeutuCD-rajapinnan käyttöohje WFS SeutuCD-rajapinnan käyttöohje WFS HSY:n tuottamia käyttöoikeuden vaatimia aineistoja on mahdollista hyödyntää OGC-standardin mukaisena rajapintana. WFS-rajapinta

Lisätiedot

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

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

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Suorituskyky ja ohjelmistokehitys Suorituskykymallit Suorituskyky ja ohjelmistokehitys Suorituskykymallit Luento 2 58153003 Ohjelmistojen suorituskyky 1 SUORITUSKYKYISTEN OHJELMISTOJEN KEHITTÄMINEN 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto

Lisätiedot

Lukkarikone Pikaohjeet v. 1.0

Lukkarikone Pikaohjeet v. 1.0 Lukkarikone Pikaohjeet v. 1.0 Huom! Lukkarikone toimii oikein vain jos koulutusohjelmasi ylläpitää lukujärjestystietoja Metropolian tilanvarausjärjestelmässä (tvj.metropolia.fi). Käyttöperiaate Lukkarikone

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

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

Lisätiedot

Tievalaistuksen palvelusopimuksen tietopalvelu Sähköinen omaisuuden hallinta

Tievalaistuksen palvelusopimuksen tietopalvelu Sähköinen omaisuuden hallinta Tievalaistuksen palvelusopimuksen tietopalvelu Sähköinen omaisuuden hallinta Tuotekuvaus 2015 Tievalaistuksen palvelusopimuksen tietopalvelu Tietomekka Oy tarjoaa tievalaistusten palvelusopimuksiin toiminnanohjauksen

Lisätiedot

Elisa Kassa-taustajärjestelmän välilehdeltä raportit voidaan aukaista haluttuun tapahtumaan liittyvän raportin.

Elisa Kassa-taustajärjestelmän välilehdeltä raportit voidaan aukaista haluttuun tapahtumaan liittyvän raportin. Elisa Kassa Raportit Elisa Kassa tarjoaa oletusarvoisesti kymmeniä eri raportteja, jotka antavat informaatiota lähtien aina tuntikohtaisesta tapahtumien erittelystä, aina koko vuoden kattavaan tapahtumien

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

Hyvinvointia työstä

Hyvinvointia työstä Hyvinvointia työstä www.ttl.fi/sujuva Julkaistu 11.05.2015 1 Inhimilliset virheet ja niiden vähentäminen työpaikoilla Sujuvaa työtä, vähemmän virheitä -tutkimushankkeen tuloksia Vuokko Puro, Henriikka

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

T SEPA - päiväkirja: Design Patterns. ETL työkalu

T SEPA - päiväkirja: Design Patterns. ETL työkalu T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty

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

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

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

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

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

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

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, sovellusohjelmille ja käyttäjille? 2012-2013 Lasse Lensu

Lisätiedot

D B. Tiedostojen käsittely

D B. Tiedostojen käsittely Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin

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

TIETOVARASTOJEN SUUNNITTELU

TIETOVARASTOJEN SUUNNITTELU IIO30120 DATABASE DESIGN / TIETOKANTOJEN SUUNNITTELU TIETOVARASTOJEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI, DOCENDO (2003, 2005) LUKU 8 JOUNI HUOTARI & ARI

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

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

Tulevaisuuden Internet. Sasu Tarkoma

Tulevaisuuden Internet. Sasu Tarkoma Tulevaisuuden Internet Sasu Tarkoma Johdanto Tietoliikennettä voidaan pitää viime vuosisadan läpimurtoteknologiana Internet-teknologiat tarjoavat yhteisen protokollan ja toimintatavan kommunikointiin Internet

Lisätiedot

Suunnittelumallien käyttö ja web-navimallit

Suunnittelumallien käyttö ja web-navimallit Käyttöliittymät II Luento 7 Suunnittelumallien käyttö ja web-navimallit Harjoitus 1: Asuntohaku-sovellus Harjoitus 2: Groups and Items Esimerkkejä muista kälisuunnittelumalleista Web-navigoinnin suunnittelumallit

Lisätiedot

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

TIETOKANNAN SUUNNITTELU

TIETOKANNAN SUUNNITTELU TIETOKANNAN SUUNNITTELU HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 2 JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS TIETOJEN MALLINNUKSESTA TIETOKANTAAN Käsiteanalyysin

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

Lisätiedot

Koodimalli Code Model

Koodimalli Code Model Koodimalli Code Model Luento 6 10.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Koodimalli Arkkitehtuurisuunnittelun ja implementaation välinen kuilu ja sen hallitseminen Arkkitehtuuria

Lisätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Tietovarastojen suunnittelu

Tietovarastojen suunnittelu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Tietovarastojen suunnittelu kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 8

Lisätiedot

VAATIMUSMÄÄRITTELY. Polku http://code.google.com/p/polku-projekti/ Versio 1.2. Projektiryhmä

VAATIMUSMÄÄRITTELY. Polku http://code.google.com/p/polku-projekti/ Versio 1.2. Projektiryhmä VAATIMUSMÄÄRITTELY Polku http://code.google.com/p/polku-projekti/ Versio 1.2 Projektiryhmä Janne Pihlajaniemi Antti Jämsén Maria Hartikainen Pekka Kallioniemi Jorma Laajamäki Panu Tunttunen Nina Tyni Joonas

Lisätiedot

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN Usein tarvitaan käyttäjän käsin syöttämiä lukuja eri tarkoituksiin. Tällaisia ovat mm. budjetti-, ennuste-, tavoite- ym. luvut. Lukuja syötetään eri kohteille,

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State 2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus

Lisätiedot

Omapalvelu. Omapalvelu - ohje Päivityspaketti 1/ 2014. Tieto Corporation

Omapalvelu. Omapalvelu - ohje Päivityspaketti 1/ 2014. Tieto Corporation Omapalvelu Omapalvelu - ohje Päivityspaketti 1/ 2014 Omapalvelu / Kirjautuminen pankkitunnuksilla Asiakas kirjautuu Omille sivuille kunnan nettisivujen linkin kautta. Sivulle kirjaudutaan Vetuma-tunnistuksen

Lisätiedot

Liikkuva työ pilotin julkinen raportti 30.06.2014

Liikkuva työ pilotin julkinen raportti 30.06.2014 Liikkuva työ pilotin julkinen raportti 30.06.2014 2 / 9 Green ICT pilotin raportti SISÄLLYSLUETTELO 1. Tiivistelmä koekäytöstä... 3 2. Toteutus... 4 2.1.Tavoite... 4 2.2.Mobiilisovellus... 4 2.3.Käyttöönotto...

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

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit 6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit

Lisätiedot

Hyödyt irti XDW:stä. Kim Johnsson Projektipäällikkö/Cerion Solutions Oy 1.11.2011

Hyödyt irti XDW:stä. Kim Johnsson Projektipäällikkö/Cerion Solutions Oy 1.11.2011 Hyödyt irti XDW:stä Kim Johnsson Projektipäällikkö/Cerion Solutions Oy 1.11.2011 Sisältö XDW Yleistä tietovarastoinnista Cerionin XDW-pohjainen tietovarastoratkaisu XDW-malli lyhyesti Projektin tavoite:

Lisätiedot

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

SEPA - Design Patterns

SEPA - Design Patterns SEPA - Design Patterns Kimmo Karlsson, 51066R & Antti Pirinen, 51406N 15. maaliskuuta 2005 1 Sisältö 1. Sisältö 2. Johdanto 3. Käyttöönotto 4. Käyttökokemukset 2 Johdanto Valitsemamme ohjelmistonkehityskäytäntö

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

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

Tehokasta palkanlaskentaa

Tehokasta palkanlaskentaa Mepco Palkat Tehokasta palkanlaskentaa Mepco Palkat on moderni ja tehokas palkanlaskentajärjestelmä, joka vastaa erilaisten organisaatioiden tarpeisiin koosta, toimialasta ja työehtosopimuksista riippumatta.

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