4. Luento Käsiteltävä tieto

Samankaltaiset tiedostot
10. Luento Käsiteltävä tieto

käyttötapaukset mod. testaus

Joku hauska otu-aiheinen kuva (no ei oo pakko olla hauska) OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

5. Luento Vaatimusmäärittelyt 2 Käsiteltävä tieto

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Määrittelyvaihe. Projektinhallinta

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen, kesä 2009

2. Käsiteanalyysi ja relaatiomalli

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

VH5, JOTU, MagicDraw:n käyttö

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

MagicDraw-pikaohje (VH5)

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

3. Käsiteanalyysi ja käsitekaavio

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Ohjelmistojen mallintaminen, kesä 2010

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Ohjelmistotekniikan menetelmät, kevät 2008

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

GroupDesk Toiminnallinen määrittely

P e d a c o d e ohjelmointikoulutus verkossa

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Salasanan vaihto uuteen / How to change password

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

TIE = JOTU. VH5 - MagicDraw

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Sopimuspohjainen olio-ohjelmointi

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Vaatimukset mitä ne ovat

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

HELIA 1 (20) Outi Virkki Tiedonhallinta

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

Ohjelmoinnin perusteet Y Python

Johdatus rakenteisiin dokumentteihin

Harjoitus 6 (viikko 42)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Ohjelmistojen suunnittelu

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

NELLI-Tunnis. Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa. Versio Ere Maijala Kansalliskirjasto

Vaatimusmääritelystä UML:n avulla

Ohjelmoinnin perusteet Y Python

Tietokannan suunnittelu

Vaatimusmäärittelyistä

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Ohjelmoinnin perusteet Y Python

TOIMINNALLINEN MÄÄRITTELY MS

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Vaatimusmäärittelyistä

IIO30100 Tietokantojen suunnittelu (6 op)

OpenOffice.org Base 3.1.0

Ohjelmoinnin perusteet Y Python

UML- mallinnus: Tilakaavio

Luento 3 Tietokannan tietosisällön suunnittelu

IIO30100 Tietokantojen suunnittelu (6 op)

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

2. Olio-ohjelmoinnin perusteita 2.1

Paikkatiedot ja Web-standardit

Yhteentoimivuutta edistävien työkalujen kehittäminen

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Testaaminen ohjelmiston kehitysprosessin aikana

Ohjelmistotekniikan menetelmät, UML

Tekstiviestipalvelun rajapintakuvaus

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Tietojärjestelmän osat

Ohjelmoinnin perusteet Y Python

Harjoitus 5 (viikko 48)

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Mittaustietojen SAF-aineistokuvaus kaasudatahubiin

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Choose Finland-Helsinki Valitse Finland-Helsinki

Ohjelmoinnin perusteet Y Python

1. Kalenterin omistajan käyttöohje

HELIA 1 (17) Outi Virkki Tiedonhallinta

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Prosessien mallintaminen

15. Ohjelmoinnin tekniikkaa 15.1

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Transkriptio:

4. Luento Käsiteltävä tieto Kari Systä JOTU 2015 / Kari Systä 1

Terveisiä viikkoharjoituksista ti klo 10-12 Tensu 14 -> 16 ti klo 12-14 Aleksi 28 -> 27 ke klo 10-12 Aleksi 19 -> 19 ke klo 12-14 Aleksi 17 -> 20 ke klo 14-16 Henri 20 -> 16 ke klo 16-18 Henri 19 -> 15 to klo 12-14 Tensu 32 -> 29 to klo 14-16 Tensu 18 -> 20 to klo 16-18 Tensu. 16 -> 13 Tilapäisesti voit jollakin viikolla käydä jossakin toisessa vhryhmässä kuin mihin alun perin olit ilmoittautunut. TIE-02300 2

Harjoitustyöstä (https://mooc.tut.fi/courses/12/pages/harjoitustyo) Asiakasvaatimusdokumentti Vähintään 2 sivua pitkä Myös useampi ei-toiminnallinen vaatimus Myös useampi reunaehto/rajoite Palautus pe 18.9. klo 16:00 mennessä Palautus tapahtuu Canvasiin ryhmäalueelle Tiedoston nimi muotoa "TIE-02300-S2015-ASVAAT-RXX-RYY.pdf/odt/doc" Toimittajaryhmän kannattaa kysellä vaatimusten perään, jos vaatimuksia ei kuulu Pieni johdanto on suositeltava, koska toimittajaryhmä ei tunne taustatarinaa Asiakastapaaminen Aika varataan oikealta assistentilta Canvas-työkalussa Asiakas ottaa mukaan Omat asiakasvaatimukset Toimittaja (nämä niputetaan kansilehden alle): Annetut asiakasvaatimukset Käsinpiirrettyjä käyttöliittymäkuvia järjestelmän oleellisimmista toiminnoista vähintään 4kpl, katso l esimerkki. (Links to an external site.) Yksi kuva per A4. JOTU 2015 / Kari Systä 3

Luentoaikataulusta 24.08.2015 Kurssin esittely, johdanto ohjelmistotuotantoon 01.09.2015 Erilaisista ohjelmistoista ja niiden ominaisuuksista; johdantoa vaatimuksiin; ensitietoa harjoitustyöstä. 08.09.2015 Vaatimusmäärittelyt ja käyttötapaukset. Vaatimukset osa 2: tiedon mallintaminen. 21.09.2015 Käytettävyys ja käyttökokemus. Kati Kuusinen 28.09.2015 05.10.2015 Tuotantoprosesseista ja elinkaarimalleista, sekä mitä asiakkaan on niistä ymmärrettävä. Ehkä vierailuluento tai piirtelynotaatioista tai asiakasroolista JOTU 2015 / Kari Systä 4

Kertausta - Mitä vikaa tässä on? Kurssijärjestelmä Etsi opiskelija Etsi kurssi Liitä ilmoittautuneiden joukkoon JOTU 2015 / Kari Systä 5

Sisältöä Mitä tietoa järjestelmä käsittelee käsitteellinen mallinnus Useissa järjestelmissä käsiteltävä tieto määrää koko ohjelman rakenteen Tiedon yksityiskohtien määritteleminen Tiedon esitys- ja välitystavoista - mm. XML Mitä se Big Data on JOTU 2015 / Kari Systä 6

Järjestelmää suunniteltaessa on tärkeää miettiä tallennettavaa tietoa Tiedon tyyppi, arvoalueet ja rajoitteet Vrt Arienne kantoraketti Tietojen väliset yhteydet ja riippuvuudet Valittu tiedon rakenne vaikuttaa järjestelmän toimintoihin ja tehokkuuteen Järjestelmien välinen tiedon siirto Myös siirto vanhasta uuteen JOTU 2015 / Kari Systä 7

Suunnitteluprosessi 1. Käsitteellinen mallintaminen Tiedon määrittely Käyttötapaukset 2. Tiedon esitysmuodot ja tallentaminen Tietokanta 3. Tiedon siirto ja vaihto 2. Järjestelmä JOTU 2015 / Kari Systä 8

Muita kursseja Jotu Johdatus tietokantoihin Data intensive programming Tietokantojen suunnittelu JOTU 2015 / Kari Systä 9

Käsitteellinen mallintaminen (lainaus kurssin tietokantojen suunnittelu luentomateriaalista) Kuvataan maailmaa (kohdealue) siellä olevien käsitteiden, niiden ominaisuuksien ja suhteiden avulla. Näiden tilat voivat muuttua ajoittain tapahtumien vaikutuksesta. Ollaan kiinnostuneita maailman tilasta menneisyydessä, nyt ja tulevaisuudessa. Käsitteellinen malli = kohdealueen vääristymätön ja täydellinen esitys (, jossa mahdolliset toteutusnäkökohdat jätetään huomioimatta.) JOTU 2015 / Kari Systä 10

Viime luennolla Toimii apuna hahmotettaessa järjestelmää (yhteinen näkemys järjestelmästä) Liittää asiakasvaatimukset järjestelmän toimintoihin Mahdollistaa vaatimusten täsmentämisen Rajaa järjestelmän ympäristöstään Auttaa tunnistamaan kuka tai mikä käyttää järjestelmää Määrittää järjestelmän korkean tason toiminnallisuuden Auttaa jakamaan toiminnallisuuden osajärjestelmiin. Määrittää järjestelmän perustermit. Apuna olioiden (keskeisten käsitteiden) tunnistamisessa. Voidaan käyttää ohjelmistokehityksen organisointiin (iteraatioiden suunnittelu) Testauksen suunnittelu Käyttöohjeiden laatiminen JOTU 2015 / Kari Systä 11

esimerkki (kuva 8.7) Nimi: Luentosalin varaaminen, versio 1.0 / ijh Osallistujat: Kurssin vastuuhenkilö Tuloehdot: Vastuuhenkilö ja kurssi on syötetty järjestelmään (KT henkilötietojen ylläpito) Kuvaus: Vastuuhenkilö seuraa WWW-linkkiä, joka johtaa järjestelmän pääsivulle. Hän syöttää järjestelmään käyttäjätunnuksensa ja salasanansa (include: KT käyttäjän identifiointi). Käyttäjä pyytää järjestelmää näyttämään salin varaustilanteen haluamaltaan aikaväliltä. Hän saa eteensä salin lukujärjestysnäytön (ks. liite). Käyttäjä näkee näytöstä vapaat ajat sekä myös, mille kursseille sali on milloinkin varattu ja kuinka monelle viikolle. Käyttäjä tekee varauksen joltain vapaaksi havaitsemaltaan ajankohdalta. [Poikkeus: varaus ei onnistu]. Poikkeukset: Varaus ei onnistu: Varaustilanne on voinut muuttua sillä aikaa kun varaaja tekee varausta. Järjestelmä ilmoittaa tilanteesta käyttäjälle ja käyttäjä yrittää uudelleen. Lopputulos:Varaukset kurssin luentoajoiksi on tehty. Muut vaatimukset:päivittäin käsitellään kiireisimpänäkin aikana enintään n. 100 varausta. Vastausajan on oltava alle 1 sekuntia ja lukujärjestysnäytön päivitys saa kestää enintään 5 sekuntia. JOTU 2015 / Kari Systä 12

Esitetään useimmiten graafisesti Oliokaavio Luokkakaavio (UML) ER-kaavio (entity-relationship kaavio) Tietoyhteyskaavio Käsitekaavio Kohdekaavio JOTU 2015 / Kari Systä 13

Käsitekaavio (UML:n luokkakaavio) Nimi Ominaisuudet Metodit lkm nimi Yhteys assosiaatio lkm Nimi Ominaisuudet Metodit Käsite, tieto, luokka JOTU 2015 / Kari Systä 14

Esimerkki Navigointisuunta JOTU 2015 / Kari Systä 15

Kooste/muodoste Kooste (aggregation) Olio on toisen osa / komponentti Muodoste (composition) Kiinteä riippuvuus Usein elinikäinen riippuvuus JOTU 2015 / Kari Systä 16

Muodoste/kooste Kooste: Muodoste: JOTU 2015 / Kari Systä 17

Yleistäminen Olio-ohjelmoinnin kurssilla puhutaan sitten periytymisestä JOTU 2015 / Kari Systä 18

Muut notaatiot: Chenin notaatio (kuva 6.11) opiskelija 1:N osallis- tuu 0:N kurssi 0:N <-kuvaa 1:1 opintojakso 0:N 1:1 0:N 0:N suorittaa 0:N tentti kuuluu luennoi 0:1 suoritus opettaja JOTU 2015 / Kari Systä 19

Muut notaatiot: Martinin kohdekaaviot (kuva 6.12) opiskelija osallistuu kurssi kuvaa opintojakso luennoi kuuluu suoritus tentti opettaja JOTU 2015 / Kari Systä 20

Vinkkejä ja neuvoja Assosiaatio-yhteys voi olla joko kaksisuuntainen tai yksisuuntainen. Ns navigointisuunta Tarvittaessa merkitse navigaatiosuunta (UML:ssä nuolella) Käsitekaaviossa tiedon tyyppejä (luokkia) Olio-ohjelmoinnissa mennään syvemmälle olioiden ja luokkien ihmeelliseen maailmaan Lukumääräsuhteiden oikeellisuuteen kannattaa kiinnittää huomiota, sillä ne ohjaava järjestelmän suunnittelua. Raja assosiaation, muodosteen ja koosteen välillä on usein häilyvä JOTU 2015 / Kari Systä 21

Etevä suunnittelija käsittää käsitteet http://aikalainen.uta.fi/2011/12/23/eteva-suunnittelija-kasittaa-kasitteet/ Tietojärjestelmän tekijän täytyy ensin itse ymmärtää, mistä on kyse, ja tunnistaa asiaan liittyvät käsitteet. Käsitteet ovat sellaisia, joita järjestelmää käyttävä ihminen tuntee. Käsitteellinen mallintaminen on eri asia kuin järjestelmän käytettävyys, joskin mallintamisen puute saattaa heijastua myös järjestelmän käytettävyyteen. Jos käsitteellistä mallintamista ei ole suunnitteluvaiheessa tehty tai se on tehty huonosti, niin järjestelmästä alkaa usein paljastua asioita, jotka eivät toimi niin kuin suunnittelija on kuvitellut. Järjestelmään tulee virheitä, joita ei ehkä helposti pystytä paljastamaan. Tietojärjestelmän rakentaminen kuulostaa arkiselta työltä, mutta käsitteellisessä mallintamisessa tarvitaan filosofian oppeja tiedon sisällöstä ja käsitteistä. JOTU 2015 / Kari Systä 22

Eräs tunnettu kömmähdys Vaalitulospalvelu eduskuntavaaleissa 1970 JOTU 2015 / Kari Systä 23

Mitä tapahtui SMP oli saamassa murskavoittoa ja 18 kansanedustajaa Mutta tulospalvelu ennusti jatkuvasti vain n. 8 edustajaa. SMP:n legendaarinen poliitikko Eino Poutiainen laski omia ennusteitaan klubiaskin kanteen ja oli kokoajan oikeassa. JOTU 2015 / Kari Systä 24

Eino Poutiaisen muistelmista Tietokonekaan ei vaalien jälkeisenä yönä tulosten laskennassa ruvennut uskomaan tosiasioita. [...] Joten herrojen henki oli tarttunut tietokoneeseenkin, joka sitten ällisteli ja ihmetteli. [...] Eniten kiinnitti huomiotani, kun televisiossa ilmoitettiin Oulun vaalipiirin äänistä lasketuksi noin 30 % ja meille sanottiin ääniä tulleen vain 0,5 %. Silloin huomasin, että kyllä tohtori Sänkiahon rokkatoosa joutaisi heittää Suomenlahteen, koska hörisee niin kuin vanha tamma, jolle syötetään ruisjauhoapetta. JOTU 2015 / Kari Systä 25

Prof. Sänkiahon kuvaus erään laskennassa tarvittavan kertoimen arvo määriteltiin yhdellä kokonaisluvulla ja kahdella desimaalilla. Kone "luki arvon 12.34 arvoksi 2.34 ja ollen kertoimena niin tulokset olivat vähän pielessä useissa vaalipiireissä eli siellä missä SMP:n kannatus lisääntyi yli kymmenkertaiseksi. PS. Cobol kielessä on tapana käyttää desimaalilukuja liukulukujen sijaan JOTU 2015 / Kari Systä 26

Tiedon rakenteen määrittely Tarkennetaan käsitteellisen mallinnuksen tulosta Useimmiten vastuu toimittajalla, mutta vain tilaaja tietää oikeat vastaukset Jatkossa esimerkkejä tavoista joilla rakennetta voi määritellä. JOTU 2015 / Kari Systä 27

Esimerkki: ajan esittäminen (joka aiheuttaa usein päänsärkyä) 14.9 14.9.2015 14. maaliskuuta Mon Sep 14 14:30:21 EEST 2015 Mon Sep 14 2015 14:30:21 GMT+3 (EEST) 1442043251115 JOTU 2015 / Kari Systä 28

UTC aika Maailmanlaajuinen standardiaika joka vuonna 1972 korvasi ns GMT-ajan 1442043251115 on millisekunteja vuoden 1970 alusta 1442043251115 / 1000 = 1442043251 sekuntia 1442043251 / 3600 = 400568 tuntia 400568 / 24 = 16690 vuorokautta 16690 / 365,25 = 45,7 vuotta Ennen vuotta 1970 olevat ajat voidaan tulkita negatiivisiksi: > d2 = new Date ("Sat Sep 12 1960 10:34:11 GMT+0300") Mon Sep 12 1960 10:34:11 GMT+0300 (EEST) > d2.valueof() -293559949000 JOTU 2015 / Kari Systä 29

http://www.databasejournal.com/features/mysql/articl e.php/3577131/date-and-time-in-mysql-5.htm The big change here (since MySQL 4.1) is with the TIMESTAMP type. The old MySQL 4.0 TIMESTAMP was stored in the format YYYYMMDDHHMMSS. By defining it as TIMESTAMP(x) - x being one of 14,12,10,8,6,4 or 2, you could determine in what format the data was returned. The dubious merits of this are no longer available. The TIMESTAMP type is now effectively a TIMESTAMP(19), and the format in which it's returned cannot be changed. Let's create a sample table and explore this further. JOTU 2015 / Kari Systä 30

DATETIME TIMESTAMP 'YYYY-MM-DD HH:MM:SS' 'YYYY-MM-DD HH:SS:MM' Range from '1000-01- 01 00:00:00' to '9999-12-31 23:59:59'. Can be assigned as a string or numeric. Range from '1970-01- 01 00:00:00' to partway through the year 2037. JOTU 2015 / Kari Systä 31

Mitä olisivat yksinkertaiset neuvot Mieti miten aika näytetään käyttäjälle Mieti miten käyttäjä antaa kellonajan Siihen, että käyttäjän arvoin annetaan vain kirjoittaa aika on syynsä Mieti mistä muualta aika-arvoja sisältävää tietoa tulee järjestelmään Miten aika tallennetaan Useimmissa sovelluksissa UTC kokonaislukuna riittää Käytettävän tietokantajärjestelmän käytännöt otettava huomioon JOTU 2015 / Kari Systä 32

Bachus-Naur Form (Lauseke) 1: <lauseke> ::= <kertolauseke> <kertolauseke> <ynnäoper> <lauseke> 2: <kertolauseke> ::= <sulkulauseke> <sulkulauseke> <kerto-oper> <kertolauseke> 3: <sulkulauseke> ::= <termi> ( <lauseke> ) 4: <termi> ::= <numeerinen_vakio> <muuttuja> 5: <ynnäoper> ::= + - 6: <kerto-oper> ::= * / JOTU 2015 / Kari Systä 33

(a+b)*c Luennoilla käydään läpi tarkistus sääntöjen avulla kuten kirjassa Jos aikaa, myös tietokoneen (esim kääntäjän tapa) joka seuraavilla kalvoilla JOTU 2015 / Kari Systä 34

(a+b)*c <tyhjä> (a+b)*c ( (a+b)*c (a (a+b)*c (muuttuja (a+b)*c (termi (a+b)*c (kertolauseke (a+b)*c (kertolauseke+ (a+b)*c (kertolauseke ynnäop (a+b)*c (kertolauseke ynnäop b (a+b)*c (kertolauseke ynnäop lauseke (a+b)*c (kertolauseke ynnäop lauseke ) (a+b)*c (lauseke) JOTU 2015 / Kari Systä 35

(a+b)*c lauseke * (a+b)*c lauseke kerto-op (a+b)*c lauseke kerto-op c (a+b)*c lauseke kerto-op kertolauseke (a+b)*c kertolauseke (a+b)*c lauseke JOTU 2015 / Kari Systä 36

Testataan hieman (a+b)+c? kertolauseke + lauseke a+b*c a+sulkulauseke*c a+kertolauseke a+lauseke kertolauseke+lauseke JOTU 2015 / Kari Systä 37

Tietohakemistonotaatio merkki merkitys + ja () optionaalinen (voi puuttua) {} toisto (0-N kertaa) n{}m toisto n-m kertaa [] vaihtoehtoja vaihtoehtojen erotin @ avainkenttä * kommentti JOTU 2015 / Kari Systä 38

Esimerkkejä henkilötiedot = nimi + @henkilötunnus + aviosääty + lapset nimi = 1{etunimi}3 + sukunimi aviosääty = [naimaton naimisissa eronnut leski] osoite = (toimitusosoite) + (laskutusosoite) osoite = [toimitusosoite laskutusosoite toimitusosoite + laskutusosoite] osoite = toimitusosoite + (laskutusosoite) luottoraja = *asiakkaalle myönnettävän luoton enimmäismäärä markkoina* luottoraja_ilmoitus = *vastaus luottorajan muutosyritykseen* ["Tuntematon asiakas" "Virheellinen luottoraja" "Uudeksi luottorajaksi on muutettu xxx Euroa"] JOTU 2015 / Kari Systä 39

Esimerkkejä suoritustietokanta= * Relaatiokanta, joka kuvaa opiskelijat, kurssit ja suoritukset. Se koostuu tauluista opiskelijat, suoritukset ja opintojaksot.* opiskelijat = {@op_nro + nimi + osoite +...} suoritukset = {@suor_nro + op_nro + oj_nro+ pvm + ov_määrä + arvosana + opettaja} opintojaksot ={@oj_nro+oj_nimi+kuvaus} op_nro nimi os 777 Ahto S. 222 Teemu T. suor_nro op_nro oj_nro pvm ov_määrä arvosana opettaja 234 777 81210 20.3.1995 2 3 ijh 456 222 81210 22.3.1996 2 5 ijh 645 777 81130 24.3.1996 4 3 tensu JOTU 2015 / Kari Systä oj_nro oj_nimi kuvaus 81210 otupk 81130 otm 40

Lauseke tietohakemistonotaatiolla lauseke = [kertolauseke kertolauseke + ynnäop + lauseke] kertolauseke = [sulkulauseke sulkulauseke + kerto-op + kertolauseke] sulkulauseke = [termi ( lauseke ) ] termi = [numeerinen_vakio muuttuja] JOTU 2015 / Kari Systä 41

Pieni sormiharjoitus Pieni sormiharjoitus: esitä tietohakemistonotaatio desimaalilukujen esittämiseksi. Sallittuja lukuja ovat esimerkiksi "-.123", "123", "123.123", ".123", "+123" ja "-123". Kiellettyjä ovat mm. "++123" ja "123.". LUKU = (ETUM) + ARVO ETUM = [ '+' '-' ] ARVO = [ KOK_LUKU + ('.' + KOK_LUKU) '.' + KOK_LUKU ] KOK_LUKU = 1{NUMERO}N NUMERO = ['0' '1' '2' '3' '4' '5' '6' '7' '8' '9'] JOTU 2015 / Kari Systä 42

Suunnitteluprosessi Käyttötapaukset 1. Käsitteellinen mallintaminen Tiedon määrittely 2. Tiedon esitysmuodot ja tallentaminen Tietokanta 3. Tiedon siirto ja vaihto 2. Järjestelmä JOTU 2015 / Kari Systä 43

Tiedonvälitysformaatteja Tarvitaan kun järjestelmät keskustelevat keskenään Vakiotavat ja standardit helpottavat JOTU 2015 / Kari Systä 44

Muita tiedon rakenteen ja esitystavan Merkkauskielet HTML SGML määrittelytapoja XML (ja siihen liittyvät standardit: DTD, XML Schema) ASN.1: tietoliikenteen sanomarakenteet JOTU 2015 / Kari Systä 45

XML, DTD ja Schema A XML doku B DTD/ schema JOTU 2015 / Kari Systä 46

DTD ja Schema DTD Document Type Definition Yksinkertainen Voi olla erillinen tai osa tiedostoa XML Schema Monipuolisempi Aito XML-dokumentti JOTU 2015 / Kari Systä 47

XML:n dokumenttityypin rakenteen määrittely: DTD (Document Type Definition). Tiedon rakenteen kuvaaminen. <!DOCTYPE postitilaus [ <!ELEMENT postitilaus (vastaanottaja, tavara*) <!ELEMENT vastaanottaja (nimi, osoite)> <!ELEMENT tavara (nimeke, määrä, hinta)> <!ELEMENT nimi (#PCDATA)> <!ELEMENT osoite (#PCDATA)> <!ELEMENT nimeke (#PCDATA)> <!ELEMENT määrä (#PCDATA)> <!ELEMENT hinta (#PCDATA)> ]> JOTU 2015 / Kari Systä 48

XML-dokumentti (joka on well-formed, mutta edellä esitetyn DTDkuvauksen mukaan ei valid ) <?xml version="1.0"?> <postitilaus> <vastaanottaja> <nimi>ahto Simakuutio</nimi> <osoite>hermiankatu 99, 33720 Tampere</osoite> </vastaanottaja> <tavarat> <tavara> <nimeke>muistipiiri 256MX</nimeke> <maara>2</maara> <hinta>100</hinta> </tavara> <tavara> <nimeke>nokia Lumia 920</nimeke> <maara>1</maara> <hinta>750</hinta> </tavara> </tavarat> </postitilaus> Jos dokumentti ei ole XML:ää, se ei ole well formed XML-standardin mukaiset dokumentit ovat well formed Tietyn DTD-kuvauksen tai scheman mukaiset kuvaukset ovat valid XML-syntaksin mukainen dokumentti voi siis olla well formed, well formed but not valid tai well formed and valid JOTU 2015 / Kari Systä 49

ja vastaava XML Schema <xsd:schema xmlns:xsd="http://www.w3.org/1999/xmlschema"> <xsd:element name="postitilaus" type="tilaus"/> <xsd:complextype name="tilaus"> <xsd:element name="vastaanottaja" type="osoitetiedot"/> <xsd:element name="tavarat" type="tavaroidentiedot"/> </xsd:complextype> <xsd:complextype name="osoitetiedot"> <xsd:element name="nimi" type="xsd:string"/> <xsd:element name= osoite" type="xsd:string"/> </xsd:complextype> <xsd:complextype name="tavaroidentiedot"> <xsd:element name="tavara" type="tavaratiedot" maxoccurs= *"/> </xsd:complextype> <xsd:complextype name="tavaratiedot"> <xsd:element name= nimeke" type="xsd:string"/> <xsd:element name="maara" type="xsd:positiveinteger"/> <xsd:element name="hinta" type="xsd:decimal"/> </xsd:complextype> </xsd:schema> JOTU 2015 / Kari Systä 50

Toinen esimerkki <?xml version="1.0" encoding="utf-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <Placemark> <name>new York City</name> <description>new York City</description> <Point> <coordinates>74.006393,40.714172,0</coordinates> </Point> </Placemark> </Document> </kml> JOTU 2015 / Kari Systä 51

http://www.opengis.net/kml/2.2 JOTU 2015 / Kari Systä 52

XML:n etuja ja haittoja Yleinen Myös ihmisen luettava Eriäviäkin mielipiteitä on Joustava ja dynaaminen Esim uusi kenttä ei välttämättä riko vastaanottajaa Raskas ja monimutkainen JOTU 2015 / Kari Systä 53

Tutoriaaleja Esimerkiksi nämä on ok http://www.sitepoint.com/xml-dtds-xmlschema/ http://edutechwiki.unige.ch/en/dtd_tutorial JOTU 2015 / Kari Systä 54

Suunnitteluprosessi Käyttötapaukset 1. Käsitteellinen mallintaminen Tiedon määrittely 2. Tiedon esitysmuodot ja tallentaminen Tietokanta 3. Tiedon siirto ja vaihto 2. Järjestelmä JOTU 2015 / Kari Systä 55

Big data mikä kumma se on JOTU 2015 / Kari Systä 56

HYPE Paljon palstatilaa lehdissä Määritelmät epämääräisiä ja erilaisia Paljon odotuksia paljon konsultteja JOTU 2015 / Kari Systä 57

Google statistiikkaa (www.google.com/trends) JOTU 2015 / Kari Systä 58

Yksi määritelmä "Big data is high volume, high velocity, and/or high variety information assets that require new forms of processing to enable enhanced decision making, insight discovery and process optimization." Gartner, 2012 JOTU 2015 / Kari Systä 59

Volume, velocity, variety Volume Tietoa on PALJON Velocity Uutta tietoa syntyy koko ajan Variety Tiedon esitystavat ovat moninaiset ja saattavat jopa muuttua JOTU 2015 / Kari Systä 60

Big Datan haasteet Ohjelmointi Analyysi Business, Domain, Laki Uudet matemaattiset menetelmät Tallennus Esim. MapReduce(HADOOP) Esim. NoSQL tietokannat JOTU 2015 / Kari Systä 61

Luentoaikataulusta 24.08.2015 Kurssin esittely, johdanto ohjelmistotuotantoon 01.09.2015 Erilaisista ohjelmistoista ja niiden ominaisuuksista; johdantoa vaatimuksiin; ensitietoa harjoitustyöstä. 08.09.2015 Vaatimusmäärittelyt ja käyttötapaukset. Vaatimukset osa 2: tiedon mallintaminen. 21.09.2015 Käytettävyys ja käyttökokemus. Kati Kuusinen 28.09.2015 05.10.2015 Tuotantoprosesseista ja elinkaarimalleista, sekä mitä asiakkaan on niistä ymmärrettävä. Ehkä vierailuluento tai piirtelynotaatioista tai asiakasroolista JOTU 2015 / Kari Systä 62