TIE Ohjelmistojen suunnittelu

Koko: px
Aloita esitys sivulta:

Download "TIE-20200 Ohjelmistojen suunnittelu"

Transkriptio

1 TIE Ohjelmistojen suunnittelu Luento 6: MVC:t ja kumppanit Samuel Lahtinen TIE Samuel Lahtinen 1

2 Ajankohtaista Harjoitustyö Versiohallinnan salasanat jne. lähetetty, ota yhteyttä, jos on kadoksissa Viikkoharjoituksissa Magic Draw & piirtelyjutut ja käyttöliittymäpuolta Widget-näkökulmasta

3 Ohjelmassa tänään Dependency injection MVC, MVVM, MVP, MV, jne.

4 Jotain yleisiä periaatteita Tällä kurssilla käydään läpi tekniikoita, joiden avulla vähän isompien ohjelmien suunnittelu, toteutus ja hallinta onnistuu paremmin Suunnittelun tulee olla tarkoituksenmukaista, turha geneerisyyden lisääminen ja epäoleellisuuksien kanssa nysvääminen pois jos tavoitteena on tehdä nopeasti kertakäyttöistä Kohdeympäristö, työkuorman jakaminen, jatkokehitys, ylläpito tuovat mukaan suunnittelutarvetta Tarkoituksenmukaisuus: ohjelma jolla voi etsiä tiedostoista avainsanoja Toteutus puhtaalla c++:lla ja jollain käyttöliittymäkirjastolla tuskaista Skriptikieli, komentoriviskripti, pari riviä (GUI wrapperin kera vähän enemmän)

5 Tietojen sitominen, käyttöliittymät Yleinen käyttöliittymäkirjastojen yms. kanssa Ideana sitoa käyttöliittymässä näkyvä/esitettävä asia ohjelmakoodin arvoihin, propertyihin tai toimintoihin Sen sijaan että esim. tekstikentän arvoa muutetaan koodissa kutsumalla esim. tekstikenttäolion palveluita, kerrotaan että tekstikentän arvo on sidottu esim. merkkijonomuuttujan/propertyn arvoon jos tekstikentän arvoa muutetaan, muuttuu arvo koodissa. Jos arvo koodin puolella muuttuu, muuttuu arvo käyttöliittymässä. Sidonta mahdollista myös käyttöliittymäelementtien välillä, esim. taulukon koko sidotaan merkkijonoon tai elementin sijainti toiseen elementtiin.

6 Käyttöliittymäpuoli ja tietojen Property-jutut vielä sidontaesimerkki, C#-versiona TIE Samuel Lahtinen

7 Dependency injection, riippuvuuksien syöttö Riippuvuuksien syöttö, ideana tarjota luokalle riippuvuudet rajapintojen kautta Perinteinen lähestymistapa, luokka nimeltään Palvelu ja sen käyttäjä PalvelunTarvitsija. Esimerkki: Luodaan Palvelun instanssi PalvelunKäyttäjän rakentajassa, käytetään jne. Suora riippuvuus tiettyyn toteutukseen, ei pelkästään rajapintaan Jos halutaan vaihtaa toteutus, pitää koskea myös PalvelunKäyttäjään Dependency injection: annetaan rajapintaan viite tai osoitin, esim. Luokan rakentajassa, käytetään sitä käyttäjäluokassa. Rajapinta ja sen toteutus erikseen, helpottaa ylläpitoa, laajentamista jne. Päästään ongelmasta, jossa luokka tulee automaattisesti riippuvaiseksi tietystä toteutuksesta (luonti jne.). Voidaan käyttää aliluokkia jne. Voidaan vaihtaa käytettävää toteutusta kesken ajon

8 Mihin ideaa voisi käyttää? TIE Samuel Lahtinen

9 Dependency injection ja C++ Jos käytetään osoittimia, C++:n kanssa voi tulla ongelmia (ei roskienkeruuta). Kuka vastaa tuhoamisesta? Kenen pitää kutsua deleteä jne. Fiksuilla osoittimilla pääsee isosta osasta näitä ongelmia (+samalla tulee dokumentoitua omistussuhteiden toimintaa) Dependency injectionia varten olemassa myös kirjastoja, joissa riippuvuuksien asettaminen tapahtuu kirjaston oman koodin kera. Osassa kirjastoista koodia tuotetaan tai riippuvuuksia voidaan asettaa asetustiedostoilla jne. ohjelman toimintaa voi muokata ilman kääntämistä (yksi esimerkki:https://code.google.com/p/wallaroo/) Javalle & C#:lle helpompaa, joten parempia/valmiimpia kirjastojakin enemmän Yksi mahdollisuus elinajan hallintaan, template ja omistajaluokka, jonka käyttäjäluokka perii ( perittyä luokkaa luodessa kerrotaan, mitä toteutusta käytetään)

10 Tarkkailija TIE Samuel Lahtinen

11 Mistä tarkkailija tuttu Qt:n käyttäjille? TIE Samuel Lahtinen

12 Tarkkailija Määrittelee olioiden välille yksi moneen riippuvuuden siten, että kun yhden olion tila muuttuu, siitä riippuvat oliot saavat ilmoituksen Toteutustapoja: QT Signaalien ja Slotien avulla.net eventtien avulla Java Rajapintojen avulla Observer, Observable/Subject

13 Qt-signal-slot-esimerkki TIE Samuel Lahtinen

14 MVC Model View Controller Tunnetuin jne. Suunnittelumalli käyttöliittymän ja ohjelman muiden osien erittelyyn toisistaan. Erilaisia toteutustapoja yksityiskohtaeroin löytyy kasapäin, erilaisia ohjeita toteuttamiseen samoin Ideana ohjelma (tai ohjelmakomponentti) koostuu kolmesta osasta, joilla jokaisella oma tehtävänsä View-Näkymä: esittää tiedot käyttäjälle Controller-kontrolleri: käsittelee käyttäjän syötteet Model-Malli: huolehtii tiedon hallinnasta/käsittelystä

15 MVC Model View Controller Selitysosa 2. View: sisältää käyttöliittymäkomponentit, kutsuu kontrollerin tarjoamia palveluita liittämään käyttöliittymässä näkyvät asiat ohjelman varsinaisiin toimintoihin, esittää mallilta saamiaan tietoja Controller: tarjoaa näkymälle rajapinnan, käyttää mallia toteuttamaan tarjoamansa toiminnot, muuttaa Model: sisältää ohjelman varsinaisen pihvin ( business logic ) ja talletettavat tiedot. Ei ole vain passiivinen tietovarasto. Tarjoaa näkymällä tietoja näkymän kannalta esitettävässä muodossa. Sovellusalueet ja käyttökohteet vaihtelevat, Perinteiset työpöytäohjelmat Ohjelmistokehykset, arkkitehtuurit Web-sovellukset, sivusto-palvelinsuhteet

16 Tyypillinen MVC:n osien välinen kommunikaatio päivittää Model Muuntaa, manipuloi View Controller näkee käyttää

17 Toteutustapoja, osa 1 Malli on passiivinen, tekee jotain vain jos näkymä tai kontrolleri kutsuvat sen palveluita Esim. Käyttäjä klikkaa nappulaa, tapahtuma ohjataan kontrolleriin, siellä kutsutaan mallista palvelua. Kun suoritus palaa takaisin kontrolleri kertoo näkymälle päivityskehotuksen. Näkymä pyytää mallista tarvitsemansa tiedot. Yksinkertainen toteutus erityisesti mallin toteuttamisen kannalta

18 Toteutustapoja, osa 2 Puoliaktiivinen malli (Pull MVC) Malli kertoo kiinnostuneille näkymille, että sen tila on muuttunut. Näkymä kysyy mallilta muuttuneen tiedon/tiedot ja päivittää käyttöliittymän (Observer-pattern ja tapahtumien kuuntelu/seuranta) Näkymä voi tarvittaessa optimoida päivitystä Mahdollistaa myös mallin suunnalta tulevat tapahtumat ja mallin puolella tehtävät pidemmät laskennat (joiden valmistumisesta voi ilmoitella)

19 Toteutustapoja, osa 3 Aktiivinen malli, (Push MVC) Malli kertoo kiinnostuneille muuttuneen tiedon suoraan kutsumalla palvelua, jonka avulla välittää tiedon. Näkymä päivittää käyttöliittymän tietojen mukaiseksi Missä muodossa ja minkäkokoisia tietomääriä voidaan siirtää?

20 Yleisiä huomioita MVC:stä Voidaan käyttää useita eri näkymiä Käyttöliittymä helposti päivitettävissä kun vaatimukset jne. muuttuvat Monimutkaistaa ohjelman rakennetta, lisää koodia Jatkuvat muutokset malliin ja suorituskyky, näkymät voivat mennä juntturaan jos mallista pusketaan päivityksiä jatkuvalla syötöllä Passiivinen malli, sovellukset, joissa tapahtuu vain käyttäjän toiminen seurauksena Aktiivisemmat mallit, mallin puolella omaa toimintaa. Esim. tiedot päivittyvät muiden käyttäjien tai tekoälyn toimesta, raskaampi laskenta, nettiyhteys ja tietojen päivittäminen, pelit

21 Qt:n oma lähestymistapa Qt sisältää joukon komponentteja, jotka käyttävät Model/View arkkitehtuuria hoitamaan tietoa ja sen visualisointia Control-osa integroitu näkymään Lähinnä tekniikka, jolla taulukoita, kokoelmia jne. ja niihin liittyvää tietoa saa visualisoitua, järjesteltyä yms.

22 QML ja delegaatit sun muut QML ja C++:n yhdistäminen, tästä kuulemme myöhemmin

23 MVP, MVC-variantit, osa 1 Model-View-Presenter View: näyttää tiedot käyttäjälle, ohjaa käyttäjän tekemät komennot/toimet presenterille Presenter: toimii näkymän ja mallin välissä, noutaa tietoja mallista, muokkaa näkymälle sopivaksi, käsittelee käyttäjän komennot ja muokkaa mallia. Sisältää varsinaisen sovelluslogiikan Model: tarjoaa rajapinnan tiedolle ja sen käsittelylle (+sisältää tiedot jne)

24 MVC-variantit, osa 2: Model-View-View-Model Microsoftin kehittelemä arkkitehtuuripattern.net ympäristöön Yleisidea: käyttöliittymä (XAML, peruskoodi) jossa käyttöliittymäelementit sidotaan näkymämallin tietoihin Varsinainen malli sisältää lasketantatoiminnallisuuden jne. Näkymämalli välissä toimii välikappaleena ja antaa tietoa ja toimintoja näkymälle (ja sen toteuttajalle) sopivassa muodossa Malli muuttaa näkymämallia, näkymä sidottu näkymämalliin, näkymä päivittyy automaattisesti. Näkymässä tapahtuu, näkymämallin kautta muutokset malliin, jossa voidaan tehdä varsinainen ohjelman toiminta

25 MVVM-arkkitehtuurikuvana view Data binding and commands View Model notifications View2.. updates notifications Model

26 MVVM luokkien välinen kommunikaatio Kuvan lähde: TIE Samuel Lahtinen

27 Model-View-View-Model Hyvää: Käyttöliittymä voidaan eriyttää täysin muusta ohjelmasta Käyttöliittymän toteuttaminen onnistuu ilman varsinaista koodaamista, tehdään vain toimintojen ja asioiden sitomista näkymämalliin > käyttöliittymän toteuttajan ei tarvitse olla koodari Malli voidaan toteuttaa itsenäisesti, ei riippuvuuksia näkymään Testaus, näkymämallin testaus toiminnallisuuden testauksena Uudelleenkäyttö voi helpottua, kun näkymään liittyvät asiat eivät sotke Huonoa: Monimutkaisuus vaikeaselkoisuus, lisää työtä pienemmissä projekteissa Muuta: Sama idea toteutettavissa esim. Qt ympäristössä, ei tarvitse.net ympäristöä ja sen kaikkia kikkoja ollakseen käyttökelpoinen

28 MVVM näkymän tehtävät Näkymä on visuaalinen elementti, kuten ikkuna, sivu, kontrolli, datanäkymä. Näkymässä on mukana siihen kuuluvat kontrollielementit, layoutit ja tyylitiedot. Näkymä hoitaa käyttöliittymän visuaalisen toiminnan, animaatiot, tilamuutokset jne. (nämä voivat johtua joko näkymämalliin tulevista muutoksista tai käyttäjän tekemistä jutuista) Toteutuspuolella mukana voi olla tarvittaessa myös koodia, jolla hoidetaan asioita joita olisi mahdoton tai vaikea toteuttaa WPF:n, XAMLin avulla Näkymä viittaa näkymämalliin datacontext propertyn kautta. Näkymän kontrollit sidotaan propertyihin ja näkymämallin tarjoamiin komentoihin/funktioihin Näkymä voi erikoistaa sidonnan toimintaa näkymän ja näkymämallin välillä. Esim. Tiedon tyyppimuunnokset (merkijonosta kokonaisluku, päiväys) tai tehdä syötetiedoille validointia ja antaaa käyttäjälle enemmän tietoa.

29 MVVM näkymämallin tehtävät Näkymämalli ei näy käyttäjälle, eikä siinä ole mukana mitään käyttöliittymään liittyviä komponentteja (WPF, Silverlight, XAML ) Kapseloi tiedon esityslogiikan jota tarvitaan käyttötapauksen tai käyttäjän tehtävän toteuttamiseen Näkymämallin tulee olla testattavissa itsenäisesti (ilman näkymää tai mallia). Näkymämalli ei normaalisti käytä suoraan näkymää vaan toteuttaa propertyjä ja komentoja/palveluita joihin näkymää sidotaan. Näkymämalli kommunikoi näkymän kanssa tapahtumien avulla (INotifyPropertyChanged and INotifyCollectionChanged rajapinnat) Komennoista lisää (ICommand rajapinta, komento-oliot, Command Method komennot) Näkymämalli huolehtii näkymän ja mallin välisestä kommunikaatiosta. Se voi muuttaa tai käsitellä tietoa niin, että se on näkymälle helpommassa muodossa. Lisäksi näkymämalli voi tarjota propertyjä, joita ei ole olemassa varsinaisessa mallissa. Tiedon validointiin voidaan käyttää IDataErrorInfo or INotifyDataErrorInfo rajapintoja. Näkymämalli voi sisältää myös näkymää varten olevaa ohjelman tilainformaatiota

30 MVVM malli Malli sisältää ohjelman tiedon ja bisneslogiikan, hoitelee siis varsinaista ohjelman tietoa ja huolehtii siitä, että sitä käsitellään oikeilla algoritmeilla jne. toiminnallisuuden Mallit eivät viittaa suoraan mihinkään näkymän osaan tai näkymämalliin (ei riippuvuuksia näiden toteutustapaan) Kommunikaatio muihin kerroksiin käyttäen INotifyPropertyChanged and INotifyCollectionChanged rajapintoja. Tietokokoelmat (listat jne.) usein ObservableCollection<T> luokasta erikoistettuja Mallit käyttävät usein tietojen hakupalveluita tai tietokantoja, tiedon käsittelyn ja hakujen kapselointi

31 Yhteenveto Käyttöliittymän erottaminen ohjelman muusta toiminnallisuudesta hyvä idea jos ollaan tekemässä hieman suurempaa projektia Mahdollista testata osakokonaisuuksia itsenäisesti Mahdollisuus toteuttaa käyttöliittymä ja muita osia itsenäisesti Muutokset käyttöliittymässä tai toiminnallisuudessa helpompia, kun molemmat eivät ole sikinsokin Olemassa monia erilaisia suunnittelumalleja, arkkitehtuurimalleja, joilla tämän voi tehdä Tulevaa, ohjelmistojen suunnittelupuolta, rajapintasuunnittelua Viikkoharkkoihin MVC:n toteuttamista TIE Samuel Lahtinen 31

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 4 : MVC:t ja kumppanit Samuel Lahtinen TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyö Versiohallinnan kutsut lähetetty, ota yhteyttä jos et ole moista

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

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 0: Kurssin esittely TIE-20200 Samuel Lahtinen 1 Mitäs tänään on tarjolla? Käytännön juttuja: Mistä tietoa löytyy Kurssin henkilökunta Kurssin rakenne Käytännönjärjestelyt

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 8: Lokalisointia/kansainvälistystä TIE-20200 Samuel Lahtinen 1 Ajankohtaista Viimeiset viikkoharkat tarjolla, aiheena kansainvälistäminen/lokalisointi Viikkoharkkoja

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Suunnittelumalleja, MVC. Juha Järvensivu 2008 Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 7: SOLID ja olioiden rakentelumalleja TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyössä suunnittelusessioiden ajanvaraus auki Viikkoharjoituksissa tehtaaseen/rakennuttajiin

Lisätiedot

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

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

Lisätiedot

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen

Lisätiedot

TIE Ohjelmistojen suunnittelu. Luento 3: käyttöliittymien toteutustekniikat, QML

TIE Ohjelmistojen suunnittelu. Luento 3: käyttöliittymien toteutustekniikat, QML TIE-20200 Ohjelmistojen suunnittelu Luento 3: käyttöliittymien toteutustekniikat, QML 1 Tämän päivän ohjelmaa Viikkoharjoitukset alkavat! Yleisesti käyttöliittymien toteutustekniikoista Myöhemmin MVC,

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Lisätiedot

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

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

Lisätiedot

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 12: Lokalisointia/kansainvälistystä TIE-20200 Samuel Lahtinen 1 Sisältöä Kansainvälistäminen/lokalisointi Mitä asioita voi liittyä kansainvälistämiseen/lokalisointiin?

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State 2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus

Lisätiedot

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt Testiautomaatio tietovarastossa Automaattisen regressiotestauksen periaate ja hyödyt Sisältö 2 Testaus kiinteänä osana DW-toteutusta Regressiotestauksen merkitys Robot Framework Automatisoitu DW:n regressiotestaus:

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

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

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

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

Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia)

Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Qt perusteet Juha-Matti Vanhatupa (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Sisältö Käännösprosessi MetaObjectSystem Hyödyt Qt:n moduulit Qt käyttöliittymän muistinhallinta Debug-tulosteet

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

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

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite 2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto

Lisätiedot

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli

Lisätiedot

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä

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

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet Toiminnot eli käyttäytyminen Tieto eli rakenteelliset ominaisuudet Olio (ks. määritelmä): rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta

Lisätiedot

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 5: suunnittelua Samuel Lahtinen TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyö Protosessioita tämän viikon lopulla, ensi viikolla & sitä seuraavalla Jotain

Lisätiedot

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria Sivu: 1 / 10 Testausdokumentti Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto Versiohistoria Versio Päivitykset 0.4 Lisätty mod_form.php -tiedostoon liittyvät testit 0.5 Lisätty johdanto 1.0 Dokumentti

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

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

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2 Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2 Samuel Lahtinen (Johannes Koskinen) http://www.cs.tut.fi/~ohar/ 1 Yleisesti Huomenna ei luentoa, tapaaminen TC103:ssa Muistakaa harkkavälinäyttöilmo

Lisätiedot

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti

Lisätiedot

SEPA - Design Patterns

SEPA - Design Patterns SEPA - Design Patterns Kimmo Karlsson, 51066R & Antti Pirinen, 51406N 15. maaliskuuta 2005 1 Sisältö 1. Sisältö 2. Johdanto 3. Käyttöönotto 4. Käyttökokemukset 2 Johdanto Valitsemamme ohjelmistonkehityskäytäntö

Lisätiedot

Ohjelmistokehykset (software frameworks)

Ohjelmistokehykset (software frameworks) Ohjelmistoarkkitehtuurit 1 (software frameworks) Osittain abstraktiksi jätettyjä ohjelmistorunkoja, joita eri tavoin täydentämällä saadaan rakennettua kokonaisia uusia sovelluksia tai sovelluksen osia

Lisätiedot

Rajapinnat ja olioiden välittäminen

Rajapinnat ja olioiden välittäminen Rajapinnat ja olioiden välittäminen Moduulit/oliot kutsuvat toisiaan kapseloitujen rajapintojen läpi Kutsuissa välitetään usein olioita paikasta toiseen Jos olion omistus (= tuhoamisvastuu) säilyy koko

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

Lisätiedot

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä Olio-ohjelmointi Johdanto suunnittelumalleihin Hyvin toimivan olio-ohjelmointiparadigmaa noudattavan ohjelman suunnitteleminen ei ole helppo tehtävä. On löydettävä sopiva luokkarakenne kuvaamaan ratkaistavaa

Lisätiedot

FORMATIIVINEN ARVIOINTI

FORMATIIVINEN ARVIOINTI FORMATIIVINEN ARVIOINTI (OHJEISTUKSESSA KÄYTETTY VISMAN YLEISIÄ OHJEITA FORMATIIVISEN ARVIOINNIN TEKEMISESTÄ. LISÄTIETOJA VISMA.FI) 1 OPETTAJAN ARVIOINTINÄKYMÄ Opettaja pääsee tekemään formatiivista arviointia

Lisätiedot

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 10: olioiden rakentelumalleja ja SOLID TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyössä välinäyttöjen ajanvaraus auki Viikkoharjoitukset ohi Ohjelmassa

Lisätiedot

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k 1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.

Lisätiedot

AC Hannes Statistics Tool. Ilkka Hakkarainen

AC Hannes Statistics Tool. Ilkka Hakkarainen AC Hannes Statistics Tool Ilkka Hakkarainen 24.3.2011 Sisältö 1 Johdanto 2 1.1 Järjestelmän tarkoitus........................ 2 1.2 Toimintaympäristö.......................... 2 1.3 Rajaukset...............................

Lisätiedot

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus Hakan teknisiä kuulumisia Haka-käyttäjien kokoontuminen 20.1.2009 Arto Tuomi CSC Tieteen tietotekniikan keskus SAML2 siirtymä 1.12.2008 Uudet Hakaan rekisteröitävät palvelut (SP) tukevat SAML 2.0 -tekniikkaa

Lisätiedot

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

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

Lisätiedot

Yhteenvetodokumentti. Boa Open Access. Helsinki 5.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto / Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto / Opetusteknologiapalvelut 2014 Tiedostojen lisääminen alueelle Vaihtoehto1: Jos käytät Firefox-selainta voit vain raahata tiedoston alueelle. Laita Moodle-alueellasi muokkaustila päälle (Muokkaustila päälle -painike). Avaa koneesi Tiedostot-ikkuna

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 1 Johdanto ja Qt työkalujen esittely Juha-Matti Vanhatupa Kurssin tavoitteet Kuvailla käyttöliittymäohjelmoinnin

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

zotero www.zotero.org

zotero www.zotero.org zotero www.zotero.org Viitteidenhallintajärjestelmä Zotero toimii Firefox-selaimessa. Muita ilmaisia viitteidenhallintajärjestelmiä ovat esimerkiksi EndNote ja Mendeley. Näissä ohjeissa on kuvataan Zoteron

Lisätiedot

Veto-visualisointityökalu

Veto-visualisointityökalu Ohjelmoinnin suunnittelumallit (design patterns) käyttöliittymissä Vanhin ja keskeisin lähde Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns. Addison-Wesley, USA, 1994. Ajatus ohjelmoinnin

Lisätiedot

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PULSU Syksy 2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Heikki Manninen Noora Joensuu

Lisätiedot

11. Kehysarkkitehtuurit

11. Kehysarkkitehtuurit 11. Kehysarkkitehtuurit Johdanto Kehystyypit Kehykset ja arkkitehtuuri Kehykset ja suunnittelumallit Kehyspohjainen ohjelmistokehitys Esimerkkikehys Kehysten toteutuksesta Kehysten etuja ja ongelmia Yhteenvetoa

Lisätiedot

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

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

Lisätiedot

NAVIGAATTORIN ASENNUS JA MUOKKAUS

NAVIGAATTORIN ASENNUS JA MUOKKAUS 1 NAVIGAATTORIN ASENNUS JA MUOKKAUS YLEISTÄ NAVIGAATTORIN KÄYTÖSSÄ... 2 NAVIGAATTORIN HAKEMINEN... 3 NAVIGAATTORIN KOPIOINTI OMALLE SAP-TUNNUKSELLE... 6 NAVIGAATTORIN MUOKKAUS ENNEN KÄYTTÖÖNOTTOA... 7

Lisätiedot

Muusta kuin vesisioista

Muusta kuin vesisioista Muusta kuin vesisioista Janne Käki 8.12.2006 Metodin kuormittaminen (overloading) Samannimisestä metodista on määritelty samassa luokassa (tai samassa yli- ja aliluokkien jatkumossa) useita versioita,

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

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

Harjoitustyö 3 - Millosemeni

Harjoitustyö 3 - Millosemeni Harjoitustyö 3 - Millosemeni Tampereen kaupunki tarjoaa avoin data -sivuillaan Tampereen joukkoliikenteen aikataulut, reitit sekä rajapinnan joukkoliikenteen reaaliaikaiseen seurantaan. Näinpä erilaisille

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

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

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA, Järjestelmäarkkitehtuuri (TK081702) SOA SOA-arkkitehtuuri perustuu xml:ään ja Web Services teknologioihin Mahdollistaa joustavan mukautumisen tuleviin muutoksiin Kustannustehokas Toteutukset perustuvat

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Tapahtumapohjainen ohjelmointi

Tapahtumapohjainen ohjelmointi Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Erot perinteisiin sovelluksiin Sovelluksen kulku ei ole ennalta tiedossa. Start A

Lisätiedot

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

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

Lisätiedot

Lipas- järjestelmän tallennusohjeet, käyttöohjeet-kansio. Lipas- järjestelmä löytyy myös osoitteesta

Lipas- järjestelmän tallennusohjeet,  käyttöohjeet-kansio. Lipas- järjestelmä löytyy myös osoitteesta Liikuntapaikan tallentaminen Lipakseen ja olemassa olevien paikkojen muokkaus Pistemäiset liikuntapaikat Sisältö: 1. Kirjautuminen Lipakseen 2. Liikuntapaikan sijainnin tallennus 3. Piste menikin väärään

Lisätiedot

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016 / / WordPress KÄYTTÖOHJE Sotkamo 2016 Sisältö Sisältö 1. Yleistä 2. Kirjautuminen ylläpitoon 2.1. Kirjaudu osoitteessa: http://sotkamo.valudata.fi/admin Myöhemmin: http://www.sotkamo.fi/admin 2.2 Salasana

Lisätiedot

Osallistavan suunnittelun kyselytyökalu

Osallistavan suunnittelun kyselytyökalu Osallistavan suunnittelun kyselytyökalu Käyttöohje ARFM- hankkeessa jatkokehitetylle SoftGIS-työkalulle Dokumentti sisältää ohjeistuksen osallistavan suunnittelun työkalun käyttöön. Työkalu on käytettävissä

Lisätiedot

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

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

Lisätiedot

PLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/

PLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/ PLA-32820 Mobiiliohjelmointi Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/ 1. Luento 2 Suoritus vaatimukset Kurssin sisältö Kirjallisuus Mobiiliohjelmointi Mobiililaitteita...

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Osallistavan suunnittelun kyselytyökalu

Osallistavan suunnittelun kyselytyökalu Osallistavan suunnittelun kyselytyökalu Käyttöohje InnoGIS- hankkeen aikana kehitetylle pilottiversiolle Dokumentti sisältää pilottiversiona toimivan kyselyn laatimiseen ja vastaamiseen liittyvän ohjeistuksen.

Lisätiedot

Discendum Oy

Discendum Oy 1 CV+ ansioluettelon luominen ja muokkaus CV+ - Yleistä 3 CV+ -ansioluettelon luominen 5 Tietojen muokkaaminen Perustoiminnot 7 CV+ sisältöjen otsikoiden muokkaus 8 Koulutus- ja työkokemustiedot Todistuksen

Lisätiedot

6. Arkkitehtuurityylit

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

Lisätiedot

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

Lisätiedot

ONKI-projekti JUHTA KANSALLISKIRJASTO - Kirjastoverkkopalvelut

ONKI-projekti JUHTA KANSALLISKIRJASTO - Kirjastoverkkopalvelut ONKI-projekti JUHTA 31.10.2013 Ontologia Jonkin aihealueen käsitteiden eksplisiittinen määrittely Käsitehierarkia, joka kuvaa käsitteiden väliset suhteet Ontologia Jos eri organisaatiot käyttävät sisällönkuvailussaan

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

Lisätiedot

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

Määrittelydokumentti NJC2. Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Määrittelydokumentti NJC2. Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Määrittelydokumentti NJC2 Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli

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

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

Lisätiedot

Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja

Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja 582101 - Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

ANTTI LEHTINEN MALLI-NÄKYMÄ-ARKKITEHTUURIN SOVELTAMINEN WPF- TEKNOLOGIALLA

ANTTI LEHTINEN MALLI-NÄKYMÄ-ARKKITEHTUURIN SOVELTAMINEN WPF- TEKNOLOGIALLA ANTTI LEHTINEN MALLI-NÄKYMÄ-ARKKITEHTUURIN SOVELTAMINEN WPF- TEKNOLOGIALLA Diplomityö Tarkastaja: professori Kai Koskimies Tarkastaja ja aihe hyväksytty Tieto- ja sähkötekniikan tiedekuntaneuvoston kokouksessa

Lisätiedot

Kieku-raportoinnin kehittäminen. Ratkaisupäällikkö Kimmo Järvinen, Valtiokonttori Kieku-käyttäjäfoorumi

Kieku-raportoinnin kehittäminen. Ratkaisupäällikkö Kimmo Järvinen, Valtiokonttori Kieku-käyttäjäfoorumi Ratkaisupäällikkö Kimmo Järvinen, Valtiokonttori Kieku-käyttäjäfoorumi 27.5.2014 Sisältö: Iso kehittämishanke - Jakopalkat 2015 Pienemmät kehittämisen painopisteet - Henkilöstöhallinnon prosessin tuki

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

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

TIE Ohjelmistojen suunnittelu. Viimeinen luento: kertaus

TIE Ohjelmistojen suunnittelu. Viimeinen luento: kertaus TIE-20200 Ohjelmistojen suunnittelu Viimeinen luento: kertaus 1 Ajankohtaista Harjoitustyön dedis 9.12. klo 12:00 Demoilusessiot samalla/seuraavalla viikolla Harjoitustyön neuvontapäivystyksiä KE 15-16

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 1.0 19.10.2007 Suanto 0.3 18.10.2007 Matti Eerola 0.2 17.10.2007

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia Ohjelmistojen mallintaminen, kurssikoe 15.12. esimerkkivastauksia Tehtävä 1 a: Ohjelmistotuotantoprosessi sisältää yleensä aina seuraavat vaiheet: määrittely, suunnittelu, toteutus, testaus ja ylläpito.

Lisätiedot