Ohjelmien automaattisen verifioinnin reunamailla
|
|
- Ilona Niemi
- 8 vuotta sitten
- Katselukertoja:
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.344 Agenttipohjainen tietojenkäsittely 3 Ei voi suorittaa, tilalle jokin
LisätiedotTarvitseeko 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ätiedotOhjelmistojen 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ätiedotOhjelmiston 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ätiedotMyö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ätiedotTutkimusmenetelmä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ätiedotTietojenkä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ätiedotTodistamisessa 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ätiedotSimulaattoriavusteinen 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ätiedotLaskennan 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ätiedotTietorakenteet 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ätiedotvain ää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ätiedotUudelleenkä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ätiedotKehittää 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ätiedotMuita 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ätiedotOhjelmointi 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ätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa
LisätiedotAlgoritmit 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ätiedotICS-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ätiedotAS-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ätiedotTestausdokumentti. 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ätiedotTestaustyö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ätiedotTIETOTEKNIIKAN KOULUTUSOHJELMA
TIETOTEKNIIKAN KOULUTUSOHJELMA Tietotekniikan koulutusohjelman toimintaympäristö ja osaamistavoitteet Tietotekniikan koulutusohjelmasta valmistuneet insinöörit sijoittuvat suunnittelu-, ohjelmointi-, esimies-,
LisätiedotOnnistunut 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ätiedotEnsimmä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ätiedotKielenä 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ätiedotSCI-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ätiedot58160 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ätiedotOhjelmiston 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ätiedotFUNKTIONAALIANALYYSIN 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ätiedotEnsimmä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ätiedotAlgoritmit 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ätiedotC-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ätiedotMallintarkistus 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ätiedotAgenda. 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ätiedot3. 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ätiedotO 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ätiedotTietoyhteiskunnan 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ätiedotRekursiolause. 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ätiedotOpettajatuutorointi-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ätiedotTIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit
TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen
LisätiedotJohnson, 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ätiedotAlgoritmit 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Ä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ätiedotTietoyhteiskunnan 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ätiedotMatematiikan 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ätiedotTenttikysymykset. + 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ätiedotJohdatus 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ätiedotEKSOTE 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ätiedotPysä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ätiedotKiinnostuspohjainen 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ätiedotInduktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa. väite P(n) on totta kaikille n = 0,1,2,...
Induktiotodistus Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa väite P(n) on totta kaikille n = 0,1,2,.... Tässä väite P(n) riippuu n:n arvosta. Todistuksessa
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
Lisätiedot1. 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ätiedotOrganisaatio- 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ätiedotYksikkö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ätiedotTutkintovaatimukset 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ätiedotSolmu 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ätiedotf(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ätiedotSamanaikaisuuden 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ätiedotTodistusmenetelmiä Miksi pitää todistaa?
Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien
LisätiedotEsimerkkejä 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ätiedotIntegrointi. 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ätiedotTyö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ätiedotTiina 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ätiedotTIEA241 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ätiedot5. 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ätiedotongelma 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ätiedoton 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ätiedotTietorakenteet 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ätiedotOnnistunut 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ätiedotRajoittamattomat 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ätiedot4.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ätiedotComputing 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ätiedotTodistus: 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ätiedot5.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ätiedotOhjelmistotekniikan 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ätiedotTietorakenteet 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ätiedotTietojenkä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ätiedotTestaaminen 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ätiedot811120P 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ätiedotOpintosuunnitelma. 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ätiedotTESTIRAPORTTI - 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ätiedot3SAT-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ätiedot811312A 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ätiedotTesti 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ätiedotKäyttöjärjestelmät. 1pJÄKÄ1 KÄYTTÖJÄRJESTELMÄN HALLINTA, 12 OSP
TIETO- JA VIESTINTÄTEKNIIKKA OSAAMISTARJOTIN 8.1. 31.7.2019 27.12.2018 1 Sisällys Käyttöjärjestelmät 1pJÄKÄ1... 2 käyttöjärjestelmän hallinta, 12 osp... 2 Atk-hankinnat 1pJÄKÄ3... 3 atk-hankintaprosessi,
LisätiedotKä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ätiedotKryptografiset 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ätiedotTFM-osaston tuottamat vain sivuaineet lv
TFM-osaston tuottamat vain sivuaineet lv 2006-2007 Diskreetti matematiikka Laskennallinen tiede ja tekniikka 18.7.2006/akh t vain sivuaineet F303-2 F500-2 Diskteetti matematiikka F400-2 LTT Xxxx-2 Perustieteiden
LisätiedotTrakla2-opetusympäristö
Trakla2-opetusympäristö TRAKLA: TietoRakenteet ja Algoritmit; KotiLaskujen Arvostelu TEKNILLINEN KORKEAKOULU Informaatio- ja luonnontieteiden tiedekunta Tietotekniikan laitos Esityksen rakenne Katsaus
LisätiedotVuorekseen 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ätiedotProjektisuunnitelma 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ätiedotHans 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ätiedot4 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ätiedotSatunnaisalgoritmit. 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ätiedotAutomaatit. 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ätiedotTIETOJENKÄ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ätiedotRisto 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ätiedot8003051 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