Ohjelmien automaattisen verifioinnin reunamailla

Koko: px
Aloita esitys sivulta:

Download "Ohjelmien automaattisen verifioinnin reunamailla"

Transkriptio

1 Ohjelmien automaattisen verifioinnin reunamailla Antti Siirtola Tietotekniikan laitos, Perustieteiden korkeakoulu, Aalto-yliopisto, Suomalainen Tiedeakatemia, Nuorten akatemiaklubi, 19. toukokuuta 2014

2 Sisältö Taustaa Formaali verifiointi Ohjelmien mallintaminen Parametroidun verifioinnin menetelmiä Yhteenveto Sisältö 2/29

3 Taustaa Taustaa 3/29

4 Minusta 2000 assistentti matematiikan jaos Oulu tkt laitos 2003 DI, tt tutkijakoulutettava Infotech Oulu FT, tkt tkt laitos 2011 tutkijatohtori 2012 Aalto 2013 tt laitos 2014 yliopistonlehtori tkt laitos Oulu Taustaa 4/29

5 Tietojenkäsittelytiede ohjelmointikielet käyttöjärjestelmät tekoäly ohjelmistotekniikka tietokonegrafiikka tietoturva tieteellinen laskenta tietoverkot rinnakkaiset ja hajautetut järjestelmät tietokannat käyttöliittymät käytettävyys ohjelmistoliiketoiminta tietojärjestelmät tietojenkäsittelyteoria Taustaa 5/29

6 Tietojenkäsittelyteoria algoritmit ja tietorakenteet matemaattinen logiikka automaattiteoria formaalit kielet laskettavuus laskennallinen vaativuus laskennallinen geometria laskennallinen algebra informaatioteoria kryptografia tyyppiteoria ohjelmien semantiikka ohjelmien verifiointi kvanttilaskenta Taustaa 6/29

7 Formaali verifiointi Verifointiongelma/kysymys Toimiiko ohjelma vaatimustensa mukaisesti? Taustaa 7/29

8 Formaali verifiointi Verifointiongelma/kysymys Toimiiko ohjelma vaatimustensa mukaisesti? Fakta (Turing 1936) Verifiointiongelma (kaikkein yleisimmässä muodossaan) on ratkeamaton. Taustaa 7/29

9 Formaali verifiointi Verifointiongelma/kysymys Toimiiko ohjelma vaatimustensa mukaisesti? Fakta (Turing 1936) Verifiointiongelma (kaikkein yleisimmässä muodossaan) on ratkeamaton. Ratkaisemiseen vaikuttaa se millaisia ohjelmia ja vaatimuksia tarkastellaan ja mitä oikeellisuus tarkoittaa? Taustaa 7/29

10 Formaali verifiointi Formaali verifiointi 8/29

11 Miksi verifiointia tarvitaan? I Lähes kaikissa tietokoneohjelmissa on virheitä I Virheet kriittisissä järjestelmissä voivat olla kohtalokkaita Formaali verifiointi 9/29

12 Miksi verifiointia tarvitaan? I Lähes kaikissa tietokoneohjelmissa on virheitä I Virheet kriittisissä järjestelmissä voivat olla kohtalokkaita 1987 Sädehoitoon tarkoitetun Therac-25-laitteen ohjelmistossa oli virhe, jonka vuoksi laite saattoi antaa jopa 100-kertaisen säteilyannoksen (bugin hinta: 6 ihmishenkeä) Formaali verifiointi 9/29

13 Miksi verifiointia tarvitaan? I Lähes kaikissa tietokoneohjelmissa on virheitä I Virheet kriittisissä järjestelmissä voivat olla kohtalokkaita Sädehoitoon tarkoitetun Therac-25-laitteen ohjelmistossa oli virhe, jonka vuoksi laite saattoi antaa jopa 100-kertaisen säteilyannoksen (bugin hinta: 6 ihmishenkeä) Ariane 5 -raketin ensilaukaisu epäonnistui ohjelmistovirheen takia (bugin hinta: $ ). Formaali verifiointi 9/29

14 Miksi verifiointia tarvitaan? I Lähes kaikissa tietokoneohjelmissa on virheitä I Virheet kriittisissä järjestelmissä voivat olla kohtalokkaita Sädehoitoon tarkoitetun Therac-25-laitteen ohjelmistossa oli virhe, jonka vuoksi laite saattoi antaa jopa 100-kertaisen säteilyannoksen (bugin hinta: 6 ihmishenkeä) Ariane 5 -raketin ensilaukaisu epäonnistui ohjelmistovirheen takia (bugin hinta: $ ). Heartbleed-haavoittuvuus yleisesti käytetyssä autentikointi/salausohjelmistossa altisti käyttäjätunnusten ja salasanojen vuotamisen verkkoon kahden vuoden ajan useista merkittävistä verkkopalveluista. Formaali verifiointi 9/29

15 Ohjelmistotestaus Perinteinen tapa analysoida ohjelmaa suhteessa vaatimuksiin. Ohjelmaa suoritetaan testitapauksissa kuvatulla tavalla tai tarkastetaan toimiiko se odotetusti. Formaali verifiointi 10/29

16 Ohjelmistotestaus Perinteinen tapa analysoida ohjelmaa suhteessa vaatimuksiin. Ohjelmaa suoritetaan testitapauksissa kuvatulla tavalla tai tarkastetaan toimiiko se odotetusti. Ohjelmaa voi testata vasta kun se on olemassa. Testaamalla voi löytää virheitä muttei todistaa ohjelmaa oikeaksi. Formaali verifiointi 10/29

17 Rinnakkaiset ja hajautetut järjestelmät Koostuvat kahdesta tai useammasta rinnakkain etenevästä ja keskenään kommunikoivasta prosesseista. Formaali verifiointi 11/29

18 Rinnakkaiset ja hajautetut järjestelmät Koostuvat kahdesta tai useammasta rinnakkain etenevästä ja keskenään kommunikoivasta prosesseista. Epädeterministisiä -> testaaminen on hankalaa virheiden löytäminen on hankalaa virheiden toistaminen on hankalaa Formaali verifiointi 11/29

19 Rinnakkaiset ja hajautetut järjestelmät Koostuvat kahdesta tai useammasta rinnakkain etenevästä ja keskenään kommunikoivasta prosesseista. Epädeterministisiä -> testaaminen on hankalaa virheiden löytäminen on hankalaa virheiden toistaminen on hankalaa Merkittävä osa uusista sovelluksista on rinnakkaisia ja/tai hajautettuja. Formaali verifiointi 11/29

20 Rinnakkaiset ja hajautetut järjestelmät Koostuvat kahdesta tai useammasta rinnakkain etenevästä ja keskenään kommunikoivasta prosesseista. Epädeterministisiä -> testaaminen on hankalaa virheiden löytäminen on hankalaa virheiden toistaminen on hankalaa Merkittävä osa uusista sovelluksista on rinnakkaisia ja/tai hajautettuja. Tyypillisiä rinnakkaisuusvirheitä Lukkiutumat Nälkiintyminen Ei-toivotulla tavalla lomittuvat suoritukset Formaali verifiointi 11/29

21 Verifiointiprosessi Epäformaalit vaatimukset Ohjelman kuvaus Formaalit vaatimukset Ohjelman malli Verifiointityökalu Ei virhettä Virhe Virhe mallissa -> tarkenna mallia Virhe ohjelmassa -> muuta ohjelmaa Formaali verifiointi 12/29

22 Verifioinnin edut (Rinnakkaisuuus)virheiden etsiminen on tehokkaampaa Virheitä voidaan todeta jo suunnitteluvaiheessa Ohjelma(n malli) voidaan todistaa tietyssä mielessä virheettömäksi Formaali verifiointi 13/29

23 Verifioinnin rajoitteet Automaattinen verifiointi on laskennallisesti raskasta ja yleisesti ottaen mahdotonta Ohjelman mallintaminen ja vaatimusten formalisointi vaatii aikaa ja asiantuntemusta Verifiointityökalujen integrointi kehitysympäristöön on haastavaa Työkalujen raportoimien virheiden analysointi voi vaatia asiantuntemusta Formaali verifiointi 14/29

24 Ohjelmien mallintaminen Ohjelmien mallintaminen 15/29

25 Äärellistilaiset mallit Verifiointiongelma käytännössä ratkeava Ohjelmien luonteva mallintaminen hankalaa Ohjelmien mallintaminen 16/29

26 Äärellistilaiset mallit Verifiointiongelma käytännössä ratkeava Ohjelmien luonteva mallintaminen hankalaa int i = 0; while(true) i++; Ohjelmien mallintaminen 16/29

27 Äärellistilaiset mallit Verifiointiongelma käytännössä ratkeava Ohjelmien luonteva mallintaminen hankalaa int i = 0; while(true) i++; i = 0 i = 1 i + + i + + i = 2 i + + Ohjelmien mallintaminen 16/29

28 Ääretöntilaiset mallit Usein luonteva abstraktio ohjelmien kuvaamiseen Verifiointiongelma ratkeava vain harvoissa tapauksissa Joskus liian abstrakti väline ohjelmien kuvaamiseen Ohjelmien mallintaminen 17/29

29 Ääretöntilaiset mallit Usein luonteva abstraktio ohjelmien kuvaamiseen Verifiointiongelma ratkeava vain harvoissa tapauksissa Joskus liian abstrakti väline ohjelmien kuvaamiseen LinkedList<Object> l; while(true) l.add(new Object()); Ohjelmien mallintaminen 17/29

30 Ääretöntilaiset mallit Usein luonteva abstraktio ohjelmien kuvaamiseen Verifiointiongelma ratkeava vain harvoissa tapauksissa Joskus liian abstrakti väline ohjelmien kuvaamiseen LinkedList<Object> l; while(true) l.add(new Object()); l.add(o 1 ) o 1 l.add(o 2 ) o 1, o 2 l.add(o 3 ) l.add(o n) X Ohjelmien mallintaminen 17/29

31 Parametroidut mallit Ohjelmissa on luonnollisia parametreja, toistuvien komponenttien määrä, tietotyyppien koko, järjestelmän rakenne, joita ei voi kiinnittää mihinkään tiettyyn arvoon Ohjelmien mallintaminen 18/29

32 Parametroidut mallit Ohjelmissa on luonnollisia parametreja, toistuvien komponenttien määrä, tietotyyppien koko, järjestelmän rakenne, joita ei voi kiinnittää mihinkään tiettyyn arvoon Ohjelmat voidaan luontevasti mallintaa parametroituina äärellistilaisina järjestelminä tai äärettömänä äärellistilaisten järjestelmien perheenä. Ohjelmien mallintaminen 18/29

33 Esimerkki parametroidusta järjestelmästä Ohjelma O(n) = P 1 P n R n rinnakkaista prosessia, joilla on yksi jaettu resurssi. O(n) on parametroitu järjestelmä, jossa n {1, 2,...}. {O(1), O(2),...} on vastaava ääretön järjestelmäperhe. Ohjelmien mallintaminen 19/29

34 Esimerkki parametroidusta järjestelmästä Ohjelma O(n) = P 1 P n R n rinnakkaista prosessia, joilla on yksi jaettu resurssi. O(n) on parametroitu järjestelmä, jossa n {1, 2,...}. {O(1), O(2),...} on vastaava ääretön järjestelmäperhe. Vaatimus V (n) mitkään kaksi prosessia eivät saa päästä käsiksi jaettuun resurssiin samanaikaisesti. Ohjelmien mallintaminen 19/29

35 Esimerkki parametroidusta järjestelmästä Ohjelma O(n) = P 1 P n R n rinnakkaista prosessia, joilla on yksi jaettu resurssi. O(n) on parametroitu järjestelmä, jossa n {1, 2,...}. {O(1), O(2),...} on vastaava ääretön järjestelmäperhe. Vaatimus V (n) mitkään kaksi prosessia eivät saa päästä käsiksi jaettuun resurssiin samanaikaisesti. Parametroitu verifiointiongelma/kysymys Toimiiko ohjelma O(n) vaatimuksen V (n) mukaisesti, merk. O(n) V (n), kaikilla parametrin n = 1, 2,... arvoilla? Ohjelmien mallintaminen 19/29

36 Esimerkki parametroidusta järjestelmästä Ohjelma O(n) = P 1 P n R n rinnakkaista prosessia, joilla on yksi jaettu resurssi. O(n) on parametroitu järjestelmä, jossa n {1, 2,...}. {O(1), O(2),...} on vastaava ääretön järjestelmäperhe. Vaatimus V (n) mitkään kaksi prosessia eivät saa päästä käsiksi jaettuun resurssiin samanaikaisesti. Parametroitu verifiointiongelma/kysymys Toimiiko ohjelma O(n) vaatimuksen V (n) mukaisesti, merk. O(n) V (n), kaikilla parametrin n = 1, 2,... arvoilla? Lause (Apt & Kozen 1986) Ongelma on yleisesti ratkeamaton. Ohjelmien mallintaminen 19/29

37 Parametroidun verifioinnin menetelmiä Parametroidun verifioinnin menetelmiä 20/29

38 Induktio Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P muodostaa ketjun/renkaan ja vaatimus on parametrista riippumaton eli V (n) := V. Parametroidun verifioinnin menetelmiä 21/29

39 Induktio Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P muodostaa ketjun/renkaan ja vaatimus on parametrista riippumaton eli V (n) := V. Induktioperiaate 1. Keksi (invariantti)prosessi I. Parametroidun verifioinnin menetelmiä 21/29

40 Induktio Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P muodostaa ketjun/renkaan ja vaatimus on parametrista riippumaton eli V (n) := V. Induktioperiaate 1. Keksi (invariantti)prosessi I. 2. Osoita (verifiointityökalua käyttäen), että P 1 I. Parametroidun verifioinnin menetelmiä 21/29

41 Induktio Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P muodostaa ketjun/renkaan ja vaatimus on parametrista riippumaton eli V (n) := V. Induktioperiaate 1. Keksi (invariantti)prosessi I. 2. Osoita (verifiointityökalua käyttäen), että P 1 I. 3. Osoita (verifiointityökalua käyttäen), että I P I. Parametroidun verifioinnin menetelmiä 21/29

42 Induktio Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P muodostaa ketjun/renkaan ja vaatimus on parametrista riippumaton eli V (n) := V. Induktioperiaate 1. Keksi (invariantti)prosessi I. 2. Osoita (verifiointityökalua käyttäen), että P 1 I. 3. Osoita (verifiointityökalua käyttäen), että I P I. 4. Osoita (verifiointityökalua käyttäen), että I V. Parametroidun verifioinnin menetelmiä 21/29

43 Induktio Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P muodostaa ketjun/renkaan ja vaatimus on parametrista riippumaton eli V (n) := V. Induktioperiaate 1. Keksi (invariantti)prosessi I. 2. Osoita (verifiointityökalua käyttäen), että P 1 I. 3. Osoita (verifiointityökalua käyttäen), että I P I. 4. Osoita (verifiointityökalua käyttäen), että I V. 5. Tästä seuraa, että O(n) V kaikilla n = 1, 2,.... Parametroidun verifioinnin menetelmiä 21/29

44 Induktio Menetelmä toimii perusverifiointityökalujen kanssa. Toimii vain tietyn tyyppisille järjestelmille. Invarianttiprosessin keksiminen voi olla hankalaa. Invarianttiprosessia ei aina ole olemassa. Parametroidun verifioinnin menetelmiä 22/29

45 Induktio Menetelmä toimii perusverifiointityökalujen kanssa. Toimii vain tietyn tyyppisille järjestelmille. Invarianttiprosessin keksiminen voi olla hankalaa. Invarianttiprosessia ei aina ole olemassa. Tuloksia Kurshan & McMillan 1989, 1995 Wolper & Lovinfosse 1990 Valmari & Tienari 1991 Valmari & Kokkarinen 1998 Creese 2001 Parametroidun verifioinnin menetelmiä 22/29

46 Abstrahointi/ääretöntilaiset mallit Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P ovat kaikki yhteyksissä toisiinsa (suoraan tai välillisesti) ja vaatimus on parametrista riippumaton eli V (n) := V. Parametroidun verifioinnin menetelmiä 23/29

47 Abstrahointi/ääretöntilaiset mallit Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P ovat kaikki yhteyksissä toisiinsa (suoraan tai välillisesti) ja vaatimus on parametrista riippumaton eli V (n) := V. Idea 1. Kuvaa parametroitu järjestelmä (ääretön järjestelmäperhe) yhdeksi ääretöntilaiseksi järjestelmäksi J. Kuvauksen tulee olla sellainen, että O(n) J kaikilla n = 1, 2,.... Parametroidun verifioinnin menetelmiä 23/29

48 Abstrahointi/ääretöntilaiset mallit Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P ovat kaikki yhteyksissä toisiinsa (suoraan tai välillisesti) ja vaatimus on parametrista riippumaton eli V (n) := V. Idea 1. Kuvaa parametroitu järjestelmä (ääretön järjestelmäperhe) yhdeksi ääretöntilaiseksi järjestelmäksi J. Kuvauksen tulee olla sellainen, että O(n) J kaikilla n = 1, 2, Osoita (verifiointityökalua käyttäen), että J V. Parametroidun verifioinnin menetelmiä 23/29

49 Abstrahointi/ääretöntilaiset mallit Toimii parhaiten parametroiduille järjestelmille O(n) = P 1 P n, jossa n identtistä komponenttia P i := P ovat kaikki yhteyksissä toisiinsa (suoraan tai välillisesti) ja vaatimus on parametrista riippumaton eli V (n) := V. Idea 1. Kuvaa parametroitu järjestelmä (ääretön järjestelmäperhe) yhdeksi ääretöntilaiseksi järjestelmäksi J. Kuvauksen tulee olla sellainen, että O(n) J kaikilla n = 1, 2, Osoita (verifiointityökalua käyttäen), että J V. 3. Tästä seuraa, että O(n) V kaikilla n = 1, 2,.... Parametroidun verifioinnin menetelmiä 23/29

50 Abstrahointi/ääretöntilaiset mallit Koko prosessi on yleensä automatisoitavissa. Toimii vain tietyn tyyppisille järjestelmille. Abstrahointityökalut/ääretöntilaisten järjestelmien verifiointityökalut eivät ole yhtä kehittyneitä kuin äärellistilaisten järjestelmien verifiointityökalut. Parametroidun verifioinnin menetelmiä 24/29

51 Abstrahointi/ääretöntilaiset mallit Koko prosessi on yleensä automatisoitavissa. Toimii vain tietyn tyyppisille järjestelmille. Abstrahointityökalut/ääretöntilaisten järjestelmien verifiointityökalut eivät ole yhtä kehittyneitä kuin äärellistilaisten järjestelmien verifiointityökalut. Tuloksia Lubachevsky 1984 German & Sistla 1992 Delzanno, Raskin, Van Begin 2002 Lahiri & Bryant 2004 Wachter & Westphal 2007 Ghilardi & Ranise 2010 Parametroidun verifioinnin menetelmiä 24/29

52 Parametrien raja-arvot Idea 1. Määritä parametrille n sellainen raja-arvo k, että O(n) V (n) kaikilla n = 1, 2,..., k, jos ja vain jos O(n) V (n) kaikilla n = 1, 2,.... Parametroidun verifioinnin menetelmiä 25/29

53 Parametrien raja-arvot Idea 1. Määritä parametrille n sellainen raja-arvo k, että O(n) V (n) kaikilla n = 1, 2,..., k, jos ja vain jos O(n) V (n) kaikilla n = 1, 2, Osoita (verifiointyökalua käyttäen), että O(n) V (n) kaikilla n = 1, 2,..., k. Parametroidun verifioinnin menetelmiä 25/29

54 Parametrien raja-arvot Idea 1. Määritä parametrille n sellainen raja-arvo k, että O(n) V (n) kaikilla n = 1, 2,..., k, jos ja vain jos O(n) V (n) kaikilla n = 1, 2, Osoita (verifiointyökalua käyttäen), että O(n) V (n) kaikilla n = 1, 2,..., k. 3. Tästä seuraa, että O(n) V (n) kaikilla n = 1, 2,.... Parametroidun verifioinnin menetelmiä 25/29

55 Parametrien raja-arvot Idea 1. Määritä parametrille n sellainen raja-arvo k, että O(n) V (n) kaikilla n = 1, 2,..., k, jos ja vain jos O(n) V (n) kaikilla n = 1, 2, Osoita (verifiointyökalua käyttäen), että O(n) V (n) kaikilla n = 1, 2,..., k. 3. Tästä seuraa, että O(n) V (n) kaikilla n = 1, 2,.... Menetelmä toimii perusverifiointityökalujen kanssa. Raja-arvo on aina olemassa. Raja-arvon keksiminen voi olla hankalaa. Raja-arvotulokset pätevät vain tietyntyyppisille järjestelmille. Parametroidun verifioinnin menetelmiä 25/29

56 Raja-arvotuloksia Tietotyyppien koolle Wolper 1986 Lazić 1999 Parametroidun verifioinnin menetelmiä 26/29

57 Raja-arvotuloksia Tietotyyppien koolle Wolper 1986 Lazić 1999 Prosessien määrälle Emerson & Kahlon 2000, 2002, 2004 Emerson & Namjoshi 2003 Bouajjani, Habermehl & Vojnar 2008 Yang & Li 2010 Parametroidun verifioinnin menetelmiä 26/29

58 Raja-arvotuloksia Tietotyyppien koolle Wolper 1986 Lazić 1999 Prosessien määrälle Emerson & Kahlon 2000, 2002, 2004 Emerson & Namjoshi 2003 Bouajjani, Habermehl & Vojnar 2008 Yang & Li 2010 Prosessien määrälle + parametroitu järjestelmän rakenne Clarke, Talupur, Touili & Veith 2004 Siirtola & Kortelainen 2009 Parametroidun verifioinnin menetelmiä 26/29

59 Raja-arvotuloksia Tietotyyppien koolle Wolper 1986 Lazić 1999 Prosessien määrälle Emerson & Kahlon 2000, 2002, 2004 Emerson & Namjoshi 2003 Bouajjani, Habermehl & Vojnar 2008 Yang & Li 2010 Prosessien määrälle + parametroitu järjestelmän rakenne Clarke, Talupur, Touili & Veith 2004 Siirtola & Kortelainen 2009 Tietotyyppien koolle + prosessien määrälle Siirtola & Heljanko 2013 Parametroidun verifioinnin menetelmiä 26/29

60 Yhteenveto Yhteenveto 27/29

61 Yhteenveto Ohjelmat voidaan mallintaa luontevasti parametroituina järjestelminä. Parametroidun verifioinnin menetelmien kehittäminen on teoreettisesti haastavaa, koska ongelma on yleisesti ratkeamaton. Parametroitu verifiointi on käytännössä tärkeää erityisesti rinnakkaisten ja hajautettujen järjestelmien sekä kriittisten järjestelmien toiminnan tarkan analysoinnin kannalta. Yhteenveto 28/29

62 Kiitos! Kysymyksiä? Yhteenveto 29/29

Tietojenkäsittelytieteen pääaine Pääaineinfo ke

Tietojenkäsittelytieteen pääaine Pääaineinfo ke Tietojenkäsittelytieteen pääaine Pääaineinfo ke Pekka Orponen Tietojenkäsittelytieteen laitos Aalto-yliopisto http://ics.aalto.fi/ Tietojenkäsittelytiede Kehitetään systemaattisia ja tehokkaita malleja

Lisätiedot

Tutkimusmenetelmät-kurssi, s-2004

Tutkimusmenetelmät-kurssi, s-2004 Algoritmitutkimuksen menetelmistä Tutkimusmenetelmät-kurssi, s-2004 Pekka Kilpeläinen Kuopion yliopisto Tietojenkäsittelytieteen laitos Algoritmitutkimuksen menetelmistä p.1/20 Sisällys Tänään Tietojenkäsittelytiede

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Todistamisessa on tärkeää erottaa tapaukset, kun sääntö pätee joillakin tai kun sääntö pätee kaikilla. Esim. On olemassa reaaliluku x, jolle x = 5.

Todistamisessa on tärkeää erottaa tapaukset, kun sääntö pätee joillakin tai kun sääntö pätee kaikilla. Esim. On olemassa reaaliluku x, jolle x = 5. 3.4 Kvanttorit Todistamisessa on tärkeää erottaa tapaukset, kun sääntö pätee joillakin tai kun sääntö pätee kaikilla. Esim. On olemassa reaaliluku x, jolle x = 5. Kaikilla reaaliluvuilla x pätee x+1 >

Lisätiedot

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Onnistunut SAP-projekti laadunvarmistuksen keinoin Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science Testaustyökalut Luento 11 Antti-Pekka Tuovinen 25 April 2013 1 Tavoitteet Työkalutyyppejä Testauksen hallinta Testien määrittely Staattinen analyysi Dynaaminen testaus 25 April 2013 2 1 Työkalut ja testaus

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

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

Lisätiedot

FUNKTIONAALIANALYYSIN PERUSKURSSI 1. 0. Johdanto

FUNKTIONAALIANALYYSIN PERUSKURSSI 1. 0. Johdanto FUNKTIONAALIANALYYSIN PERUSKURSSI 1. Johdanto Funktionaalianalyysissa tutkitaan muun muassa ääretönulotteisten vektoriavaruuksien, ja erityisesti täydellisten normiavaruuksien eli Banach avaruuksien ominaisuuksia.

Lisätiedot

Tietoyhteiskunnan haavoittuvuus kuinka voimme hallita sitä?

Tietoyhteiskunnan haavoittuvuus kuinka voimme hallita sitä? Huoltovarmuuskeskuksen 10-vuotisjuhlaseminaari Helsinki, 26.2.2003 Tietoyhteiskunnan haavoittuvuus kuinka voimme hallita sitä? TkT Arto Karila Karila A. & E. Oy E-mail: arto.karila@karila.com HVK, 26.2.2003-1

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

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman

Lisätiedot

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri } 135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren

Lisätiedot

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen Yksikkötestaus Kattava testaus Moduulitestaus Ohjelman testaus 1 Kattava testaus Testauksen perimmäinen tarkoitus on LÖYTÄÄ VIRHEITÄ Testaus pitäisi olla täydellinen: - Jokainen pyydetty arvo pitäisi testata

Lisätiedot

Tiina Partanen. Koodaamassa Matikantunnilla

Tiina Partanen. Koodaamassa Matikantunnilla Koodaamassa Matikantunnilla Racket-iskuryhmä? Ryhmä Tamperelaisia ja Ylöjärveläisiä opettajia, jotka testaavat ja kehittävät Racket-ohjelmointimateriaalia yläkoulun matematiikan (tietotekniikan ja fysiikan)

Lisätiedot

vain äärellisten rakenteiden kohdalla. Siksi keskitynkin ongelmista edelliseen: tilaavaruudeltaan

vain äärellisten rakenteiden kohdalla. Siksi keskitynkin ongelmista edelliseen: tilaavaruudeltaan Tietojenkäsittelytiede 24 Joulukuu 2005 sivut 22 34 Toimittaja: Jorma Tarhio c kirjoittaja(t) Ohjelmistojen äärellistilaisten, formaalisti oikeiden mallien tuottaminen automaattisesti Antti Siirtola Oulun

Lisätiedot

Mallintarkistus ja sen

Mallintarkistus ja sen VERSIO 0.1 LUONNOS Mallintarkistus ja sen soveltaminen PLCohjelmien verifioinnissa AS-0.3200 Automaatio- ja systeemitekniikan projektityöt -projektisuunnitelma Markus Hartikainen 2/1/2009 Sisältö 1. Projektityön

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

4.5. MATEMAATTISTEN AINEIDEN OPETTAJANKOULUTUS. 4.5.1. Tutkinnon rakenne. Matemaattisten aineiden koulutusohjelma

4.5. MATEMAATTISTEN AINEIDEN OPETTAJANKOULUTUS. 4.5.1. Tutkinnon rakenne. Matemaattisten aineiden koulutusohjelma Matemaattisten aineiden 82 4.5. MATEMAATTISTEN AINEIDEN OPETTAJANKOULUTUS Koulutuksesta vastaa professori Seppo Pohjolainen, Matematiikan laitos, huone Sg207, puhelin 365 2424 email: seppo.pohjolainen@tut.fi.

Lisätiedot

Ohjelmistotekniikan pääaine

Ohjelmistotekniikan pääaine Ohjelmistotekniikan pääaine Ari Korhonen 7.11.2012 Ohjelmistotekniikan opetus! Tietotekniikan laitoksessa tutkitaan ja opetetaan laajaalaisesti tieto- ja ohjelmistotekniikan menetelmiä ja niiden soveltamista.

Lisätiedot

ENE-C3001 Energiasysteemit

ENE-C3001 Energiasysteemit ENE-C3001 Energiasysteemit Tervetuloa kurssille! Kari Alanne Kurssin henkilökunta Vanhempi yliopistonlehtori Dosentti, TkT Kari Alanne Aalto-yliopisto, Energiatekniikan laitos kari.alanne@aalto.fi Puhelin

Lisätiedot

Tietojenkäsittelytieteen tutkintovaatimukset

Tietojenkäsittelytieteen tutkintovaatimukset Tietojenkäsittelytieteen tutkintovaatimukset Näiden tutkintovaatimusten mukaan opiskelevat lukuvuonna 2006 2007 opintonsa aloittaneet opiskelijat sekä uuteen tutkintojärjestelmään lukuvuoden 2005 2006

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - VYM JA KANTA Versio 1.0 i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt Testiautomaatio tietovarastossa Automaattisen regressiotestauksen periaate ja hyödyt Sisältö 2 Testaus kiinteänä osana DW-toteutusta Regressiotestauksen merkitys Robot Framework Automatisoitu DW:n regressiotestaus:

Lisätiedot

Opetusperiodi:I, suunnattu hakukohteille:

Opetusperiodi:I, suunnattu hakukohteille: Kurssin nimi ja koodi Muut kommentit MS-A0001 Matriisilaskenta 5 op (Matrisräkning, Kuvaus: kurssi Teknillinen fysiikka ja matematiikka käsittelee lineaarisia yhtälöryhmiä sekä vektoreita ja matriiseja

Lisätiedot

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen. Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,

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

Ensimmäinen induktioperiaate

Ensimmäinen induktioperiaate 1 Ensimmäinen induktioperiaate Olkoon P(n) luonnollisilla luvuilla määritelty predikaatti. (P(n) voidaan lukea luvulla n on ominaisuus P.) Todistettava, että P(n) on tosi jokaisella n N. ( Kaikilla luonnollisilla

Lisätiedot

Projektisuunnitelma Viulu

Projektisuunnitelma Viulu Projektisuunnitelma Viulu Kuusela Johannes Sjöblom Teemu Suominen Osma Ohjelmistotuotantoprojekti Helsinki 23.9.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Versiohistoria Päivämäärä Versio

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 ari.vesanen (at) oulu.fi 5. Rekursio ja induktio Rekursio tarkoittaa jonkin asian määrittelyä itseensä viittaamalla Tietojenkäsittelyssä algoritmin määrittely niin,

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

Tietotekniikan Sovellusprojektit

Tietotekniikan Sovellusprojektit Tietotekniikan Sovellusprojektit Jukka-Pekka Santanen Tietotekniikan laitos 16.2.2010 Tavoitteena taitoja ja kokemusta projektimuotoisesta työtavasta ja ryhmätyöstä, projektin hallinnasta ja johtamisesta,

Lisätiedot

Kryptografiset vahvuusvaatimukset luottamuksellisuuden suojaamiseen - kansalliset suojaustasot

Kryptografiset vahvuusvaatimukset luottamuksellisuuden suojaamiseen - kansalliset suojaustasot Ohje 1 (5) Dnro: 11.11.2015 190/651/2015 Kryptografiset vahvuusvaatimukset luottamuksellisuuden suojaamiseen - kansalliset suojaustasot 1 Johdanto Tässä dokumentissa kuvataan ne kryptografiset vähimmäisvaatimukset,

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 1 Ti 6.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 1 Ti 6.9.2011 p. 1/28 p. 1/28 Numeriikan termejä Simulointi: Reaalimaailman ilmiöiden jäljitteleminen (yleensä)

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 12: Lokalisointia/kansainvälistystä TIE-20200 Samuel Lahtinen 1 Sisältöä Kansainvälistäminen/lokalisointi Mitä asioita voi liittyä kansainvälistämiseen/lokalisointiin?

Lisätiedot

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä Edellä esitetyt kielten A TM ja HALT TM ratkeamattomuustodistukset ovat esimerkkejä palautuksesta (reduction). Intuitiivisesti ongelman A palauttaminen ongelmaan B tarkoittaa, että Oletetaan, että meillä

Lisätiedot

Uusilla konsepteilla oikeanlaisia palveluita Helsinkiin

Uusilla konsepteilla oikeanlaisia palveluita Helsinkiin Uusilla konsepteilla oikeanlaisia palveluita Helsinkiin Heli Rantanen, projektipäällikkö heli.k.rantanen@hel.fi 6Aika Avoin asiakkuus ja osallisuus Helsingin kaupunki HELSINKI 310 ASIAKASPALVELUMALLI KÄYTTÄJÄ-

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio

Lisätiedot

Tenttiin valmentavia harjoituksia

Tenttiin valmentavia harjoituksia Tenttiin valmentavia harjoituksia Alla olevissa harjoituksissa suluissa oleva sivunumero viittaa Juha Partasen kurssimonisteen siihen sivuun, jolta löytyy apua tehtävän ratkaisuun. Funktiot Harjoitus.

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

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

8003051 Puheenkäsittelyn menetelmät

8003051 Puheenkäsittelyn menetelmät 8003051 Puheenkäsittelyn menetelmät Luento 7.10.2004 Puhesynteesi Sisältö 1. Sovelluskohteita 2. Puheen ja puhesyntetisaattorin laatu 3. Puhesynteesin toteuttaminen TTS-syntetisaattorin komponentit Kolme

Lisätiedot

T harjoitustyö, kevät 2012

T harjoitustyö, kevät 2012 T-110.4100 harjoitustyö, kevät 2012 Kurssiassistentit T-110.4100@tkk.fi Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto 31.1.2012 Yleistä Kurssin osasuoritteita ovat kaksi osatenttiä,

Lisätiedot

Lehtori, DI Yrjö Muilu, Centria AMK Ydinosaajat Suurhankkeiden osaamisverkosto Pohjois-Suomessa S20136

Lehtori, DI Yrjö Muilu, Centria AMK Ydinosaajat Suurhankkeiden osaamisverkosto Pohjois-Suomessa S20136 Laatudokumentoinnin kehittäminen, sähködokumentaatio-mapin sisältö. 3D-mallinnus ja sen käyttö Lehtori, DI Yrjö Muilu, Centria AMK Ydinosaajat Suurhankkeiden osaamisverkosto Pohjois-Suomessa S20136 Laadunhallintaan

Lisätiedot

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa: Simo K. Kivelä, 13.7.004 Frégier'n lause Toisen asteen käyrillä ellipseillä, paraabeleilla, hyperbeleillä ja niiden erikoistapauksilla on melkoinen määrä yksinkertaisia säännöllisyysominaisuuksia. Eräs

Lisätiedot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

4 Matemaattinen induktio

4 Matemaattinen induktio 4 Matemaattinen induktio Joidenkin väitteiden todistamiseksi pitää näyttää, että kaikilla luonnollisilla luvuilla on jokin ominaisuus P. Esimerkkejä tällaisista väitteistä ovat vaikkapa seuraavat: kaikilla

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Turvallinen etäkäyttö Aaltoyliopistossa

Turvallinen etäkäyttö Aaltoyliopistossa Turvallinen etäkäyttö Aaltoyliopistossa Diplomityöseminaari Ville Pursiainen Aalto-yliopiston tietotekniikkapalvelut Valvoja: Prof Patric Östergård, Ohjaajat: DI Jari Kotomäki, DI Tommi Saranpää 7.10.2016

Lisätiedot

Visualisointi informaatio- verkostojen opinto-oppaasta Informaatioverkostojen kilta Athene ry Opintovastaava Janne Käki 19.9.

Visualisointi informaatio- verkostojen opinto-oppaasta Informaatioverkostojen kilta Athene ry Opintovastaava Janne Käki 19.9. Visualisointi informaatio- verkostojen opinto-oppaasta 2005-2006 Informaatioverkostojen kilta Athene ry Opintovastaava Janne Käki 19.9.2006 Diplomi-insinöörin tutkinto (DI, 120 op) Diplomityö (30 op) Tieteen

Lisätiedot

Valtion konesali- ja kapasiteettipalvelut

Valtion konesali- ja kapasiteettipalvelut Valtion konesali- ja kapasiteettipalvelut Valtorin asiakaspäivä 30.10.2014 Palvelupäällikkö Timo Karppanen Käsiteltävät asiat Valtion konesali- ja kapasiteettipalvelut Valtion jaettu tuotantoympäristö

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

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

M = (Q, Σ, Γ, δ, q 0, q acc, q rej ) 6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea.

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon

Lisätiedot

Automatisoinnilla tehokkuutta mittaamiseen

Automatisoinnilla tehokkuutta mittaamiseen Automatisoinnilla tehokkuutta mittaamiseen Finesse seminaari 22.3.2000 Päivi Parviainen 1 Miksi automatisoida? Mittaamisen hyödyt ohjelmistokehityksen ajantasainen seuranta ja hallinta tuotteen laadun

Lisätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Täydentäviä muistiinpanoja laskennan rajoista Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen

Lisätiedot

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi 17.5.2006 1/5 Oppimistavoitteet kurssilla Rinnakkaisohjelmointi Rinnakkaisuus ja rinnakkaisuuden soveltaminen tietojenkäsittelyjärjestelmissä Kurssin Tietokoneen toiminta perusteella ymmärtää, miten ohjelman

Lisätiedot

ALGORITMIT & OPPIMINEN

ALGORITMIT & OPPIMINEN ALGORITMIT & OPPIMINEN Mitä voidaan automatisoida? Mikko Koivisto Avoimet aineistot tulevat Tekijä: Lauri Vanhala yhdistä, kuvita, selitä, ennusta! Tekijä: Logica Mitä voidaan automatisoida? Algoritmi

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Pino Pinon määritelmä Pinon sovelluksia Järjestyksen kääntäminen Palindromiprobleema Postfix-lausekkeen laskenta Infix-lausekkeen muunto postfix-lausekkeeksi Sisäkkäiset funktiokutsut

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

UML-kielen formalisointi Object-Z:lla

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

Lisätiedot

Verkkotehtäviin pohjautuva arviointi matematiikan opetuksessa

Verkkotehtäviin pohjautuva arviointi matematiikan opetuksessa Verkkotehtäviin pohjautuva arviointi matematiikan opetuksessa Linda Blåfield, Helle Majander, Antti Rasila & Pekka Alestalo Aalto-yliopiston teknillinen korkeakoulu Oppimisen arviointi Käytännössä: Tarkastellaan

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

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

Matematiikan ohjelmointi. Joakim von Wright

Matematiikan ohjelmointi. Joakim von Wright Matematiikan ohjelmointi Joakim von Wright Formaali menetelmä käytännössä miten todistetaan ohjelman oikeellisuus? miltä todistus näyttn yttää? isot ohjelmat? miljoona riviä koodia nykyajan ohjelmat? rinnakkaisuus,

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

Lisätiedot

Paavo Kyyrönen & Janne Raassina

Paavo Kyyrönen & Janne Raassina Paavo Kyyrönen & Janne Raassina 1. Johdanto 2. Historia 3. David Deutsch 4. Kvanttilaskenta ja superpositio 5. Ongelmat 6. Tutkimus 7. Esimerkkejä käyttökohteista 8. Mistä näitä saa? 9. Potentiaali 10.

Lisätiedot

uv n, v 1, ja uv i w A kaikilla

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot

Logiikka 1/5 Sisältö ESITIEDOT:

Logiikka 1/5 Sisältö ESITIEDOT: Logiikka 1/5 Sisältö Formaali logiikka Luonnollinen logiikka muodostaa perustan arkielämän päättelyille. Sen käyttö on intuitiivista ja usein tiedostamatonta. Mikäli logiikka halutaan täsmällistää esimerkiksi

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola Liikehavaintojen estimointi langattomissa lähiverkoissa Diplomityöseminaari Jukka Ahola ESITYKSEN SISÄLTÖ Työn tausta Tavoitteen asettelu Johdanto Liikehavaintojen jakaminen langattomassa mesh-verkossa

Lisätiedot

Ohjelmistojen mallintaminen

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

Lisätiedot

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. maaliskuuta 2012 Sisällys Ongelma-analyysiä Sisällys Ongelma-analyysiä Hypoteettinen ongelma The Elite Bugbusters

Lisätiedot

Matematiikka ja tilastotiede. Orientoivat opinnot /

Matematiikka ja tilastotiede. Orientoivat opinnot / Matematiikka ja tilastotiede Orientoivat opinnot / 27.8.2013 Tutkinnot Kaksi erillistä ja peräkkäistä tutkintoa: LuK + FM Laajuudet 180 op + 120 op = 300 op Ohjeellinen suoritusaika 3 v + 2 v = 5 v Tutkinnot

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

FI3 Tiedon ja todellisuuden filosofia LOGIIKKA. 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan:

FI3 Tiedon ja todellisuuden filosofia LOGIIKKA. 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan: LOGIIKKA 1 Mitä logiikka on? päättelyn tiede o oppi muodollisesti pätevästä päättelystä 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan: sisältö, merkitys: onko jokin premissi

Lisätiedot

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Tutkintovaatimukset suoraan DI-vaiheeseen valituille 1 / 12 Tutkintovaatimukset suoraan DI-vaiheeseen valituille Nämä ohjeet on laadittu muille kuin tekniikan kandidaatin pohjatutkinnolla suoraan TTYn DIvaiheeseen tulleille. Tekniikan kandidaatin tutkinnolla

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää

Lisätiedot

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään

Lisätiedot

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä $$$ Raha ratkaisee On vaara rakastua tekniikkaan, myös asiakkailla Kaikki pitää pystyä perustelemaan taloudellisesti Projektin toteutus yleensä -> voidaan jättää toteuttamatta, jos ei maksa itseään takaisin

Lisätiedot

AVL - PAKOKAASUANALYSAATTORIT 4000 - SARJA PAKOKAASUANALYSAATTORIT BENSIINI - JA DIESELMOOTTOREILLE

AVL - PAKOKAASUANALYSAATTORIT 4000 - SARJA PAKOKAASUANALYSAATTORIT BENSIINI - JA DIESELMOOTTOREILLE AVL - PAKOKAASUANALYSAATTORIT 4000 - SARJA PAKOKAASUANALYSAATTORIT BENSIINI - JA DIESELMOOTTOREILLE Finntest Oy Olarinluoma 16 02200 ESPOO Puh. 09-439 1400 Fax. 09-4391 4020 finntest@finntest.fi www.finntest.fi

Lisätiedot

Konenäön hyödyntämismahdollisuudet teiden ylläpidossa ja hoidossa

Konenäön hyödyntämismahdollisuudet teiden ylläpidossa ja hoidossa INFRA2010 KEHITTÄMISOHJELMAN LOPPUSEMINAARI 5.11.2008 Konenäön hyödyntämismahdollisuudet teiden ylläpidossa ja hoidossa SEPPO ROPPONEN, Intopii Oy Sisältö Esiselvityksen tavoitteet ja osallistujat Mitä

Lisätiedot

Muodolliset kieliopit

Muodolliset kieliopit Muodolliset kieliopit Luonnollisen kielen lauseenmuodostuksessa esiintyy luonnollisia säännönmukaisuuksia. Esimerkiksi, on jokseenkin mielekästä väittää, että luonnollisen kielen lauseet koostuvat nk.

Lisätiedot