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

TIETOTEKNIIKKA 2012-2013 Koodi Vanha opintojakso op ov Vastuuhenkilö LV 2011-2012 vastaavat opinnot tai korvaava suoritustapa TTE.

TIETOTEKNIIKKA 2012-2013 Koodi Vanha opintojakso op ov Vastuuhenkilö LV 2011-2012 vastaavat opinnot tai korvaava suoritustapa TTE. TIETOTEKNIIKKA 2012-2013 Koodi Vanha opintojakso op ov Vastuuhenkilö LV 2011-2012 vastaavat opinnot tai korvaava suoritustapa TTE.344 Agenttipohjainen tietojenkäsittely 3 Ei voi suorittaa, tilalle jokin

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

Tarvitseeko informaatioteknologia matematiikkaa?

Tarvitseeko informaatioteknologia matematiikkaa? Tarvitseeko informaatioteknologia matematiikkaa? Oulun yliopisto Matemaattisten tieteiden laitos 1 Kyllä kai IT matematiikkaa tarvitsee!? IT ja muu korkea teknologia on nimenomaan matemaattista teknologiaa.

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

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta. Tietojenkäsittelytiede Tutkintovaatimukset Perustutkinnot LUONNONTIETEIDEN KANDIDAATIN TUTKINTO (VÄHINTÄÄN 120 OV) 1. Tietojenkäsittelytieteen cum laude approbatur -oppimäärä (vähintään 55 ov) ja kypsyysnäyte

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

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

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä Simo Tauriainen www.ponsse.com 25.8.2011 Ponsse-konserni Ponsse Oyj on tavaralajimenetelmän metsäkoneiden myyntiin, tuotantoon, huoltoon ja

Lisätiedot

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä

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

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

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

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

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

Lisätiedot

Muita vaativuusluokkia

Muita vaativuusluokkia Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):

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

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

O P I N T O S U O R I T U S O T E

O P I N T O S U O R I T U S O T E Jyväskylän yliopisto 19.02.2013 O P I N T O S U O R I T U S O T E Sukunimi : Soranto Etunimet : Annemari Kristiina Syntymäaika : 01.05.1977 Opinto-oikeus : Varsinainen Tutkintotavoite : Kauppatieteiden

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.

Lisätiedot

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

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

Lisätiedot

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

TIETOTEKNIIKAN KOULUTUSOHJELMA

TIETOTEKNIIKAN KOULUTUSOHJELMA TIETOTEKNIIKAN KOULUTUSOHJELMA Tietotekniikan koulutusohjelman toimintaympäristö ja osaamistavoitteet Tietotekniikan koulutusohjelmasta valmistuneet insinöörit sijoittuvat suunnittelu-, ohjelmointi-, esimies-,

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

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

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

SCI-A0000 Johdatus opiskeluun (2 op) Teknistieteellinen kandidaattiohjelma. Informaatioverkostojen pääaine

SCI-A0000 Johdatus opiskeluun (2 op) Teknistieteellinen kandidaattiohjelma. Informaatioverkostojen pääaine SCI-A0000 Johdatus opiskeluun (2 op) Teknistieteellinen kandidaattiohjelma Informaatioverkostojen pääaine Työelämä ja tiedeyhteisö Tapaamisen 29.9 aiheita Miten opiskeluni Informaatioverkostojen pääaineessa

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

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa

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

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

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

3. Laskennan vaativuusteoriaa

3. Laskennan vaativuusteoriaa 3. Laskennan vaativuusteoriaa tähän asti puhuttu siitä, mitä on mahdollista laskea äärellisessä ajassa siirrytään tarkastelemaan laskemista kohtuullisessa ajassa vaihtoehtoisesti voidaan laskenta-ajan

Lisätiedot

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset Opettajatuutorointi-kurssin syksyn 26 kyselyjen tulokset Opinnot keväällä ja syksyllä 26 Pirjo Moen, 2.1.26 Yleistä Kyselyyn vastasi 2.9.26 mennessä 121 opiskelijaa vanhan tutkintojärjestelmän mukaan etenevistä

Lisätiedot

Tietoyhteiskunnan perustaidot. Kesäkuu 2014

Tietoyhteiskunnan perustaidot. Kesäkuu 2014 Tietoyhteiskunnan perustaidot Kesäkuu 2014 Kurssin järjestäjästä Ohjelmistotuotannon ja Tiedonhallinnan Laitos Tuotantotalouden Tiedekunta Lappeenrannan Teknillinen Yliopisto Tietotekniikan koulutusohjelmasta

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

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

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms. Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,

Lisätiedot

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa Älykästä kulunvalvontaa e Acces toimii asiakkaan omassa tietoverkossa Perinteisen kulunvalvonnan seitsemän pullonkaulaa eli miksi useat yritykset eivät ole hankkineet kulunvalvontajärjestelmää? 1. Koska

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

Johdatus diskreettiin matematiikkaan (syksy 2009) Harjoitus 3, ratkaisuja Janne Korhonen

Johdatus diskreettiin matematiikkaan (syksy 2009) Harjoitus 3, ratkaisuja Janne Korhonen Johdatus diskreettiin matematiikkaan (syksy 009) Harjoitus 3, ratkaisuja Janne Korhonen 1. Väite: Funktio f : [, ) [1, ), missä on bijektio. f(x) = x + 4x + 5, Todistus: Luentomateriaalissa todistettujen

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

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

EKSOTE Sähköisen asioinnin seminaari 14.10.2014

EKSOTE Sähköisen asioinnin seminaari 14.10.2014 EKSOTE Sähköisen asioinnin seminaari 14.10.2014 Sähköisen asioinnin mahdollisuudet tulevaisuudessa Sami Säisä Mitä on sähköinen asiointi? Sähköinen Internetissä toimivaa palvelua? Itsepalveluna toteutettavaa

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

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi 1. Luento: Sulautetut Järjestelmät Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu

Lisätiedot

Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa

Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa Lektio 20.12.2012, Annemari Soranto Tietotekniikan laitos annemari.k.soranto@jyu.fi 1 Agenda Vertaisverkon määritelmä Haku vertaisverkossa

Lisätiedot

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia

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

Ensimmäinen induktioperiaate

Ensimmäinen induktioperiaate 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

1. Olio-ohjelmointi 1.1

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

Lisätiedot

Organisaatio- a ja yhteiskuntaosaaminen. - ja vuorovaikutusosaaminen istoiminnan osaaminen toimintaosaaminen. Kansainvälisyysosaaminenn

Organisaatio- a ja yhteiskuntaosaaminen. - ja vuorovaikutusosaaminen istoiminnan osaaminen toimintaosaaminen. Kansainvälisyysosaaminenn TIETOTEKNIIKAN KOULUTUSOHJELMA Lukuvuonna 2009-2010 aloittavat Kompetenssit Yleiset Yhteiset Ohjelmistotekniset Tietoverkkotekniset Itsensä kehittäminen Eettine Viestint Kehittä n ä m Organisaatio- a ja

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

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Tutkintovaatimukset suoraan DI-vaiheeseen valituille 1 / 10 Tutkintovaatimukset suoraan DI-vaiheeseen valituille Tutkintovaatimukset määräytyvät suoraan DI-vaiheeseen valituilla opiskelijoilla pääsääntöisesti samoin kuin muillakin DI-tutkintoa suorittavilla

Lisätiedot

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n)) Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia

Lisätiedot

Samanaikaisuuden hallinta

Samanaikaisuuden hallinta Samanaikaisuuden hallinta TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. maaliskuuta 2007 Samanaikaisuus engl. concurrency useampaa

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

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

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

Integrointi. Ohjelmistotekniikka kevät 2003

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

Lisätiedot

Työkalut ohjelmistokehityksen tukena

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

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on rekursiivisesti numeroituva, mutta ei rekursiivinen. 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

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

Onnistunut Vaatimuspohjainen Testaus

Onnistunut Vaatimuspohjainen Testaus Onnistunut Vaatimuspohjainen Testaus Kari Alho Solution Architect Nohau Solutions, Finland Sisältö Mitä on vaatimuspohjainen testaus? Vaatimusten ymmärtämisen haasteet Testitapausten generointi Työkalujen

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

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

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

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan CC1991:n ja CC2001:n vertailu Tutkintovaatimukset (degree requirements) Kahden ensimmäisen vuoden opinnot Ohjelmistotekniikan

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

Testaaminen ohjelmiston kehitysprosessin aikana

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

Lisätiedot

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

Opintosuunnitelma. Suunta: Tietoliikenneohjelmistot ja -sovellukset Pääaine: Tietoliikenneohjelmistot Sivuaine: Yritysturvallisuus

Opintosuunnitelma. Suunta: Tietoliikenneohjelmistot ja -sovellukset Pääaine: Tietoliikenneohjelmistot Sivuaine: Yritysturvallisuus Opintosuunnitelma Janne Paalijärvi Koulutusohjelma ja vuosikurssi: T II Opiskelijanumero: 57375S Sähköpostiosoite: jpaalija cc hut fi Opinto-opas: 2003-2004 Kirjastonkäyttöharjoitus suoritettu: 27.09.2004

Lisätiedot

3SAT-ongelman NP-täydellisyys [HMU ]

3SAT-ongelman NP-täydellisyys [HMU ] 3SAT-ongelman NP-täydellisyys [HMU 10.3.4] erotukseksi yleisestä CNF-esityksestä, kaikilla kaavoilla ei ole 3-CNF-esitystä; esim. x 1 x 2 x 3 x 4 esitämme muunnoksen, jolla polynomisessa ajassa mielivaltaisesta

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

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus 8.11.2010 1 (5) Mallipohjainen testaus ennen, nyt ja tulevaisuudessa Työtuntien kalleus, tietokoneiden tehojen nousu ja järjestelmien monimutkaistuminen houkuttelee käyttämään tietokonetta myös testauksen

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

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Käytettävyyslaatumallin rakentaminen verkkosivustolle Käytettävyyslaatumallin rakentaminen verkkosivustolle Tapaus kirjoittajan ABC-kortti Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -tutkielma Timo Laapotti 9.6.2005 Esityksen sisältö Kirjoittajan

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

Trakla2-opetusympäristö

Trakla2-opetusympäristö Trakla2-opetusympäristö TRAKLA: TietoRakenteet ja Algoritmit; KotiLaskujen Arvostelu TEKNILLINEN KORKEAKOULU Informaatio- ja luonnontieteiden tiedekunta Tietotekniikan laitos Esityksen rakenne Katsaus

Lisätiedot

Vuorekseen liittyvä tutkimusja kehitysprojekti. Langaton Vuores. Kotikatupalvelin

Vuorekseen liittyvä tutkimusja kehitysprojekti. Langaton Vuores. Kotikatupalvelin Vuorekseen liittyvä tutkimusja kehitysprojekti Langaton Vuores Kotikatupalvelin Tutkimuksen tausta Langaton tietoliikenne on arkipäivää Personoidut päätelaitteet (taskutietokone, matkapuhelin, kannettava

Lisätiedot

Risto Pelin Microsoft Project 2002 projekti- ja yritystason järjestelmänä

Risto Pelin Microsoft Project 2002 projekti- ja yritystason järjestelmänä Risto Pelin Microsoft Project 2002 projekti- ja yritystason järjestelmänä PROJEKTIJOHTAMINEN OY RISTO PELIN 3 Sisällysluettelo ESIPUHE 7 OSA I PROJEKTIN HALLINTA PROJEKTITASOLLA 1 JOHDANTO 11 1.1 Projektiohjelmien

Lisätiedot

Hans Aalto/Neste Jacobs Oy

Hans Aalto/Neste Jacobs Oy 1 2 Automaation kehitystrendit - haasteita tietoturvallisuudelle Hans Aalto, Neste Jacobs Oy Osastonjohtaja/Automaatiosuunnittelu Suomen Automaatioseura, hallituksen puheenjohtaja 1.1.2005 alk. Neste Jacobs

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

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

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

Lisätiedot

5.3 Ratkeavia ongelmia

5.3 Ratkeavia ongelmia 153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,

Lisätiedot

TIETOJENKÄSITTELYTEORIAN PÄÄAINEEN KORVAAVUUSPERIAATTEET

TIETOJENKÄSITTELYTEORIAN PÄÄAINEEN KORVAAVUUSPERIAATTEET Versiohistoria Ensimmäinen versio 14.3.2005 / Ilkka Niemelä Koulutusohjelmatoimikunnan kokouksessa 4.4.2005 esitetyt muutokset tehty 8.4.2005. TIETOJENKÄSITTELYTEORIAN PÄÄAINEEN KORVAAVUUSPERIAATTEET Tietojenkäsittelyteorian

Lisätiedot

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Miika Nurminen (minurmin@jyu.fi) Jyväskylän yliopisto Tietotekniikan laitos Kalvot ja seminaarityö verkossa: http://users.jyu.fi/~minurmin/gradusem/

Lisätiedot

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1 Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1 Jani Heikkinen Jukka Larja Kim Nylund Liia Sarjakoski 30. marraskuuta 2004 1 Sisältö 1 Sisään- ja uloskirjautuminen 3 1.1 Testitapaus F1-TC1................................

Lisätiedot

Laskuharjoitus 2A ( ) Aihepiiri: Raja-arvot etc. Adams & Essex, 8th Edition, Chapter 12. z = f(x, 0) = x2 a z = f(0, y) = 02 a 2 + y2

Laskuharjoitus 2A ( ) Aihepiiri: Raja-arvot etc. Adams & Essex, 8th Edition, Chapter 12. z = f(x, 0) = x2 a z = f(0, y) = 02 a 2 + y2 Aalto-yliopiston perustieteiden korkeakoulu Matematiikan ja systeemianalyysin laitos Korte / Lindfors MS-A0207 Dierentiaali- ja integraalilaskenta 2 (CHEM), kevät 2017 Laskuharjoitus 2A (9.10.1.) Aihepiiri:

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

Algoritmitutkimus: helppoja, vaikeita ja mahdottomia ongelmia

Algoritmitutkimus: helppoja, vaikeita ja mahdottomia ongelmia Algoritmitutkimus: helppoja, vaikeita ja mahdottomia ongelmia Jyrki Kivinen Tietojenkäsittelytieteen esittely 15.9.2004 Algoritmi on täsmällisesti esitetty jono toimenpiteitä, joilla syötteestä saadaan

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

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

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

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