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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

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

Lisätiedot

Ohjelmien automaattisen verifioinnin reunamailla

Ohjelmien automaattisen verifioinnin reunamailla Ohjelmien automaattisen verifioinnin reunamailla Antti Siirtola Tietotekniikan laitos, Perustieteiden korkeakoulu, Aalto-yliopisto, antti.siirtola@aalto.fi Suomalainen Tiedeakatemia, Nuorten akatemiaklubi,

Lisätiedot

Tarvitseeko informaatioteknologia matematiikkaa?

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

Lisätiedot

1. Olio-ohjelmointi 1.1

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

Lisätiedot

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

Turmeleeko ohjelmointi nuorisomme?

Turmeleeko ohjelmointi nuorisomme? Solmu 2/2015 1 Turmeleeko ohjelmointi nuorisomme? Antti Laaksonen Tietojenkäsittelytieteen laitos, Helsingin yliopisto ahslaaks@cs.helsinki.fi Uuden peruskoulun opetussuunnitelman mukaan syksystä 2016

Lisätiedot

Kokeellista matematiikkaa SAGE:lla

Kokeellista matematiikkaa SAGE:lla Kokeellista matematiikkaa SAGE:lla Tutkin GeoGebralla 1 luonnollisen luvun jakamista tekijöihin 2. GeoGebran funktio Alkutekijät jakaa luvun tekijöihin ja tuottaa alkutekijät listana. GeoGebrassa lista

Lisätiedot

Tietotekniikan perusopetuksen kehittäminen

Tietotekniikan perusopetuksen kehittäminen Tietotekniikan perusopetuksen kehittäminen Kokemuksia ja suuntaviivoja Lauri Malmi Teknillinen korkeakoulu ivät 1 Sisält ltö 1. Taustaa 2. Erää ään n kurssin kokemuksia 3. Havaintoja kokemuksista 4. Entä

Lisätiedot

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

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

Lisätiedot

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

Ohjelmoinnin peruskurssi Y1

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

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

Rakenteiset päättelyketjut ja avoin lähdekoodi

Rakenteiset päättelyketjut ja avoin lähdekoodi Rakenteiset päättelyketjut ja avoin lähdekoodi Mia Peltomäki Kupittaan lukio ja Turun yliopiston IT-laitos http://crest.abo.fi /Imped Virtuaalikoulupäivät 24. marraskuuta 2009 1 Taustaa Todistukset muodostavat

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

- Näin ollen päätettiin myös jatkossa pitää kokoukset samantapaisina.

- Näin ollen päätettiin myös jatkossa pitää kokoukset samantapaisina. 1 Turku Centre for Computer Science - TUCS TUCS Neuvottelukunta Perjantai, 15. maaliskuuta, klo 15.00 Villa Solin, Katariina Neuvottelukunnan kuudes kokous. Pöytäkirja Läsnä: Jäsenet Tarmo Hahto (puheenjohtaja)

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto

Lisätiedot

Matematiikan mestariluokka, syksy 2009 7

Matematiikan mestariluokka, syksy 2009 7 Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty

Lisätiedot

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

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

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

TIETOTEKNIIKAN KOULUTUSOHJELMA

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

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

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

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

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

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

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

Sosiaalialan tuotteistaminen tietojärjestelm 19.5.2008

Sosiaalialan tuotteistaminen tietojärjestelm 19.5.2008 Sosiaalialan tuotteistaminen tietojärjestelm rjestelmää hyväksik ksikäyttäen 19.5.2008 Sanna Hämäläinen Sosiaalitoimen atk-koordinaattori Päijät-Hämeen sosiaali- ja terveydenhuollon kuntayhtymä Alkuselvittelyt

Lisätiedot

9. Muunneltavuuden hallinta

9. Muunneltavuuden hallinta 9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

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

Lisätiedot

Tentti: T-106.1210 Ohjelmoinnin peruskurssi, osa 1. Yleistä. Tehtävä 1

Tentti: T-106.1210 Ohjelmoinnin peruskurssi, osa 1. Yleistä. Tehtävä 1 ./ Tentti: T-106.1210 Ohjelmoinnin peruskurssi, osa 1 Tenttipäivä: 13.12. 2011 El APUVÄLINEITÄ Yleistä Tentissä on kaksi tehtävää. Ensimmäinen tehtävä on tärkeämpi: sillä pyritään varmistamaan, että jokaisella

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

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

Nuoret mediatoimijoina

Nuoret mediatoimijoina Nuoret median käyttäjinä ja tulkitsijoina Viestinnän n Keskusliiton syysseminaari Kaisa Osola, Kallion lukio 1.12.2011 Nuoret median käyttäjinä ja tulkitsijoina Nuoret mediatoimijoina Millaiset sisäll

Lisätiedot

Invariantteihin perustuva ohjelmointi

Invariantteihin perustuva ohjelmointi Invariantteihin perustuva ohjelmointi Ralph-Johan Back Abo Akademi ja TUCS www.abo.fi/~backrj 5. kesäkuuta 2006 Oikein toimivien ohjelmien konstruointi: vaihtoehdot Oikeellisuuden todistaminen jälkikäteen

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

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

Käytettävyyslaatumallin rakentaminen verkkosivustolle

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

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

Turvakriittisen projektin menetelmät ja työkalut

Turvakriittisen projektin menetelmät ja työkalut Turvakriittisen projektin menetelmät ja työkalut 1. Vaatimushallinta Vaatimushallintaan kohdistuu turvaluokitelluissa projekteissa paljon odotuksia. Etenkin jäljitettävyys vaatimuksiin, testaukseen ja

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

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut

Lisätiedot

14/20: Keittokirja I

14/20: Keittokirja I Ohjelmointi 1 / syksy 2007 14/20: Keittokirja I Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/13 Tämän luennon

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

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

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

Lisätiedot

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

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori Insinöörikoulutuksen Foorumi 2012 Seminaariesitelmä Timo Turunen ja Matti Welin Monitori koulutusalarajat ylittävä

Lisätiedot

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

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

Lisätiedot

Lyhyt yhteenveto ohjelmistovaatimuksista standardissa ISO 13849-1

Lyhyt yhteenveto ohjelmistovaatimuksista standardissa ISO 13849-1 Lyhyt yhteenveto ohjelmistovaatimuksista standardissa ISO 13849-1 Dr. Michael Huelke, BGIA in close collaboration with Philippe Lubineau and Daniel Renault, CETIM Käännös/m atti.sundquist@ sundcon.fi Sichere

Lisätiedot

Organisatorinen muutos

Organisatorinen muutos Organisatorinen muutos 22.11.2001 TieVie-kouluttajakoulutus Helsingin yliopisto Projektipäällikkö Janne Sariola Teemat Lähtökohtia Miksi strategia? Mitä? Sisällöt Miten? Toimenpiteet Miksi? Strategisen

Lisätiedot

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT KOULUTUKSEN KOHDERYHMÄ SISÄLTÖ Koulutuksen tavoitteena on antaa opiskelijalle valmiudet uusien tietoteknisten menetelmien ja välineiden hyödyntämiseen.

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

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

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

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

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

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

Kooste kotitehtävien vastauksista. Kotitehtävä 6 - Ylläpito- ja kehittämismalli 29.4.2011

Kooste kotitehtävien vastauksista. Kotitehtävä 6 - Ylläpito- ja kehittämismalli 29.4.2011 Kooste kotitehtävien vastauksista Kotitehtävä 6 - Ylläpito- ja kehittämismalli 29.4.2011 1.) Järjestelmän ylläpitomalli? ja 2.) Järjestelmän jatkokehittämismalli? OPH on omistaja ja ylläpitäjä ja huolehtii

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

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

Lisätiedot

Hoitotyön n tulevaisuuden skenaariot kehittämisty. mistyön. TtT,, yliopettaja Annikki Jauhiainen Savonia-ammattikorkeakoulu

Hoitotyön n tulevaisuuden skenaariot kehittämisty. mistyön. TtT,, yliopettaja Annikki Jauhiainen Savonia-ammattikorkeakoulu Hoitotyön n tulevaisuuden skenaariot kehittämisty mistyön lähtökohtana TtT,, yliopettaja Annikki Jauhiainen Savonia-ammattikorkeakoulu ammattikorkeakoulu Professori Kaija Saranto & Professori Kerttu Tossavainen,

Lisätiedot

Työkalujen merkitys mittaamisessa

Työkalujen merkitys mittaamisessa Työkalujen merkitys mittaamisessa Mittaaminen ja Ohjelmistotuotanto -seminaari Toni Sandelin 18.4.2001, VTT Elektroniikka, Oulu 1 Sisältö Mihin työkalutukea tarvitaan? Työkalut & metriikat: luokitus Mittausohjelmien

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

Kokoelmahallinnon tärket

Kokoelmahallinnon tärket Kokoelmahallinnon tärket rkeät lomakkeet Tiina Paavola Maakunnallinen museopäiv ivä 2.6.2009 Luovutustodistus Juridinen asiakirja, jolla siirretää ään n lahjoitettavan materiaalin omistusoikeus museolle

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

HL7-standardien soveltuvuus sosiaalihuoltoon

HL7-standardien soveltuvuus sosiaalihuoltoon HL7-standardien soveltuvuus sosiaalihuoltoon Terveydenhuollon ATK-päiv ivät Turku, 29.5.2007 Esa Paakkanen ATK-suunnittelija HIS-tutkimusyksikk tutkimusyksikkö Kuopion yliopisto Sisält ltö Sosiaalihuolto

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

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

Finanssitekninen opetustarjonta Turussa

Finanssitekninen opetustarjonta Turussa Finanssitekninen opetustarjonta Turussa Luis H. R. Alvarez Suomen Aktuaariyhdistyksen kuukausikokous 29.3.2012 Olemassa olevan koulutuksen kuvaus Turussa vakuutusliiketoimintaan (tai laveasti ottaen finanssitoimialaan)

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

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

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

Lisätiedot

TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI TIETOKONELAITTEIDEN ASENNUS, KORJAAMINEN JA KONFIGUROINTI

TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI TIETOKONELAITTEIDEN ASENNUS, KORJAAMINEN JA KONFIGUROINTI TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI TIETOKONELAITTEIDEN ASENNUS, KORJAAMINEN JA KONFIGUROINTI TIETOKONELAITTEIDEN ASENNUS, KORJAAMINEN JA KONFIGU- ROINTI Perjantai aamupäivä

Lisätiedot

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015 Fiksumpi käyttöliittymä kuntaan Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015 Otso Kivekäs 20.8.2015 Otso Kivekäs+ Codento Kehittämispäällikkö, kunta-alan projektit

Lisätiedot

Kokemuksia ja näkemyksiä teollisuusmatematiikan koulutuksen kehittämisestä

Kokemuksia ja näkemyksiä teollisuusmatematiikan koulutuksen kehittämisestä Kokemuksia ja näkemyksiä teollisuusmatematiikan koulutuksen kehittämisestä Erkki Heikkola, Pasi Tarvainen Numerola Oy, Jyväskylä Teollisuusmatematiikan päivä 15.10.2009, Helsingin yliopisto Numerola Oy

Lisätiedot

ITK130 Ohjelmistojen luonne

ITK130 Ohjelmistojen luonne ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi

Lisätiedot

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja. IsoInt Tietokoneiden muisti koostuu yksittäisistä muistisanoista, jotka nykyaikaisissa koneissa ovat 64 bitin pituisia. Muistisanan koko asettaa teknisen rajoituksen sille, kuinka suuria lukuja tietokone

Lisätiedot

Automaatio- ja systeemitekniikan projektityöt 2013

Automaatio- ja systeemitekniikan projektityöt 2013 Automaatio- ja systeemitekniikan projektityöt 2013 AS- 0.3200 Kahvinuuttoprosessin automaatiojärjestelmä Projektin suunnitelmadokumentti Antti Kangasrääsiö 68950W Joonas Kröger 78651M 1. Johdanto Tämän

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

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

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

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

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

Testaus teoriassa ja käytännössä. Jukka Paakki Helsingin yliopisto Tietojenkäsittelytieteen laitos

Testaus teoriassa ja käytännössä. Jukka Paakki Helsingin yliopisto Tietojenkäsittelytieteen laitos Testaus teoriassa ja käytännössä Jukka Paakki Helsingin yliopisto Tietojenkäsittelytieteen laitos Teoria = tutkimus IEEE Transactions on Software Engineering, 2000-2002 Software Testing, Verification &

Lisätiedot

Ohjelmien analysointi. ER-kaaviot

Ohjelmien analysointi. ER-kaaviot Ohjelmien analysointi Ohjelmien kuvaaminen kaavioilla ohjelmien ymmärtäminen kaavioiden avulla kaavioiden tuottaminen ohjelmasta Erilaisia kaaviotyyppejä: ER-kaaviot, tilakaaviot, UML-kaaviot tietohakemisto

Lisätiedot

IEC 61508-3 sisältö ja rakenne

IEC 61508-3 sisältö ja rakenne 1(41) IEC 61508-3 sisältö ja rakenne Matti Vuori, Tampereen teknillinen yliopisto Huom! Esityksessä käytetyt standardin suomenkieliset tekstit, termit ja kaaviot ovat standardin käännöksen vielä hyväksymättömästä

Lisätiedot

Teollisuusautomaation standardit Osio 9

Teollisuusautomaation standardit Osio 9 Teollisuusautomaation standardit Osio 9 Osio 1: SESKOn Komitea SK 65: Teollisuusprosessien ohjaus Osio 2: Toiminnallinen turvallisuus: periaatteet Osio 3: Toiminnallinen turvallisuus: standardisarja IEC

Lisätiedot

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

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

Lisätiedot

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