Miten tehdää. ään n virheettömi. miä ohjelmia. Ralph-Johan Back Joakim von Wright Åbo Akademi TUCS Formaalit menetelmät t ohjelmoinnissa ryhmä

Koko: px
Aloita esitys sivulta:

Download "Miten tehdää. ään n virheettömi. miä ohjelmia. Ralph-Johan Back Joakim von Wright Åbo Akademi TUCS Formaalit menetelmät t ohjelmoinnissa ryhmä"

Transkriptio

1 Miten tehdää ään n virheettömi miä ohjelmia Ralph-Johan Back Joakim von Wright Åbo Akademi TUCS Formaalit menetelmät t ohjelmoinnissa ryhmä

2 Esitelmät Ohjelmoinnin matematiikka Ralph Back Matematiikan ohjelmointi Joakim von Wright

3 Ohjelmoinnin matematiikka Ralph-Johan Back

4 Sisält ltö Ohjelmiston luotettavuus Formaalit menetelmät Ohjelman oikeellisuuden todistaminen Inkrementaalinen ohjelmointi

5 Tietokoneet, kommunikointi ja ohjelmistot Käyttöliittymät Ohjelmistot Ohjelmointikielet Käyttöliittymät Ohjelmistot Ohjelmointikielet Kommunikointi Käyttöjärjestelmä Kone Käyttöjärjestelmä Kone Tietoverkko

6 Ohjelmistot keskeisessä roolissa Ohjelmistot muodostavat suurimman osan tietojärjestelmist rjestelmistä Yhteiskunta erittäin in riippuvainen ohjelmistoista sulautetut järjetestelmj rjetestelmät, t, hallinto, pc sovellutukset,... Ohjelmistot ohjaavat kriittisiä toimintoja: lentoliikennettä,, sairaalalaitteita, teollisia prosesseja,... Ohjelmistojen laadulla on vahva vaikutus yhteiskunnan ja yksityisten toiminnan luotettavuuteen, turvallisuuteen, tehokkuuteen ja tulosten laatuun

7 Mikä on hyvä tietokoneohjelma monipuolinen, tekee sitä mitä minä haluan toimii käytk ytössä olevalla tietokoneella ja käyttöjärjestelmässä helppokäytt yttöinen, selkeä käyttöliittymä toimii tehokkaasti ja reagoi nopeasti toimii hyvin muiden ohjelmien kanssa luotettava, ei sisäll llä paljon virheitä käyttäytyy ytyy hyvin myös s virhetilanteissa jne jne

8 Ohjelmien laadun kehitys Kehitys on kulkenut kohti parempilaatuisia ohjelmia helppokäytt yttöisempiä ohjelmia, tehokkaampia, monipuolisempia,... Paitsi: ohjelmistojen luotettavuus ei ole parantunut, vaan lähinnl hinnä huonontunut.

9 Mistä ohelmistojen virheet johtuvat Perussyy on ohjelmien kompleksisuuden kasvu Ohjelmistojen koko on jatkuvasti kasvanut Nykypäiv ivän n ohjelmistot ovat valtavan suuria ( riviä koodia) Ohjelmistot ovat hyvin monimutkaisia, ja niiden osien väliset v vuorovaikutukset ovat vaikeasti hallittavissa Muut laatukriteerit (monipuolisuus, käytettk ytettävyys,...) kasvattavat ohjelmien kokoa Markkinavoimat suosivat huonoja ohjelmistoja Ohjelmistojen nopea valmistuminen (time to market) tärkeintt rkeintä Kuluttajat eivät t vaadi luotettavia ohjelmia Ohjelmistoille ei esim. anneta luotettavuustakuuta

10 Ohjelmistoteknologian nykytaso Ohjelmistotekniikka on kehittymätönt ntä verrattuna muihin teknologian aloihin Perustutkimusta ei paljon hyödynnet dynnetä teollisessa ohjelmistotuotannossa Ohjelmointi tarvitsee toisenlaisen tieteellisen perustan kuin tavanomainen tekniikkaan mallit ovat useimmiten diskreettejä,, eivät t jatkuvia tärkein työkalu on logiikka ja algebra, ei analyysi suurin osa tarvittavasta matematiikasta on kehitetty viimeisten 50 vuoden aikana

11 Ohjelmointiprosessi tänäät ään määrittele ongelma suunnittele ohjelma koodaa ohjelma testaa ohjelma ylläpidä ohjelmaa

12 Testaaminen Suoritetaan ohjelma esimerkkidatalla, ja tarkistetaan ovatko tulokset oikeita Testauksessa joudutaan suorittamaan ohjelma hyvin monella eri datalla, jotta löydettl ydettäisiin mahdollisimman monta virhettä Testaamisella ei voida poistaa kaikki ohjelmavirheet, ainoastaan ne jotka löytyvl ytyvät esimerkkien avulla

13 Virheiden poistaminen testaamalla Prosessin alkuvaiheessa tehdyt ohjelmavirheet pyritää ään n loppuvaiheessa poistamaan testauksella. Testaaminen käy k y yhä työlää äämmäksi, mitä suuremmiksi ohjelmistot tulevat Testaaminen muodostaa yhä suuremman osan ohjelmistokehityksen kustannuksista Testaamisella ei kuitenkaan voida saavuttaa haluttu ohjelmistojen luotettavuuden taso

14 Formaalit menetelmät ohjelmoinnissa Formaalit menetelmät t muodostavat osaksi vaihtoehdon testaamiselle, osaksi täydentt ydentävät testaamista Ensisijainen tavoite on parantaa ohjelmien luotettavuutta Ohjelman ominaisuksia tutkitaan analysoimalla sitä matematikan ja logiikan avulla Esimerkki: todistetaan matemaattisesti että ohjelma toimii oikein (ts ei sisäll llä virheitä)

15 Åbo Akademin ohjelmointitekniikan tutkimusryhmä Åbo Akademin tietojenkäsittelyopin laitos Keskittynyt formaalien menetelmien tutkimiseen ja kehittämiseen Suomen Akatemia tutkimuksen huippuyksikkö (osana TUCSia) ja (omana yksikkönä) Senioritutkijat Ralph-Johan Back (johtaja) Johan Lilius Kaisa Sere Joakim von Wright Ryhmäss ssä noin 50 tutkijaa (noin puolet ulkomaalaisia)

16 Tutkimussuunnat Ohjelmoinnin matemaattinen perusta tarkennuskalkyyli aktiojärjestelm rjestelmät ohjelmistoarkkitehtuuri Uudet ohjelmointiparadigmat rinnakkaiset ja hajautetut järjestelmj rjestelmät vlsi-suunnittelu suunnittelu olio-ohjelmointi ohjelmointi ohjelmistojen suunnittelu ja vaatimusmää äärittelyt Ohjelmoinnin työkalut ohjelmointiympärist ristöt mekaaninen todistaminen mallintarkistaminen Ohjelmointiprosessit

17 Esimerkki ohjelman oikeellisuuden todistamisesta Ohjelma joka laskee yhteen ensimmäiset iset n kokonaislukua: n n sum n

18 Sum-ohjelman toimta i:=1 s:=0 i <=n s:=s+i i:=i+1

19 Ohjelmakoodi def sum(n): i := 1 s := 0 while i <= n: s := s+i i := i+1 return s laske n i on kierroslaskuri s on osasumma iteroidaan kun i <= n lisätää ään n uusi i summaan s kasvatetaan i:tä kun i = n+1, lopetetaan, palautetaan summa s print sum(10) lasketaan

20 Ohjelman suoritus i s 1 0 n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1

21 Ohjelman suoritus i s n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1

22 Ohjelman suoritus i s n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1

23 Ohjelman suoritus i s n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1

24 Induktiohypoteesi i s s =1+...+(i-1) 1) 1<=i <= n+1 n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1

25 Väittämät alkuehto: 0 <= n invariantti: s =1+...+(i-1) 1) 1<=i <= n+1 i:=1 s:=0 i <=n loppuehto: s = n s:=s+i i:=i+1

26 Väittämät t ohjelmatekstissä def sum2(n): i := 1 s := 0 while i <= n: s := s+i i := i+1 return s # 0 <= n # s =1+...+(i-1) 1) & 1<=i <= n+1 # s = n print sum2(10)

27 Sum-ohjelman oikeellisuus Invariantti on voimassa silmukan alussa Invariantti pysyy voimassa silmukkaa kierettäess essä kerran Invarianttista seuraa loppuehto, kuin silmukka pysähtyy Silmukan suoritus pysähtyy invariantti alkuehto i:=1 s:=0 i <=n loppuehto Sum-ohjelma toimii oikein s:=s+i i:=i+1

28 Oikeellisuuden todistamisen ongelmat Todistaminen vaatii matemaattista ajattelutapaa Kun ohjelman koko kasvaa, niin todistaminen tulee yhä vaikeammaksi Todistus itsessää ään n voi sisält ltää virheitä Usein vaikeata kuvata ennakkoehto ja loppuehto täsmällisesti Invariantin keksiminen hankalaa (vastaa induktiohypoteesin muodostamista) Todistukset rutiininomaisia, eivät t erikoisen kiinnostavia tai matemaattisesti haastavia

29 Todistamisen lisäongelma Käytännössä ohjelmat sisält ltävät t virheitä,, joten niitä ei voida (eikä pitäisik isikään n voida) todistaa oikeiksi Todistuksen mahdottomuus näyttn yttää virheen paikan Ennen oikeellisuuden todistamista on kaikki virheet paikallistettava ja korjattava Todistaminen ja testaaminen antavat kaksi erilaista tapaa hakea virheitä ohjelmasta Päätelmä: : valmiiden ohjelmien testaaminen hankalaa eikä erikoisen mielekäst stä.

30 Oikein toimivien ohjelmien rakentaminen Oikeellisuutta ei voida lisätä jälkeenpäin Oikeellisuus on rakennettava sisää ään alusta lähtien l Ohjelma on rakennettava pala kerrallaan, siten että oikeellisuutta ei koskaan menetetä Ryhmämme mme on keskittynyt tällaisten t inkrementaalisten oikeellisuuden säilyttävien ohjelmointimentelmien kehittämiseen ja tutkimiseen oikeellisuus säilyy

31 Inkrementaalinen ohjelmointi Rakennetaan ensimmäinen inen pieni palikka A0 Todistetaan se oikeaksi A0

32 Inkrementaalinen ohjelmointi Rakennetaan seuraava palikka B0 Todistetaan se oikeaksi A0 B0

33 Inkrementaalinen ohjelmointi Parannellaan A0:aa, lisää äämällä sen käyttökelpoisuutta Todistetaan uusi palikka A1 oikeaksi Todistetaan, että A1 säilyttää A0:n A1 toiminnot A0 B0

34 Inkrementaalinen ohjelmointi Parannellaan B0:aa, lisää äämällä sen käyttökelpoisuutta Todistetaan uusi palikka B1 oikeaksi Todistetaan, että B1 säilyttää B0:n A1 B1 toiminnot A0 B0

35 Inkrementaalinen ohjelmointi Parannellaan taas Ata A2 A1 A0 B1 B0

36 Inkrementaalinen ohjelmointi jne, kunnes ollaan saatu rakennettua ohjelmaan kaikki toivottu toiminnallisuus A5 A4 A3 B3 C4 C3 A2 B2 C2 A1 B1 A0 B0

37 Olipohjainen ohjelmointi Olio on sopiva rakennuspalikka: luominen Olion nimi muutokset data kyselyt lopettaminen

38 Data: Pankkitili oliona Saldo, tilinumero ja tilin haltija Luominen: Luodaan pankkitili (tilinumero ja asiakkaan nimi) Tilillä ei aluksi ole yhtää ään n rahaa Muutokset: Pankkitilille voidaan panna rahaa Pankkitililtä voidaan ottaa rahaa Muutetaan asiakkaan nimi Kyselyt: Paljonko rahaa on tilillä juuri nyt Kuka on tilinhaltija, mikä on tilinumero Lopettaminen: Pankkitili poistetaan käytk ytöstä

39 Pankkitili pankin toiminnat asiakkaan toiminnat luodaan uusi tili tilille pano tililtä otto nimen muutos Pankkitili saldo tilinhaltija tilinumero tilin saldo tilinumero tilin haltija poistetaan tili käytöstä

40 Pankkitili ohjelmana class Account: def init (self, name, account): self.saldo := 0 self.name := name self.account := account def insert(self, sum): self.saldo := self.saldo + sum def remove(self, sum): self.saldo := self.saldo - sum def getsaldo(self): return self.saldo...

41 Pankkitilin lisäominaisuuksia Koron maksaminen Luotollinen pankkitili Pankkitiliin on liitetty tunnusluku Tapahtumien rekisteröinti inti Automaattinen laskujen maksu eräpäiv ivänä Tilillä voi olla eri valuuttoja jne, jne...

42 Luotollinen pankkitili uusi luottoraja tililtä otto Luotollinen luottoraja nostettavissa luottoraja tilille pano tililtä otto nimen muutos Pankkitili saldo tilinhaltija tilinumero tilin saldo tilinumero tilin haltija

43 Korollinen pankkitili uusi korkoprosentti lisää korko Korollinen korkoprosentti korko tilin saldo tilin korko tilille pano tililtä otto nimen muutos Pankkitili saldo tilinhaltija tilinumero tilin saldo tilinumero tilin haltija

44 Todistaminen Uuden olion on toteutettava sille asetetut vaatimukset Uuden olion on säilytetts ilytettävä alkkuperäisen olion ominaisuudet Esim. nimenmuutos, tilinhaltija toimii Luotollinen-oliossa oliossa samalla tavalla kuin Pankkitili-oliossa tililtä otto huomio luottorajan, toimii samoin kuin aiemmin jos luottoraja on 0.

45 Pankkitilin rakentaminen Maksut Käyttötili Tunnusluku Luotollinen Korollinen Tapahtumat Pankkitili

46 Raha-automaatti automaatti saldokysely lisää rahaa otto Raha-automaatti rahamäärä Pankkitili Pankkitili Pankkitili Pankkitili Rahanluovutus

47 Pankkiautomaatti Kortinlukija Pankkiautomaatti Käyttötili Rahanluovutus Raha-automaatti Pankkitili

48 Maksuautomaatti Setelinsyöttö Maksuautomaatti Maksut Kortinlukija Pankkiautomaatti Käyttötili Rahanluovutus Raha-automaatti Pankkitili

49 Miten todistetaan oikeellisuus Perusoliot on todistettava oikeiksi Olion laajennus on todistettava oikeaksi laajennuksen on toteuttettava sille asetettavat vaatimukset laajennuksen on säilytetts ilytettäv v aikaisemmat ominaisuudet Olion käyttk yttö on tapahduttava oikein olion menetelmää saa vain kutsua jos menetelmän alkuehto on voimassa

50 Todistus toteuttaa vaatimuksensa Pankkiautomaatti Käyttötili säilyttää ominaisuudet Raha-automaatti Pankkitili toteuttaa vaatimuksensa kunnioittaa alkuehtoja toteuttaa vaatimuksensa

51 Inkrementaalinen ohjelmointi Vaatii uutta lähestymistapaa l ohjelmointiin Oikeellisuus on tarkistettava jatkuvasti ohjelmaa rakennettaessa Ohjelman arkkitehtuurin on tuettava inkrementaalista rakentamista Ohjelmointiprosessin on myös s tuettava tätät lähestymistapaa Testaaminen yhä tarpeellinen, tapahtuu jokaisen laajennuksen yhteydessä

52 Rakenteen remontointi Kun suurta kokonaisuutta rakennetaan pala kerrallaan, voidaan joutua umpikujaan: valittu arkitehtuuri ja rakennepalikat eivät t tue uusia laajennuksia Tällöin ohjelman rakennetta on remontoitava arkitehtuuria muutetaan olioita tai olioiden toimintoja muutetaan toiminnallisuutta ei muuteta Rakenteen remontti voi olla hankalaa, mutta se kannattaa

53 Ohjelmointiprosessi Inkrementaalisessa ohjelmoinnissa ohjelman laajentaminen ja ohjelman remontointi vuorottelevat laajenna ohjelmaa remontoi ohjelmaa

54 Inkrementaalisen ohjelmoinnin edut Iso ohjelma voidaan rakentaa pieninä laajennuksina Oikeellisuuden säilyminen s voidaan tarkistaa jatkuvasti Käytössä on aina toimiva ohjelma (toiminnallisuus on vajaa, mutta se mikä siinä on toimii oikein) Ohjelmaa voidaan jatkuvasti verrata vaatimuksiin, ja tarvittaessa korjata ohjelmaa tai vaatimuksia Erillistä ohjelman ylläpitovaihetta ei ole, ylläpito on samanlaista kuin alkuperäisen ohjelman rakentaminen Oikeellisuuden jatkuva huomioiminen tekee ohjelman remontin mahdollisiksi

55 Inkrementaalisen rakentamisen rajoitukset Käytännössä liian suuria ohjelmia ei voida rakentaa tällä tavoin Ohjelmat on jaettava erikseen ohjelmoitaviin moduleihin, joilla on hyvin määm ääritelly rajapinnat Eri ohjelmointiryhmät t voivat ohjelmoida moduleja toisistaan riippumatta Inkrementaalinen rakentaminen ja modulaarinen rakentaminen täydentt ydentävät t toisiaan Yhdessä ne mahdollistavat suurten ja luotettavien ohjelmien rakentamisen Virheettömyys edellyttää mekaanista ohjelmien oikeellisuuden todistamista

56 Inkrementaalisen rakentamisen projekteja ÅAssa Inkrementaalisen rakentamisen teoria (tarkennuskalkyylissä) Inkrementaalista rakentamista tukeva ohjelmointiympärist ristö (UML-pohjainen) Inkrementaalista rakentamista tukeva ohjelmointiprosessi (XP-pohjainen) Useita piloottiprojekteja, joissa rakennetaan suurempia ohjelmia tällt llä menetelmäll llä Inkrementaalinen rakentaminen eri ohjelmointiparadigmoissa (vlsi-suunnittelu, suunnittelu, olio- ohjelmointi, hajautet järjestelmj rjestelmät, t, rinnakkaisohjelmat, jne)

Matematiikan ohjelmointi. Joakim von Wright

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

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

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

Lisätiedot

Integrointialgoritmit molekyylidynamiikassa

Integrointialgoritmit molekyylidynamiikassa Integrointialgoritmit molekyylidynamiikassa Markus Ovaska 28.11.2008 Esitelmän kulku MD-simulaatiot yleisesti Integrointialgoritmit: mitä integroidaan ja miten? Esimerkkejä eri algoritmeista Hyvän algoritmin

Lisätiedot

E-math - sa hko inen oppimisympa risto matematiikan opiskeluun. Ralph-Johan Back Åbo Akademi (Virtuaaliopetuksen päivät 2013)

E-math - sa hko inen oppimisympa risto matematiikan opiskeluun. Ralph-Johan Back Åbo Akademi (Virtuaaliopetuksen päivät 2013) E-math - sa hko inen oppimisympa risto matematiikan opiskeluun Ralph-Johan Back Åbo Akademi (Virtuaaliopetuksen päivät 2013) Esityksen organisointi 1. Yleisesitys E-math projektin hankkeesta ja sen tuloksista

Lisätiedot

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

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

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Lisätiedot

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

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

public static void main (String [] args)

public static void main (String [] args) HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet ) T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Logiikka 1/5 Sisältö ESITIEDOT:

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

Lisätiedot

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

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

DIGIROAD DIGIROAD PALVELUT

DIGIROAD DIGIROAD PALVELUT Tilannekatsaus 6.8.2003 DIGIROAD PALVELUT DIGIROAD PALVELURAJAPINNAT DIGIROAD Kansallinen tie- ja katutietojärjestelmä DIGIROAD tietokanta 1 TietoEnator 2003 Tavoitteet DR-palvelupilotti antaa yleisen

Lisätiedot

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain

Lisätiedot

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

T-76.5158 SEPA päiväkirja

T-76.5158 SEPA päiväkirja T-76.5158 SEPA päiväkirja Ryhmä 14 Automatisoitu yksikkötestaus Mikko Luukkonen, 60549T Lauri Helkkula, 62820H Matti Eerola, 60686A Versiohistoria Versio Pvm Tekijä(t) Kuvaus 0.3 25.11.2007 Luukkonen,

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Lokalisointitestaus. Matti Vuori, www.mattivuori.net 1(17) 26.3.2009

Lokalisointitestaus. Matti Vuori, www.mattivuori.net 1(17) 26.3.2009 Lokalisointitestaus Lokalisointitestauksella varmistetaan se, että ohjelmisto toimii halutussa kohdemaassa oikein ja halutulla laatutasolla. Lokalisointitestaus ei ole pelkkää käännösten testausta, vaan

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

2. Eukleideen algoritmi

2. Eukleideen algoritmi 2. Eukleideen algoritmi 2.1 Suurimman yhteisen tekijän tehokas laskutapa Tässä luvussa tarkastellaan annettujen lukujen suurimman yhteisen tekijän etsimistä tehokkaalla tavalla. Erinomaisen käyttökelpoinen

Lisätiedot

AutoCAD-natiiviobjektin toteutus

AutoCAD-natiiviobjektin toteutus AutoCAD-natiiviobjektin toteutus Kontiotuote OY Maailman toiseksi suurin hirsitalotoimittaja Aloittanut toimintansa 70-luvulla Liikevaihto vuonna 2003-37,355 Milj. euroa josta vientiä 7,376 Milj. euroa

Lisätiedot

Pitkäaikaissäilytyksen toteutuksen erityispiirteet. TTA:n pitkäaikaissäilytyksen keskustelutilaisuus Kimmo Koivunen

Pitkäaikaissäilytyksen toteutuksen erityispiirteet. TTA:n pitkäaikaissäilytyksen keskustelutilaisuus Kimmo Koivunen Pitkäaikaissäilytyksen toteutuksen erityispiirteet TTA:n pitkäaikaissäilytyksen keskustelutilaisuus 10.4.2013 Kimmo Koivunen Pitkäaikaissäilytyksen määrityksiä Säilyttää digitaaliset aineistot käyttökelpoisina

Lisätiedot

Virtuoosi POS-järjestelmien joukossa

Virtuoosi POS-järjestelmien joukossa Virtuoosi POS-järjestelmien joukossa Menestyvä liiketoiminta muistuttaa monin osin huippuunsa viritettyä orkesteria jossa eri osien sopusuhtainen vuorovaikutus ja integrointi luovat sykähdyttävän esityksen.

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

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

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

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

ABB i-bus KNX taloautomaatio. Sakari Hannikka, 11.5.2016 Kiinteistöjen ohjaukset KNX vai ABB-free@home? ABB Group May 11, 2016 Slide 1

ABB i-bus KNX taloautomaatio. Sakari Hannikka, 11.5.2016 Kiinteistöjen ohjaukset KNX vai ABB-free@home? ABB Group May 11, 2016 Slide 1 Sakari Hannikka, 11.5.2016 Kiinteistöjen ohjaukset KNX vai ABB-free@home? May 11, 2016 Slide 1 ABB i-bus KNX taloautomaatio May 11, 2016 Slide 2 KNX on maailman ainoa avoin standardi kotien ja rakennusten

Lisätiedot

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

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

Lisätiedot

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

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

Lisätiedot

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella

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

13/20: Kierrätys kannattaa koodaamisessakin

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

Lisätiedot

Testausoppeja toimialavaihdoksesta

Testausoppeja toimialavaihdoksesta Testausoppeja toimialavaihdoksesta Maaret Pyhäjärvi Email: Gsm: 040-8233777 Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/

Lisätiedot

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

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

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Täydentäviä muistiinpanoja laskennan rajoista

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

Lisätiedot

Perusopetuksen matematiikan pitkittäisarviointi 2005-2012

Perusopetuksen matematiikan pitkittäisarviointi 2005-2012 5.10.2015 MAOL RAUMA / JoJo 1 Perusopetuksen matematiikan pitkittäisarviointi 2005-2012 5.10.2015 MAOL RAUMA / JoJo 2 Opetushallitus Koulutuksen seurantaraportti 2013:4 5.10.2015 MAOL RAUMA / JoJo 3 1

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin 812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.2.2010 1 / 47 Sijoituksen arvokehitys, koodi def main(): print "Ohjelma laskee sijoituksen arvon kehittymisen."

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 3. Logiikka 3.1 Logiikka tietojenkäsittelyssä Pyritään formalisoimaan terveeseen järkeen perustuva päättely Sovelletaan monella alueella tietojenkäsittelyssä, esim.

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

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

tutkimus (EBMeDS( EBMeDS) osana Päätöksentukihanketta v Terveystieteen laitos, tutkija Tiina Kortteisto

tutkimus (EBMeDS( EBMeDS) osana Päätöksentukihanketta v Terveystieteen laitos, tutkija Tiina Kortteisto Sähköisen pääp äätöksen tuen tutkimus (EBMeDS( EBMeDS) osana Päätöksentukihanketta v. 2005-2009 Päätöksentukihanke (EBMeDS) 1.Pää äätöksentukihankkeen valmistelu ja tuottamisprosessin luominen (2004-2005)

Lisätiedot

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy Käytännön haasteita ja ratkaisuja integraation toteutuksessa Jukka Jääheimo Teknologiajohtaja Solita Oy 13.03.2008 Sisältö 2 Alustus Integraation haasteet Integraatioarkkitehtuuri Hyvän integraatioarkkitehtuurin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 31.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 31.1.2011 1 / 41 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

TOR Arkkitehtuuri. - Muiden palveluiden hyödyntäminen - Tiedon loogiset vastuut - Tietovirrat - Master data -malli - Tietojen siirto

TOR Arkkitehtuuri. - Muiden palveluiden hyödyntäminen - Tiedon loogiset vastuut - Tietovirrat - Master data -malli - Tietojen siirto TOR Arkkitehtuuri - Muiden palveluiden hyödyntäminen - Tiedon loogiset vastuut - Tietovirrat - Master data -malli - Tietojen siirto Opintopolun palveluiden hyödyntäminen TOR hyödyntää vähintään organisaatiopalvelua,

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

Lisätiedot

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

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

Lisätiedot

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio Testiraportti 26.2.2006 1/5 - Noheva II Testiraportti Versio Päiväys Tekijä Kuvaus 1.0 26.2.2006 Tikkanen varsinainen versio 1 Yleistä Toteutusvaiheen 2 virallinen testaus on muodostunut automaattisista

Lisätiedot

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

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

Lisätiedot

Johdatus matemaattiseen päättelyyn

Johdatus matemaattiseen päättelyyn Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä Luonnollisten lukujen joukko N on joukko N = {1, 2, 3,...} ja kokonaislukujen

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Rinnakkaisuus Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 4. 2012 Sisältö 1 Rinnakkaisuusmalleja: säie ja prosessi 2

Lisätiedot

Praesideo, digitaalinen yleisäänentoistoja äänievakuointijärjestelmä Vie viestit perille tilanteessa kuin tilanteessa

Praesideo, digitaalinen yleisäänentoistoja äänievakuointijärjestelmä Vie viestit perille tilanteessa kuin tilanteessa Praesideo, digitaalinen yleisäänentoistoja äänievakuointijärjestelmä Vie viestit perille tilanteessa kuin tilanteessa 2 Bosch Praesideo -yleisäänentoisto- ja äänievakuointijärjestelmät Yleisön tiedottaminen

Lisätiedot

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

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

Lisätiedot

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA Tavallisimmin lukuja käsittelevien datasanojen tyypiksi kannattaa asettaa kokonaisluku 16 bitin INT, jonka vaihtelualueeksi tulee

Lisätiedot

Peltotuki Pron Lohkotietopankkimoduli tärkkelysperunalle

Peltotuki Pron Lohkotietopankkimoduli tärkkelysperunalle Peltotuki Pron Lohkotietopankkimoduli tärkkelysperunalle Versio 2008.1 15.10.2008 ohje 15.10.2008 Asennus, käyttöönotto ja päätoiminnot Ohjelmiston tarkoitus Ohjelmiston tarkoitus on yhdistää Peltotuki

Lisätiedot

Mitä ovat yhteistyörobotit. Yhteistyörobotit ovat uusia työkavereita, robotteja jotka on tehty työskentelemään yhdessä ihmisten kanssa.

Mitä ovat yhteistyörobotit. Yhteistyörobotit ovat uusia työkavereita, robotteja jotka on tehty työskentelemään yhdessä ihmisten kanssa. Yhteistyörobotiikka Mitä ovat yhteistyörobotit Yhteistyörobotit ovat uusia työkavereita, robotteja jotka on tehty työskentelemään yhdessä ihmisten kanssa. Yhteistyörobotit saapuvat juuri oikeaan aikaan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

Näkökulmia tietoyhteiskuntavalmiuksiin

Näkökulmia tietoyhteiskuntavalmiuksiin Näkökulmia tietoyhteiskuntavalmiuksiin Tietotekniikka oppiaineeksi peruskouluun Ralph-Johan Back Imped Åbo Akademi & Turun yliopisto 18. maaliskuuta 2010 Taustaa Tietojenkäsittelytieteen professori, Åbo

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

1 Määrittelyjä ja aputuloksia

1 Määrittelyjä ja aputuloksia 1 Määrittelyjä ja aputuloksia 1.1 Supremum ja infimum Aluksi kerrataan pienimmän ylärajan (supremum) ja suurimman alarajan (infimum) perusominaisuuksia ja esitetään muutamia myöhemmissä todistuksissa tarvittavia

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

Suomen avoimien tietojärjestelmien keskus COSS ry

Suomen avoimien tietojärjestelmien keskus COSS ry EduCloud ncloud Rajapintojen avaaminen ja ekosysteemien rakentaminen JulkICTLab-seminaari 20.11.2015 Martin von Willebrand, puheenjohtaja Avoin arkkitehtuuri Luo jäsenien menestystarinoita avoimilla ratkaisuilla

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

Rakennusautomaation käytettävyys. Rakennusautomaatioseminaari 30.5.2013 Sami Karjalainen, VTT

Rakennusautomaation käytettävyys. Rakennusautomaatioseminaari 30.5.2013 Sami Karjalainen, VTT Rakennusautomaation käytettävyys Rakennusautomaatioseminaari 30.5.2013 Sami Karjalainen, VTT 2 Oma tausta Perusinsinööri DI, lvi-tekniikka, TKK 1993 Herääminen käytettävyysasioihin noin 2002 Tekniikan

Lisätiedot

1 Tekniset tiedot: 2 Asennus: Asennus. Liitännät

1 Tekniset tiedot: 2 Asennus: Asennus. Liitännät Viitteet 000067 - Fi ASENNUS ohje inteo Soliris Sensor RTS Soliris Sensor RTS on aurinko- & tuulianturi aurinko- & tuuliautomatiikalla varustettuihin Somfy Altus RTS- ja Orea RTS -moottoreihin. Moottorit

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio

Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio 1 Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio Teppo Jalkanen Asiantuntijapäällikkö: Arkkitehtuuriohjaus OP Arkkitehtuuri 23.9.2016 Järjestelmäsalkunhallinnan käyttöönotto

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Järjestelmän alasajon suunnittelu. Kullström Satu

Järjestelmän alasajon suunnittelu. Kullström Satu Järjestelmän alasajon suunnittelu Kullström Satu 13.3.2016 Sisältö Yleistä alasajon suunnittelusta Case Fennia 2 Elinkaaren loppu Wikipediassa Ohjelma ei kuole koskaan. Ohjelma voi tulla tarpeettomaksi

Lisätiedot

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen 1 AS-0.3200 Automaatio- ja systeemitekniikan projektityöt A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen Projektisuunnitelma Tommi Salminen, Hanna Ukkola, Olli Törmänen 19.09.2014 1 Projektin

Lisätiedot

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Ville Toiviainen Tomi Tuovinen Lauri af Heurlin Tavoite Projektin tarkoituksena on luoda valmis sekvenssiohjelma säätötekniikan

Lisätiedot

Luokat ja oliot. Ville Sundberg

Luokat ja oliot. Ville Sundberg Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

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

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

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

Vakuutusyhtiöiden testausinfo

Vakuutusyhtiöiden testausinfo Vakuutusyhtiöiden testausinfo ATJ:n ulkoisten liittymien testaaminen Jonna Hannukainen ja Markku Noukka 12. ja 17.5.2006 (Päivitetty 18.5.2006) ATJ:n integraatiotestaus vakuutusyhtiöiden kanssa Testauksen

Lisätiedot