WWW-ohjelmointi ANTTI SAND TIETA12

Koko: px
Aloita esitys sivulta:

Download "WWW-ohjelmointi ANTTI SAND TIETA12"

Transkriptio

1 WWW-ohjelmointi ANTTI SAND TIETA12

2 2 MVC Model, View, Controller

3 Model, View, Controller 3 Yleisesti käytetty malli ohjelman rakenteelle Kullakin osalla on melko hyvin rajattu vastuunsa Ohjaa suunnittelua kohti SRP:tä Myös useita variaatioita, MV*, MVMC Ei täydellinen malli WWW-ohjelmointiin (kuka vastaa esim. Headereista??), mutta varmasti yleisin

4 Model, View, Controller 4 Model Controller Selain View

5 Controller - työnjohtaja 5 Käskyttää tietomallia Vaatii olioinstanssin tai instanssikokoelman, käskee päivittämään tietonsa, käskee poistamaan itsensä Käskyttää näkymää Vaatii halutun näkymän ja tarjoilee sille halutut tiedot Vastaa logiikasta korkealla tasolla, ei ota kantaa käytännön toteutukseen On agnostinen sen suhteen, miten data tallennetaan tai esitetään Pitäisi nopealla vilkaisulla kuvata ohjelman toiminta Skinny controllers, fat models Tosin fat models voi johtaa jumalobjekteihin (yleensä käyttäjätietomalli saa liikaa vastuita, koska useimmat toiminnot liittyvät käyttäjään)

6 Model - tietomalli 6 Esimerkin Task luokka Kontrolleri käskee tietomalliluokan tehdä jotain, tietomalliluokka vastaa tavasta, jolla se tehdään Ei tiedä, mitä ohjelmalla tehdään Ei tiedä, miten data esitetään käyttäjälle

7 View 7 Näkymä vastaa vain tiedon esittämisestä näytöllä Saa kontrollerilta tietoa tietomalliluokasta ja esittää sen haluamallaan tavalla Ei ohjaa ohjelman suoritusta, mutta tarjoaa käyttöliittymän toiminnoille Ei ole täysin aivoton, voi esimerkiksi näyttää tietoja ehdollisesti Näytetään uloskirjautumislinkki, jos käyttäjä on kirjautuneena sisään Kutsutaan apufunktiota, joka palauttaa halutun tekstin asetetulla kielellä

8 Vastuualueet 8 Task luokka ei palauta HTML merkattua tehtävälistaa (ul>li>task->desc) Tämä on näkymän vastuualue. Task luokan kannalta on merkityksetöntä, tuleeko tiedot selainikkunaan vai komentoriville vai Excel taulukkoon Kontrolleri ei suorita SQL komentoja Tämä on tietomallin vastuualue. Kontrollerin kannalta on merkityksetöntä, onko taustalla SQL tietokanta, vai nosql kanta, vai rajapinta, vai mitään Näkymä ei tee suorituksen kannalta merkittäviä päätöksiä Nämä ovat kontrollerin vastuulla. Kontrolleria vilkaisemalla pitää saada oikea kuva sovelluksen toimintoketjusta Valitettavasti, nämä ovat ideaaleja, joita rikotaan.

9 CLEAN arkkitehtuuri 9 Enterprise business rules Task luokka sisältää tehtävälistan yhden tehtävän kuvauksen Application business rules Tehtävälistan tehtäviä voidaan lisätä ja poistaa Interface adapters Tietomalliluokka pystyy tallentamaan tietonsa johonkin tietovarantoon Framework PDO luokka tarjoaa mahdollisuuden tallentaa tietoa SQL kantaan, kun reitityskomponentti vastaanottaa tietyn pyynnön

10 Model - tietomalliluokka 10

11 Interface -kerros 11 Enterprise luokan tiedot tulisi voida varastoida tietokantaan Luokan ei tule kuitenkaan itse ottaa kantaa siihen, miten tiedot varastoidaan (tai varastoidaanko niitä) Application business rules kuitenkin vaatii, että meidän on saatava lista olioinstansseista Voidaan lisätä tiedon varastointikerros joko erillisen Entity manager rajapinnan kautta, tai periyttämällä varastointitoteutus Entity manager rajapinta tarjoaa paremman segrekaation (kontrolleri pyytää rajapinnan toteuttavalta luokalta kokoelman olioinstansseja) Toinen vaihtoehto on Active record malli, jossa Enterprise luokka saa varastointikyvyn yläluokalta (kontrolleri käskee tietomalliluokkaa palauttamaan instanssikokoelman)

12 Tavoitetila 12 Task::create($data) luodaan uusi olioinstanssi samalla tallentaen sen tiedot tietovarantoon Task::all() palauttaa tietovarannosta olioinstanssit Task::find($id) palauttaa tietovarannosta olioinstanssin Task::delete($id) poistaa tietovarannosta olioinstanssin $task->save() tallentaa tämän instanssin tiedot $task->update($data) päivittää tämän instanssin tiedot $task->destroy() poistaa tämän instanssin tiedot API säilyy luettavana ja on nopeasti ymmärrettävissä Active record implementaatiossa Entity manager -implementaatiossa ei työskennellä luokan kanssa, vaan esimerkiksi $manager->create( task, $data), $manager->all( task )

13 Tietomalliluokan toiminnan esimerkki 13 Halutaan, että tietomalliluokka hallitsee datan käsittelyn tietokannassa Esimerkiksi Task luokka sisältäisi mahdollisuuden Task::all() ja Task::find($id) Meillä ei ole luokan instanssia, koska luokan metodin tulisi palauttaa luokan instanssi tai kokoelma luokan instansseja Kirjoitetaan staattiset metodit Tietomalliluokkia tulisi kuitenkin olla yksi jokaiselle tietomallille Task, User, BlogPost, Comment, Miten jaetaan perustoiminnallisuus kaikille kirjoittamatta sitä uudelleen jokaiseen luokkaan?

14 Abstrakti luokka ja 14 periminen Abstrakti luokka on abstrakti Siitä ei voida luoda luokan instanssia Se voi kuitenkin sisältää toiminnallisuutta, jota voidaan perimisen kautta jakaa aliluokille Voidaan siis toteuttaa all ja find metodit staattisina abstraktiin luokkaan ja käyttää niitä sitten kaikissa abstraktin luokan perivissä luokissa

15 Tietomalliluokka perii geneerisen Model -luokan 15 Task luokka perii Model luokan ja saa käyttöönsä all() ja find() metodit Voidaan kirjoittaa Task::all() ja Task::find($id)

16 Muuttujien asettaminen 16 Model vastaa tietokannan kanssa keskustelusta. Se ei kuitenkaan tiedä esimerkiksi mistä tietokantataulusta kunkin luokan tiedot löytyvät Kukin tietomalliluokka voi haluta määritellä kohdalleen ainakin tietokantataulun nimen ja pääavaimen nimen Jos pääavain ei olekaan aina id, vaan vaikkapa OP_NRO, halutaan antaa mahdollisuus sen vaihtamiseen Voitaisiin kirjoittaa muuttujat jokaiseen tietomalliluokkaan, mutta mitä jos niitä ei aina muista kirjoittaa? Pääavaimelle voidaan antaa luonteva default arvo (id), mutta tietokantataulun nimelle ei ole mitään järkevää default arvoa.

17 $this, self ja static 17 $this viittaa olion instanssiin Jos meillä on Task luokan instanssi, sen sisällä voidaan viitata itseen termillä $this Self viittaa itse luokkaan Jos Model luokassa sanotaan self, se viittaa itse Model luokkaan. Eli Model luokan staattisia metodeja voidaan kutsua self::staticmethod() Static viittaa itse luokkaan Jos Model luokassa sanotaan static se viittaa kutsuvaan luokkaan. Eli Task luokka voi käyttää Model luokan perittyjä muuttujia static::$staticvar Static voidaan siis sitoa ajoaikana, kun taas self viittaa aina kyseiseen luokkaan

18 Esimerkki self ja 18 static Koska viittauksena on self, se kutsuu aina yläluokan getmodel metodia Jos viittauksen muuttaa muotoon static, se sidotaan vasta ajoaikana ja se kutsuisi aliluokan getmodel - metodia TIETA A.S.

19 Lisätään pääavain muuttujaksi Model - luokkaan 19 TIETA A.S.

20 Pääavain on nyt muutettavissa 20 Jos Task luokka ei määritä pääavainta $primarykey muuttujaan, käytetään Model luokan $primarykey muuttujaa Eli pääavain on id, jos muuta ei määritetä Mutta se voidaan tietomalliluokkakohtaisesti muuttaa toiseksi, jos tarvitaan Tämä kelpaa, koska muuttujalle oli löydettävissä järkevä default arvo (id) Mutta tietokantataulun nimelle ei ole järkevää default arvoa

21 Convention over configuration 21 Sovitaan, että jos tietokantataululle ei anneta nimeä, käytetään käytäntöä, jossa tietokantataulun nimi päätellään tietomalliluokan nimestä Halutaan kuitenkin jättää mahdollisuus poiketa tästä käytännöstä antamalla eksplisiittisesti tietokantataulun nimi tietomalliluokassa Luokan nimi Task User Comment Taulun nimi tasks users comments

22 Taulun nimen määrittäminen 22 Jotta tämä toimisi, meidän tulee tietää kutsuvan tietomalliluokan nimi ajoaikana Jos tietomalliluokka määrittää tietokantataulun nimen, käytetään sitä Jos ei määritä, määritellään tietokantataulun nimi kutsuvan luokan nimestä Kutsuvan luokan nimeä ei tiedetä ennen kuin ohjelmaa suoritetaan

23 Taulun nimen määrittäminen 23

24 Get_called_class() 24 Get_called_class() funktio palauttaa kutsuneen luokan nimen Lcfirst() muuta ensimmäinen kirjain pieneksi kirjaimeksi Get_called_class() late static binding Sidotaan myöhäisessä vaiheessa, joten palauttaa sen luokan, joka kutsun teki Tässä tapauksessa siis Task -> task Voitaisiin kirjoittaa myös CLASS - avainsanalla p5.late-static-bindings.php

25 Ylikirjoitetaan 25

26 Taulun nimi 26 Taulun nimi on nyt ylikirjoitettavissa jos halutaan, mutta sitä ei ole pakko antaa, jos noudatetaan sovittua käytäntöä

27 Lisätään luokka tietokantahakuihin 27

28 Model luokan all() ja find() 28 Tietomalliluokat voivat vastata omien tietojensa hakemisesta Ja haetut tiedot palautetaan kutsuvan luokan instansseina Luokan metodit käytettävissä palautetuissa tuloksissa $asclass

29 Implode() ja explode() 29 Taulukosta merkkijonoksi ja merkkijonosta taulukoksi $names = [ John, Jeff ]; Echo implode(,, $names); // John, Jeff $names = John, Jeff ; Var_dump(explode(,, $names)); //[0] => John, [1] => Jeff

30 30 Määritetään valittavat kentät haussa SELECT * palauttaa kaikki kentät Lisätään mahdollisuus määrittää haettavat kentät Lisätään optionaalinen parametri $fields Model luokan hakumetodiin Jos $fields annettiin, käytetään sitä haussa, Muuten käytetään SELECT * TIETA A.S. $selectfields on tarpeeton muuttuja, joita tulisi välttää. Tässä vain helpottamassa koodin ymmärrettävyyttä.

31 Uuden rivin lisääminen tietokantaan 31 Tietomalliluokan olisi hyvä voida myös luoda uusi rivi tietokantaan Halutaan käyttää samaa käytäntöä: Task::create( ) Model luokkaan uusi staattinen metodi, joka ottaa parametrina assosiatiivisen taulukon

32 Luontimetodi 32 Tässä kohtaa monia mahdollisia poikkeuksia, joihin ei nyt varauduta Todellisuudessa ongelma on kompleksinen ja kannattaisi hyödyntää kypsempää ohjelmointikehystä Mutta esimerkin vuoksi pieni, toimiva toteutus

33 33 Poistometodi Rivin poistaminen tietokannasta voidaan toteuttaa staattisella metodilla Model luokassa Metodi saa parametrinaan tietueen tunnisteen Task::delete(5); TIETA A.S.

34 34 Instanssin poistaminen Voidaan haluta poistaa myös tietty instanssi Meillä on Task luokan instanssi, joka halutaan poistaa Muuten vastaava, mutta ei staattinen metodi Ja tunniste saadaan instanssin muuttujasta $this->id TIETA A.S.

35 Instanssin poistaminen 35 Jos meillä on jo luokan instanssi, voidaan käskeä instanssia poistamaan itsensä tietokannasta Huom! Itse luokan instanssi on edelleen käytössä, vaikka sitä ei enää ole tietokannassa Voitaisiin jatkaa edelleen luomalla instanssin tallennusmetodi $task->save() TIETA A.S.

36 Päivitysmetodi 36 Voi olla staattinen, mutta kuten poistometodissakin voisi olla järkevämpää toteuttaa instanssin metodina, koska liittyy käsiteltävään instanssiin Tällöin kuitenkin pitää mapata olion muuttujat tietokantataulun sarakkeisiin Koska tietomalliluokassa on (voi olla) toiminnallisuutta, johon voi liittyä omia muuttujia, joita ei ole tietokantataulussa, voitaisiin sopia, että olion julkiset muuttujat ovat ne, jotka halutaan mapata tietokantaan Jotta voitaisiin ajoaikana selvittää, mitä julkisia muuttujia luokalla on, meidän tulisi käyttää reflektiota (new ReflectionObject($this)) ->getproperties(reflectionproperty::is_public);

37 Päivitysmetodi 37 Tämä menisi kuitenkin paljon syvemmälle, kuin tässä kohtaa on järkevää, joten todettakoon, että ratkaisuja on useita Voidaan määrittää luokan muuttujaan mitä kenttiä tulisi tallentaa tietokantaan Tämä vaatisi kuitenkin aina sen tiedon lisäämisen jokaiseen tietomalliluokkaan Tai voidaan sopia, että julkiset muuttujat tallennetaan ja käyttää reflektiota niiden selvittämiseen Tai voidaan sopia, että päivitysmetodi on vain staattinen Tiedon mappaaminen tietokantaan on yleinen ongelma ja valmiita, hyviä, toteutuksia on saatavilla. On hyvä tietää, miten jokin ongelma ratkaistaisiin, mutta aina ei kannata toteuttaa kaikkea uudestaan Koska ongelmakenttä on yllättävän kompleksinen

38 Staattinen päivitysmetodi 38

39 Tietomalliluokka vs. Repository pattern 39 Riippuen koulukunnasta tiedon tallentaminen (persistance) voidaan asettaa tietomalliluokan taakse, tai toteuttaen puhtaampaa repository patternia (Entity manager) Jokaiselle tietomallille voidaan luoda esimerkiksi UsersRepository, joka toteuttaa RepositoryInterface -rajapintaa, joka puolestaan tarjoaa metodit luomiselle, noutamiselle, tallentamiselle, Näin tietomalliluokka ei vastaisi keskustelusta tietokannan kanssa, vaan määrittäisi vain tietomallin metodit ja muuttujat, joita business logiikka tarvitsee Voidaan argumentoida, että tietomalliluokka rikkoo SRP:tä, jos se tarjoaa luokkaan liittyviä metodeja $user->getfullname() ja tiedon tallennuksen $user->save() Toinen ajattelutapa on kerroksittainen rakenne. Model luokka tarjoaa persistance layerin, siitä peritty User luokka tarjoaa business logic kerroksen. User -luokka on silloin Domain Model ja Model luokka on Domain Service

40 CLEAN -arkkitehtuuri 40 Tavoite molemmissa on eriyttää riippuvuudet sovelluksen kerroksiin Entities kerros sisältää pelkkiä objekteja, jotka eivät riipu mistään ulkopuolisesta. Tämä on business logiikka se toiminnallisuus, jolla ongelma ratkaistaan Business logiikka ei riipu käytetystä ohjelmistokehyksestä, tietokannasta, ympäristöstä, Ulommat kerrokset tuovat riippuvuuksia, mutta niiden pitää olla vaihdettavissa Esimerkiksi UI ei liity ohjelman toimintaan. Sama ohjelma voi tuottaa tietoa verkkosivulle tai REST rajapinnan tai Excel tiedoston,

41 Yksinkertainen reititys ja kontrollerit 41

42 Perinteinen sivusto 42 Perinteisesti WWW-sivut ovat koostuneet toisiinsa linkatuista html sivuista Index, About me, Contact me Index.html, about.html, contact.html Modernimmissa ohjelmissa meillä on yleensä vain yksi päätiedosto front controller, joka koostaa palautettavan näkymän Aiemmin jaoimme sivun kolmeen osaan (header, main content ja footer) FC tulkitsee pyynnön (index.php?page=about), päivittää main content alueen sisällön ja palauttaa koostetun sivun

43 Yksinkertainen reititys 43 Tarkistetaan jokin parametri ja ohjataan sen mukaan oikealle sivulle Index.php?page=about TIETA A.S.

44 .htaccess 44 Yleensä ei kuitenkaan käytetä muotoa Tavallisempi muoto olisi WWW-palvelin voidaan määrätä uudelleenohjaamaan pyynnöt.htaccess tiedostolla Selaimen kannalta osoite näyttäisi olevan /about/, mutta taustalla se ohjataan vaikka /index.php/about tai /index.php?page=about Avaimena siis about tai avain-arvo parina page=about Käytännön toteutus vapaavalintainen, molemmissa annetaan parametrina tietoa front controllerille TIETA A.S.

45 Apache vs. NginX 45 Koulun koneilla Apache, joten pyyntöjen uudelleenohjaaminen.htaccess tiedostolla NginX käyttää Virtual server määrittelyissään try files määrettä Homestead käyttää NginX www-palvelinohjelmaa, joten oletuksena se tarjoaa PHP tiedostoille palvelinpään reititystä

46 Käytäntöjä 46 Useimmiten framework olettaa rakenteeksi Controller Method Parameters Eli esimerkiksi index.php?controller=pages&method=index&.htaccess tiedosto voi ohjata /pages/listitems/desc=true Toisaalta.htaccess voi mapata jokaisen reitin RewriteRule ^pages/listitems$ index.php?controller=pages&method=listitems Yleensä tämä vastuu halutaan kuitenkin ohjelmalle, joten.htaccess vain kätkee front controllerin Rakenne ja toteutustapa on kuitenkin kehittäjän päätettävissä

47 Halutun reitin tulkitseminen 47 Otetaan esimerkiksi /index.php/about Ensimmäinen parametri on siis halutun sivun nimi Sen perässä voisi olla muutakin tietoa (/index.php/tasks/7, /index.php/tasks/showcompleted=true), mutta pidetään reititin tässä kohtaa yksinkertaisena ja ohjataan vain ensimmäisen parametrin mukaan

48 Controllers 48 Luodaan kaksi kontrolleria omaan hakemistoonsa Yksi etusivun näyttämiselle ja toinen kaikkien taskien hakemiselle

49 Reitittimen 49 refaktorointi Lisätään yksinkerainen tiedosto reittien määrittämiselle Assosiatiivinen taulukko, jossa kutsuttu polku vastaa haluttua kontrolleria

50 Core/Router 50 Router luokka lataa reitit omaan taulukkoonsa Kun reitittimelle annetaan polku, se palauttaa polkuun liitetyn ladattavan tiedoston nimen Instanssi mahdollistaa ketjutuksen

51 Reitittäminen 51 Bootstrap.php lataa reitit tiedostosta, alustaa reitittimen, antaa reitittimelle pyydetyn polun ja lataa tiedoston, jonka reititin palauttaa

52 Kontrolleri 52 Nyt jokainen looginen osio voidaan jakaa oman kontrollerinsa taakse ja koodi on paremmin rakenteistettu Kukin kontrolleri on kuitenkin vain pätkä koodia ilman rakennetta Oikea kontrolleri koostuisi metodeista, jotka liittyvät tiettyyn resurssiin Tätä varten pitäisi selvittää haluttu metodi halutun kontrollerin sisällä

53 Resurssikontrolleri 53 Yksi resurssikontrolleri toteuttaisi ainakin nämä 7 metodia Kutsut voisivat tulla selaimelta GET ja POST pyynnöillä Ja sovelluksilta GET, POST, PUT/PATCH, DELETE

54 Hyödyllistä luettavaa 54 Mikä on Active Recordin ja Data Mapperin ero?

55 Kysymyksiä? 55

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

WWW-ohjelmointi ANTTI SAND TIETA12

WWW-ohjelmointi ANTTI SAND TIETA12 WWW-ohjelmointi ANTTI SAND TIETA12 Namespaces 2 Namespaces 3 No man is an island Haluamme hyödyntää muiden kirjoittamia komponentteja Mutta tähän asti kaikki luokkamme sijaitsevat globaalissa nimiavaruudessa

Lisätiedot

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri Arkkitehtuuri Termieditorin käyttö vaatii kirjautumisen. Peruskäyttäjälle myönnetään erikseen aineistokohtaisia luku- ja muokkausoikeuksia. Järjestelmän ylläpitäjä (admin) saa ylläpitää kaikkia aineistoja.

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

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

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä 2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012 Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

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

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti

Lisätiedot

Nebula pilvi 9.0 saatavuusalueiden välinen verkkoliikenne

Nebula pilvi 9.0 saatavuusalueiden välinen verkkoliikenne Nebula pilvi 9.0 saatavuusalueiden välinen verkkoliikenne Sivu 2/9 1. Sisällysluettelo 2. Esipuhe 3 2.1. Saatavuusalueet 3 2.1.1. Taustaverkko missä instanssit ovat suoraan fyysisellä liitännällä kiinni

Lisätiedot

Ohjelmistotuotanto. Luento 9 23.4.2012

Ohjelmistotuotanto. Luento 9 23.4.2012 Ohjelmistotuotanto Luento 9 23.4.2012 Lisää suunnittelumalleja Olion rikastaminen dekoraattorilla Joskus eteen tulee tarve lisätä olioon jotain ekstraominaisuuksia, pitäen kuitenkin olio sellaisena että

Lisätiedot

Testivetoinen ohjelmistokehitys

Testivetoinen ohjelmistokehitys Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi

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

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGIS-ohjelmistossa

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGIS-ohjelmistossa 1 (7) Tilastokeskuksen rajapintapalveluiden käyttöönotto QGIS-ohjelmistossa ita laadittaessa on käytetty QGIS:n versiota 2.14.3. Ruudunkaappauskuvat ovat englanninkielisestä versiosta, mutta ohjeissa esitetään

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Informaatiotekniikan kehitysyksikkö

Informaatiotekniikan kehitysyksikkö SAVONIA Savonia RPM Käyttöopas Informaatiotekniikan kehitysyksikkö 18.8.2011 Sisällysluettelo 1. Perusnäkymä... 3 2. Kirjautuminen... 4 3. Rekisteröinti... 5 4. Idean jättäminen... 6 4. Arviointi... 8

Lisätiedot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen FiSMA 1.1 Monikerrosarkkitehtuuri 1 (7) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen

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

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript) Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript) Kurssin toisessa harjoitustyössä tutustutaan verkkosivujen toiminnallisuuden toteuttamiseen JavaScript:n avulla. Lisäksi käydään läpi verkkosivuston

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia

Lisätiedot

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03. EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

Lisätiedot

Julkisen rajapinnan testausohje Swaggerin kautta

Julkisen rajapinnan testausohje Swaggerin kautta Julkisen rajapinnan testausohje Swaggerin kautta Yllä esimerkkikuva Hankeikkunan julkisen rajapinnan dokumentoivasta Swagger-näkymästä. Swagger tarjoaa kevyen selainkäyttöliittymän jonka kautta rajapinnan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita. Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

Lisätiedot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen FiSMA 1.1 Monikerrosarkkitehtuuri 1 (6) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Hallintaliittymän käyttöohje

Hallintaliittymän käyttöohje Hallintaliittymän käyttöohje 1. Yleisiä huomioita Hallintaliittymän käyttöä helpottavia yleisiä huomioita: - Käytä listanäkymien hakukentissä kentän vieressä olevaa hakunappia, älä enter-näppäintä. - Älä

Lisätiedot

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014 Tietokanta Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia ja linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat

Lisätiedot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

Lisätiedot

INTINU13A6 Java sovellukset

INTINU13A6 Java sovellukset Johdanto Kurssin tavoitteena oli luoda tietokantaa käyttävä websovellus Java EE ohjelmointikielellä, sekä hyödyntää muun muassa servlettejä sekä JSP sivuja ja muita tekniikoita monipuolisesti. Webserverinä

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite

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

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC) LTC-Otso Myyjän työkalu (POC) Toimintaympäristön kuvaus 21 toukokuu, 2015 Sisältö 1 Johdanto... 3 1.1 Dokumentin tavoite... 3 1.2 Dokumentin yleiskuvaus... 3 2 Järjestelmälle asetetut vaatimukset... 3

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä, kevät

Ohjelmoinnin peruskurssien laaja oppimäärä, kevät Ohjelmoinnin peruskurssien laaja oppimäärä, kevät Luento 2: Ohjelman suunnittelua, miten oliot toimivat Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 21. 1. 2013 Sisältö 1 Suunnittelua:

Lisätiedot

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja

Lisätiedot

Tiedonsiirto- ja rajapintastandardit

Tiedonsiirto- ja rajapintastandardit Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

9 Edistynyt PHP-ohjelmointi

9 Edistynyt PHP-ohjelmointi 9 Edistynyt PHP-ohjelmointi Luentokerran tavoitteena on käydä läpi joukko sellaisia PHP-sovelluksen toteuttamiseen liittyviä tekijöitä, joiden avulla voidaan parantaa verkkopalvelun totetustyön tuottavuutta

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 1 WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 10.4.2015 Lounea Oy Tehdaskatu 6, 24100 Salo Puh. 029 707 00 Y-tunnus 0139471-8 www.lounea.fi Asiakaspalvelu 0800 303 00 Yrityspalvelu 0800 303 01 Myymälät 0800 303

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

Projektinhallintaa paikkatiedon avulla

Projektinhallintaa paikkatiedon avulla Projektinhallintaa paikkatiedon avulla Tampereen Teknillinen Yliopisto / Porin laitos Teemu Kumpumäki teemu.kumpumaki@tut.fi 25.6.2015 1 Paikkatieto ja projektinhallinta Paikkatiedon käyttäminen projektinhallinnassa

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

<e.g. must, essential, conditional>

<e.g. must, essential, conditional> Käyttötapaukset Kurssin malli käyttötapauksille: Tila < List of users and the other systems that interacts directly with a system>

Lisätiedot

Aimo-ohjauspaneelin käyttöohje Sisällys

Aimo-ohjauspaneelin käyttöohje Sisällys Aimo-ohjauspaneelin käyttöohje Sisällys Tunnusten tilaaminen... 2 Sisäänkirjautuminen... 3 Käyttöliittymä... 4 Ryhmätekstiviestien lähettäminen... 5 Ryhmät... 7 Push-viestien lähettäminen... 12 Mobiilipalvelun

Lisätiedot

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

Selvitysraportti. MySQL serverin asennus Windows ympäristöön Selvitysraportti MySQL serverin asennus Windows ympäristöön IIO30200 / Jouni Huotari Arto Sorsa / F3900 CREATIVE COMMONS LISENSOITU http://creativecommons.org/licenses/by-nc-sa/1.0/fi/ 26.4.2010 1 SISÄLTÖ

Lisätiedot

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Graafisen käyttöliittymän ohjelmointi Syksy 2013 TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 9 Qt model/view Juha-Matti Vanhatupa Sisältö Qt:n MV mallin osat Mallin ja näkymän välinen kommunikointi

Lisätiedot

Taustaa. CGI-ohjelmointi

Taustaa. CGI-ohjelmointi Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Visma Business AddOn Tositteiden tuonti. Käsikirja

Visma Business AddOn Tositteiden tuonti. Käsikirja Visma Business AddOn Tositteiden tuonti Käsikirja Oppaan päiväys: 10.2.2012. Asiakaspalvelu: Helpdesk: www.visma.fi Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen Object Framework - One OF-1 is a high-productive Multi-UI OpenEdge data driven development framework Veli-Matti Korhonen Aiheet OF-1 esittely Mitä ominaisuuksia saa ilman ohjelmointia Miten ohjelmoidaan

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus

Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat...2 2. Käyttötapaukset...2

Lisätiedot

T Henkilökohtainen harjoitus: FASTAXON

T Henkilökohtainen harjoitus: FASTAXON T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link TimeEdit on työjärjestys- (lukujärjestys) ja tilanvarausohjelmisto. Sisältö 1 Oikeudet... 2 2 TimeEdit Web... 2 3 Kirjautuminen...

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot