Johdanto. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Samankaltaiset tiedostot
Käytännön formaalit menetelmät

Formaalit menetelmät

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

HAHMONTUNNISTUKSEN PERUSTEET

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

HAHMONTUNNISTUKSEN PERUSTEET

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Kyselytutkimus opiskelijoiden ajankäytöstä tietojenkäsittelyteorian peruskurssilla

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Ohjelmistoarkkitehtuurit. Kevät

Tietotekniikan kandidaattiseminaari

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Software engineering


Menetelmiä jatkuvaan opiskeluun kannustamiseen ja oppimisen seurantaan

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Matematiikan ohjelmointi. Joakim von Wright

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2010

Internet ja tietoverkot

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

T Johdatus tietoliikenteeseen 5 op

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

Kasvatustieteiden (yleinen ja aikuiskasvatustiede) aineopinnot 35 op

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

Matematiikka ja tilastotiede. Orientoivat opinnot /

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistotekniikan menetelmät, kesä 2008

ELINTARVIKE MARKKINOINNIN PERUSTEET YET-004

Kirjallisuus 2 op Suoritus: Tentti (luennot ja kirjallisuus) ke klo salissa HU207.

A4.1 Projektityö, 5 ov.

Ohjelmistojen mallintaminen, kesä 2009

Efficiency change over time

35C00250 Hankintojen johtaminen Kurssin esittely

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Operatioanalyysi 2011, Harjoitus 3, viikko 39

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Information on Finnish Courses Autumn Semester 2017 Jenni Laine & Päivi Paukku Centre for Language and Communication Studies

812336A C++ -kielen perusteet,

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Sarjat ja integraalit, kevät 2014

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus.

Mitä Master Class:ssa opittiin?

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

A35C00250 Hankintojen johtaminen Kurssin esittely

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Johdanto II. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Matematiikka ja tilastotiede. Orientoivat opinnot /

Matematiikan opintosuunta

Tekijä: Pirkko Jokinen. Osaamisen arviointi

ELEC-C5210 Satunnaisprosessit tietoliikenteessä

OPISKELUTYÖN MITOITUS Opetuksen suunnittelun työväline, jolla arvioidaan opiskelijan työmäärää suhteessa 1 PERUSTIEDOT

ITK130 Ohjelmistojen luonne

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Koe on kaksiosainen: siihen kuuluvat tekstitaidon koe ja esseekoe. Tekstitaidon kokeen arvioinnissa painottuu lukutaito ja esseekokeessa

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

TÄYTTÖAUTOMAATIT TÄYTTÖAUTOMAATIT COMPUTER INFLATORS

Johdanto Meta Kielten jaotteluja Historia. Aloitusluento. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho

Johdatusta ohjelmistotekniikkaan

ELEC-C7230 Tietoliikenteen siirtomenetelmät. Yleistä

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

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

Sopimuspohjainen olio-ohjelmointi

ELEC-C7230 Tietoliikenteen siirtomenetelmät

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

ELEC-C8001 Sähköenergiatekniikka, 5 op Kurssin tavoitteet, sisältö ja käytännön asiat

4x4cup Rastikuvien tulkinta

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

ELEC-C8001 Sähköenergiatekniikka, 5 op Kurssin tavoitteet, sisältö ja käytännön asiat

ELEC-C8001 Sähköenergiatekniikka, 5 op Kurssin tavoitteet, sisältö ja käytännön asiat

Artikkelikansio (2 op), tentitään tiedekunnan tai I oppiaineryhmän tenttipäivänä. Tentaattori Veli-Pekka Lehtola.

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

TAMPEREEN YLIOPISTO Muutos Kasvatustieteiden yksikkö Muutos

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

Käsityötieteen aineopinnot

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

KEVÄT lv. Seuraa nettilukkaria todennäköisten päivitysten havaitsemiseksi. Päivitykset on merkitty punaisella!

KEVÄT lv. Seuraa nettilukkaria todennäköisten päivitysten havaitsemiseksi. Päivitykset on merkitty punaisella!

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

16. Allocation Models


Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa. Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio

Ohjelmistotekniikan menetelmät, kevät 2008

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

SAS-ohjelmiston perusteet 2010

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

T Ohjelmistotekniikan seminaari

JOHDATUS TEKOÄLYYN TEEMU ROOS

Ohjelmistojen mallintaminen, kesä 2010

RINNAKKAINEN OHJELMOINTI A,

802120P Matriisilaskenta (5 op)

Kasvatustieteiden (yleinen ja aikuiskasvatustiede) aineopinnot 35 op

Transkriptio:

TIE303 Formaalit menetelmät, kevät 2005 Johdanto Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-17 p. 1/17

TIE303 Formaalit menetelmät TIE303 Formaalit menetelmät (3 ov, ECTS 0.0 cr) Assistentti Antti-Juhani Kaijanaho (antkaij@mit.jyu.fi) Aikataulu Luennot ma 10-12 ja to 14-16 salissa Ag Beeta. Sisältö Formaalien määrittelymenetelmien perusteet, esimerkkejä formaalien kielten ja menetelmien käytöstä (esim. Z, VDM, Estelle, Lotos, B). Kirjallisuus Luentomoniste, muu lähdemateriaali ilmoitetaan luennoilla. Esitiedot Automaatit ja kieliopit. Suositellaan myös MAT223 Logiikka (2 ov) tai FILA25 Logiikka I. Opetusmuodot Luennot, demot, seminaarityö, töiden esittely- ja opponointitilaisuus. Suoritustavat Loppukoe, seminaarityö. TIE303 Formaalit mentetelmät, 2005-01-17 p. 2/17

Aikataulu Luennot salissa Ag Beeta: ma klo 10 12, to klo 14-16 Demot: sovitaan nyt. Luennot + demot: noin 8 viikkoa (tammi-maaliskuu) Seminaari toukokuussa. Tentit: 20.5., 17.6. Luennoijan vastaanottoaika: ke 12-14 (ei ajanvarausta) TIE303 Formaalit mentetelmät, 2005-01-17 p. 3/17

Suoritus Tentti ja kirjallinen seminaarityö ovat pakollisia. Tentin voi korvata oppimispäiväkirjalla (http://www.mit.jyu.fi/antkaij/opetus/fm/2005/opk.html). Seminaariin osallistuminen tuo bonuspisteitä. Aktiivinen osallistuminen demoissa tuo bonuspisteitä. Tentti tai oppimispäiväkirja: max. 24 pistettä (leikkuri 12 pisteessä). Seminaariin osallistuminen: 1-3 pistettä. Demot: 1-3 pistettä. Arvosteluasteikko: 1 1+ 1.5 2 2 2+ 2.5 3 3 12 13 1 3 14 2 3 16 17 1 3 18 2 3 20 21 1 3 22 2 3 TIE303 Formaalit mentetelmät, 2005-01-17 p. 4/17

Kirjallisuus Kurssikirja: Antti-Juhani Kaijanaho, Tommi Kärkkäinen: Formaalit menetelmät. Luentomoniste 12, Jyväskylän yliopisto, Tietotekniikan laitos, 2005. (Saapunee Mattilanniemen Kampus-Kirjaan tänään.) Muuta yleisluontoista kirjallisuutta on nihkeästi. Useista yksittäisistä menetelmistä ja notaatioista on erinomaisia kirjoja. Ohjelmistotekniikan oppikirjoissa (Pressman ym.) on yleensä luku formaaleista menetelmistä. Ne vain raapaisevat pintaa. Paljon hajanaisia tieteellisiä julkaisufoorumeita, ks. esim. http://vl.fmnet.info/pubs/. TIE303 Formaalit mentetelmät, 2005-01-17 p. 5/17

Kurssin pihvi Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita. Kognitio on oppimisen, päättelyn ja havainnoinnin aiheuttama muutos ihmisen psyykessä. Metakognitio on kognition kognitiota. Siis: kurssi kehittää kykyä havainnoida ja hallita omaa osaamista ja ohjelmointitehtävien ratkaisumalleja. TIE303 Formaalit mentetelmät, 2005-01-17 p. 6/17

Keskustelua Miksi tulit kurssille? Mitä odotat kurssilta? Mieliala? TIE303 Formaalit mentetelmät, 2005-01-17 p. 7/17

Formaalit menetelmät? Formaalit menetelmät? TIE303 Formaalit mentetelmät, 2005-01-17 p. 8/17

Laatu? Equipped with the basic concepts of class, object and genericity, you can now write software modules that implement possibly parametrized types of data structures. Congratulations. This is a significant step in the quest for better software architectures. But the techniques seen so far are not sufficient to implement the comprehensive view of quality introduced at the beginning of this book. The quality factors on which we have concentrated reusability, extensibility, compatibility must not be attained at the expense of reliability ( correctness and robustness). Bertrand Meyer: Object-oriented Software Construction, Second Edition, Prentice-Hall 1997, luku 11. Lihavointi AJK:n. TIE303 Formaalit mentetelmät, 2005-01-17 p. 9/17

Laatu? Program testing can be used to show the presence of bugs, but never to show their absence! Edsger W. Dijkstra: Notes On Structured Programming, EWD249, 1970. TIE303 Formaalit mentetelmät, 2005-01-17 p. 10/17

Formaali? Formaali on suomeksi muodollinen Matematiikassa sana on saanut erityismerkityksen mekaanisesti (tietokoneella) tarkistettavissa oleva. Tavallisesti matemaatikot kuitenkin käyttävät sanaa hieman vapaammin tarkoittamaan erityisen täsmällisesti tehty. Formaalien menetelmien yhteydessä sanaa formaali käytetään samassa merkityksessä kuin matematiikassa. Ohjelmistotekniikassa ja -tuotannossa sanaa käytetään muuten tavallisessa merkityksessään. Huomaa sekaantumisen vaara ja varo! TIE303 Formaalit mentetelmät, 2005-01-17 p. 11/17

Formaalit menetelmät 1 Formaalien menetelmien alue on hyvin laaja, kaiken kattavaa määritelmää on vaikea asettaa. Yhteistä kaikille formaaleille menetelmille on matemaattisen täsmällisyyden korostaminen ohjelmistotuotannossa. Hyvin monet formaalit menetelmät soveltavat jotain tietojenkäsittelylogiikan teoriaa ohjelmistojen toiminnallisuuden mallittamiseen. Sovellusalueen matematiikan käyttäminen ei kuulu formaaleihin menetelmiin; formaalit menetelmät ovat pikemminkin ohjelmistotekniikan omaa matematiikkaa. TIE303 Formaalit mentetelmät, 2005-01-17 p. 12/17

Formaalit menetelmät 2 Formaalit menetelmät -nimistä tutkimusalaa ei oikeastaan ole. Nimeke kattaa sekalaisen joukon välineitä, joita yhdistää löyhästi matemaattisen täsmällisyyden vaaliminen ohjelmistotyössä. Tämäkin kurssi on siten hajanainen. Kurssin asiat pitäisi opettaa muilla kursseilla. Miksi ei opeteta? (Ghetto-ilmiö?) (Tekoäly-ilmiö?) TIE303 Formaalit mentetelmät, 2005-01-17 p. 13/17

Formaaliuden muotoja Ohjelman vaatimusten täsmällistäminen aikaisessa vaiheessa (formal specification) Virhetyyppien poissulkeminen staattisin tarkastuksin (static checking) Kriittisen komponentin oikeellisuuden varmistaminen (correctness proofs) Ohjelman johtaminen tehtäväkuvauksesta (program derivation, contract refinement) Automaattinen testaus (QuickCheck, assertions) TIE303 Formaalit mentetelmät, 2005-01-17 p. 14/17

Hyötyjä? Analyyttinen ote: Tiedetään mitä tehdään. Virheiden määrä vähenee. Selkeärakenteinen speksi ja koodi Abstrakti ote: Kokonaisuus hallussa käsiä heiluttelematta? Uudelleenkäyttö jäsentyy. TIE303 Formaalit mentetelmät, 2005-01-17 p. 15/17

Esteitä Litteä maa -efekti Tekoäly-efekti Todellinen ongelma: matemaattisen taidon puute TIE303 Formaalit mentetelmät, 2005-01-17 p. 16/17

Seuraava luento: torstaina klo 14 samassa salissa (Ag Beeta). TIE303 Formaalit mentetelmät, 2005-01-17 p. 17/17