1 Sisällysluettelo 2 Johdanto 3 Menetelmän käyttö

Koko: px
Aloita esitys sivulta:

Download "1 Sisällysluettelo 2 Johdanto 3 Menetelmän käyttö"

Transkriptio

1 SEPA-päiväkirja Aihe: Refaktorointi Tekijät: Markku Huttunen, Antti Poikela 1 Sisällysluettelo 1. Sisällysluettelo 2. Johdanto 3. Menetelmän käyttö 4. Kokemukset ja muutokset 5. Lähdeluettelo 2 Johdanto SEPA-aiheeksemme valitsimme refaktoroinnin. Ohjelmistokehityksessä tämä tarkoittaa lyhyesti sitä, että ei ole erillistä suunnitteluvaihetta ennen buildien tekoa, vaan suunnittelua muokataan tuotteen kehityksen aikana muuttamatta sen ulkoista toimintaa. [1] Refaktorointia käytetään ohjelmistokehityksessä jatkuvasti, osin sitä edes tiedostamatta, ohjelmiston ymmärrettävyyden ja toiminnan loogisuuden parantamiseksi. Refaktorointia voidaan suorittaa myös erillisenä työtehtävänä, jonka tavoitteena on parantaa koodin laatua esimerkiksi paremman ylläpidettävyyden ja laajennettavuuden saavuttamiseksi. Tämä voi olla tähdellistä varsinkin, jos joudutaan työskentelemään jo olemassa olevan koodin kanssa, jonka laadussa olisi parannettavaa, mutta jota ei kuitenkaan keretä kirjoittamaan uudelleen. Käytännössä refaktorointi näkyy ohjelman lähdekoodin uudelleenjärjestämisenä, usein erilaisten automatisoitujen työkalujen avulla. Valitimme refaktoroinnin aiheeksemme, koska siitä on todennäköiseesti hyötyä kaikille kehittäjille projektissamme. Lisäksi käyttämämme kehitystyökalu, Eclipse, tukee refaktorointia erinomaisesti. Uskomme myös, että refaktoroinnin avulla pystymme paremmin noudattamaan konventioita ja näin ollen tuottamaan yhdenmukaisempaa ja ymmärrettävämpää koodia. 3 Menetelmän käyttö Refaktorointia tulevat käyttämään kaikki kehittäjät. Tarkoituksena on käyttää refaktorointia jatkuvasti kehityksen aikana. Hyvä käytäntö on tarkistaa refaktorointitarve jokaisen metodin kirjoittamisen jälkeen sekä jokaisen työskentelyjakson päätteeksi. Vähintäänkin koodin ulkoasun muotoilu konventioiden mukaiseksi työrupeaman päätteeksi on välttämätöntä, jotta muun muassa testaajan työaika ei kuluisi hukkaan. Kannattavaa on myös varmistaa metodin järkevä suunnittelu metodin kirjoittamisen jälkeen, sillä myöhemmin tehtynä metodin toiminnan joutuu turhaan kertaamaan uudelleen. Myöhemmässä vaiheessa tapahtuvan refaktoroinnin jälkeen on aina syytä ajaa uudelleen mahdolliset automatisoidut testit koodin toiminnan varmistamiseksi.

2 Alla käymme läpi Eclipsen keskeisimpiä refaktorointitoimintoja, joita kehittäjien on suositeltavaa käyttää projektin kuluessa tarpeen vaatiessa. Suurimman osan operaatioista voi suorittaa myös manuaalisesti, mutta Eclipsen avulla se on nopeampaa ja turvallisempaa muun muassa viittauksien eheys säilyy. Kehittäjät käyttävät refaktorointitoimenpiteitä itsenäisesti oman harkintakykynsä mukaan. Eclipse tarjoaa muun muassa loistavat uudelleennimeämis- ja siirtomahdollisuudet kaikilla koodin tasoilla (mm. pakettien, metodien ja luokkien) säilyttäen koodin sisäiset viittaukset ehjinä. Siirtäminen toimii sekä Eclipsen Refactor -valikosta (Move) että Package Explorer -näkymässä drag&drop -toiminnolla. Siirtotoimintoja käytetään designin korjaamiseen, esimerkiksi kytkentöjen ja koheesion parantamiseen. Tarpeen sille voi havaita koodia tutkimalla tai esimerkiksi Together -työkalun metriikka-analysaattorilla. Change Method Signature -toiminnolla voidaan muuttaa metodin parametreja, näkyvyyksiä, palautusarvoja ja poikkeuksia siten, että viittaukset muualla koodissa pysyvät ehjinä. Convert Anonymous Class to Nested muuttaa nimensä mukaisesti anonyymin luokan sisäkkäiseksi (vrt. inner eli sisäinen) luokaksi. Tästä voi olla etua mm. haluttaessa välttää koodin kopiointia. Anonyymia luokkaa tulisi käyttää lähinnä vain ns. singleton -tapauksissa, ts. kun sisäisestä luokasta ei haluta tehdä kuin yksi instanssi (näin on usein muun muassa graafisten sovellusten kuuntelijoiden tapauksissa). Toiminnolla Move Member Type to New File voidaan erottaa sisäisiä luokkia uusiksi ulkoisiksi tiedostoiksi. Toiminto on hyödyllinen, jos sisäinen luokka esimerkiksi kasvaa kovin pitkäksi. Pull Up ja Push Down siirtävät metodeita ja kenttiä ylempiin ja alempiin luokkiin luokkahierarkiassa. Voidaan käyttää, jos esimerkiksi alaluokan kenttä tai metodi ei ole niin spesifinen, etteikö se olisi helposti yleistettävissä yläluokkaansa. Esimerkkinä voisi toimia Lehmä -luokalle tehty oliontuhoamismetodi kuole() joka paremminkin voisi esiintyä yläluokassa Eläin. Tällöin käytämme Pull Up -toimintoa. Extract Interface -toiminnolla voidaan luokan julkisista metodeista erottaa rajapinta. Toiminto osaa myös ottaa tämän uuden rajapinnan käyttöön sen toteuttavien luokkien sijasta muiden luokkien instanssimuuttujissa, mikä onkin hyvien koodauskäytäntöjen mukaista. Generalize Type muuttaa viittauksen sen mahdolliseksi yleistykseksi. Tämä toiminto voidaan suorittaa tyyppiviittauksille, kenttien ja paikallisten muuttujien määrityksille ja referenssityypitetyille parametreille. Toiminto tarkistaa, voidaanko muunnos suorittaa turvallisesti. Use Supertype Where Possible -toiminto voidaan ajaa luokalle, jolloin etsitään kyseisen projektin polulla olevista paketeista viittauksia kyseiseen luokkaan ja muutetaan ne halutuksi yleistykseksi, jos mahdollista. Toimii siis kuten Generalize Type, mutta ainoastaan tyypeille ja suoritetaan kerralla koko luokalle. Infer Generic Type Arguments -toiminnolla voidaan muuttaa raakojen kokoelmien (Collection) esiintymät niiden tyypitetyiksi versioiksi (esim. Collection<String>), jos mahdollista. Voidaan suorittaa joko yksittäiselle luokalle, paketille tai jopa koko projektille kerralla. Tyypitettyjen kokoelmien käyttö on erittäin suositeltavaa (muun muassa vältytään tyyppimuunnoksilta) ja siksi suosittelemme tämän toiminnon käyttämistä.

3 Extract Method luo uuden metodin valitusta koodipätkästä. Tämän toiminnon voi varsin helposti tehdä myös käsin ilman Eclipsen apua, ja haluammekin korostaa itse käytäntöä pitkien metodien sijaan kannattaa usein erottaa loogisia kokonaisuuksia yksityisiksi metodeiksi koodin hahmotettavuuden parantamiseksi. Sama tilanne on vakioiden ja paikallisten muuttujien tapauksissa, joiden erottamiseen Eclipse myös tarjoaa vastaavan työkalun. Kaikissa näissä refaktorointitoiminnoissa on esikatseluominaisuus, jonka avulla tulevia muutoksia voi tarkastella ennen niiden suorittamista. 4 Kokemukset ja muutokset Kappaleessa käymme läpi kehittäjien kokemuksia refaktoroinnista iteraatioiden aikana. Lisäksi listaamme mahdolliset muutokset käytäntöön. 1 Suunnitteluvaihe Suunnitteluvaiheessa ei vielä saatu varsinaisia kokemuksia refaktoroinnin käytöstä, koska ohjelmointitehtävät alkoivat vasta seuraavassa iteraatiossa. 2 Iteraatio 1 Keräsimme kokemuksia refaktoroinnin käytöstä ensimmäisen iteraation aikana lähettämällä kehittäjille sähköpostikyselyn. Kysyimme, kuinka paljon ja minkä tyyppistä refaktorointia kehittäjät käyttivät. Kysyimme myös heidän mielipiteitään refaktoroinnin käytön tarpeellisuudesta ja sen vaikutuksista ohjelmiston laatuun. Kyselystä kävi ilmi, että jokainen kehittäjä käytti refaktorointia projektissamme. Keskimäärin kehittäjät ovat käyttäneet ohjelmointiajastaan alle 10% refaktorointiin. Lähinnä Valppaan kehittäjät käyttivät hieman muita enemmän aikaa refaktorointiin. Useimmiten refaktorointia käytettiin koodin luettavuuden ja ymmärrettävyyden parantamiseen. Suosituimmat refaktorointimenetelmät olivat koodin automaattinen formatointi sekä uudelleennimeämistoiminnot. Osa kehittäjistä käytti refaktorointia myös koodin rakenteen muokkaamisessa esimerkiksi luokkien vastuiden muutoksissa ja toimintojen uudelleenjärjestämisessä. Eclipsen tarjoamasta runsaasta refaktorointivalikoimasta käytettiin kuitenkin vain murto-osaa. Kukaan kehittäjistä ei kokenut refaktoroinnin käyttöä työläänä vaan se nähtiin ennemminkin erottamattomana osatekijänä ohjelmointitehtävissä. Kehittäjät eivät oppineet ensimmäisen iteraation aikana refaktoroinnista varsinaisesti mitään uutta, vaan käytetyt menetelmät olivat heille tuttuja entuudestaan. Itse opimme uusista refaktorointimenetelmistä jo edellisessä iteraatiossa jolloin teimme SEPA:n ensimmäisen vaiheen. Käyttämämme IDE:n tarjoamat automaattiset refaktorointiominaisuudet koettiin varsin hyviksi, lukuun ottamatta koodin automaattisen formatoinnin toisinaan vajavaista toimintaa. Varsinkin Eclipsen tarjoama esikatselutoiminta nähtiin hyvänä ominaisuutena. Kokonaisuutena koettiin, että Eclipse toimi hyvänä apuna refaktoroinnissa ja kannusti sen käyttöön.

4 Ryhmämme kokee, että refaktoroinnin käyttö paransi ohjelmistomme laatua. Esimerkiksi muuttujannimien vaihto käyttämällä Find/Replace -toimintoa ei olisi todennäköisesti johtanut yhtä hyvään lopputulokseen. Aika-ajoin koettiin kuitenkin, että Eclipsen formatointitoiminto teki koodista epäselvempää huonoilla rivitysvalinnoilla. 3 Iteraatio 2 Iteraation alussa järjestimme kehittäjille noin puolen tunnin koulutustilaisuuden, jossa kävimme yksityiskohtaisesti läpi myös tässä dokumentissa esitellyt Eclipsen tärkeimmät refaktorointitoiminnot. Lisäksi kehittäjille oli varattu iteraation alusta puolentoista tunnin aika oman koodin läpikäymiseen refaktorointitarpeen varalta. Koska ensimmäisen iteraation lopussa lähettämämme sähköpostikysely kehittäjien refaktoroinnin käytöstä osoittautui näppäräksi keinoksi saada yleiskuva refaktoroinnin määrästä ja menetelmistä, päätimme tehdä samantyyppisen kyselyn myös Iteraatio 2:n lopussa. Tässä kyselyssä tiedustelimme kehittäjiltä perinteisesti, kuinka paljon he käyttivät refaktorointia ohjelmointityössään. Tämän lisäksi kysyimme, kokivatko he hyödylliseksi vuoden alussa pitämämme refaktorointikoulutuksen. Kuten ensimmäisessäkin iteraatiossa, myös toisessa kaikki kehittäjät tekivät refaktorointia. Keskimäärin refaktorointiin käytettiin kehittäjien omien arvioiden perusteilla noin 15% ohjelmointiajasta. Tosin vaihtelevuutta löytyi huimasti kehittäjien välillä joku tunnusti käyttäneensä ajasta alle 5% refaktorointiin kun taas toinen kertoi käyttäneensä jopa 50%. Kaikki kehittäjät myönsivät, että Eclipsen työkaluesittelystä oli hyötyä ainakin tulevaisuuden kannalta, joskaan kaikkien mielestä ei suoranaisesti tämän projektin kannalta. Eclipsen työkaluista monet tekevät aika isoja muutoksia, jonka takia kaikkia ei tarvittu käyttää projektissa. Kaksi viidestä kehittäjästä sanoo oppineensa jotain uutta refaktoroinnista tämän iteraation aikana. Kysyimme lisäksi oliko kehittäjien mielestä Eclipsen tarjoamissa työkaluissa puutteita. Yksi oli sitä mieltä, että oli välillä epävarma olo, toimivatko ne oikein, ja toisen mielestä joissain tilanteissa oli epäselvää, mikä kohta koodista täytyisi olla valittuna tiettyä toimintoa tehdessä. Muilta osin kehittäjät kokivat, ettei työkaluissa ollut puutteita. Vaikka Eclipsen tarjoama työkaluvalikoima onkin laaja, monet kehittäjät tekivät varsinkin monimutkaisimmat refaktorointitehtävät käsin. Automaattisia toimintoja käytettiin lähinnä uudelleennimeämisiin ja metodien ja muuttujien irrottamiseen koodista. Suurin osa kehittäjistä oli sitä mieltä, että refaktoroinnin käyttö paransi ohjelmistotuotteemme laatua merkittävästi. 4 Yhteenveto Yhteenvetona voidaan todeta aiheen olleen hyödyllinen projektin kannalta, sillä kaikki kehittäjät olivat sitä mieltä, että ohjelmiston laatu on merkittävästi parantunut refaktoroinnin ansiosta. Lisäksi järjestetty pikakoulutus ja lyhyt erillinen refaktorointihetki pakotti kehittäjät miettimään refaktorointitarvetta, ja vastaukset kertoivatkin kaikkien oppineen refaktoroinnista uutta. Itsellemme aiheesta voisi todeta syvyyden hieman loppuneen ensimmäisen iteraation jälkeen. Merkittävimmät uudet asiat ilmenivät ensimmäisessä iteraatiossa, ja lisäksi Antilla ei ollut lainkaan koodaustehtäviä toisessa iteraatiossa, joten refaktorointia hän ei päässyt

5 soveltamaan käytännössä. Ongelmallista refaktoroinnin yhteydessä oli sen käyttömäärän arviointi, ts. kuinka suuri osa kehittäjien ajasta kului refaktoroinnin parissa. Koska arviot vaihtelivat jopa 5 ja 50 prosentin välillä, on hyvinkin mahdollista, että kehittäjille jäi erilaiset kuvat siitä, mitkä toimet ovat refaktorointia. Toisaalta ero voi myös ainakin osittain selittyä myös toimintatapojen erilaisuudella. Todellisia käyttölukuja tärkeämpää on kuitenkin se, että refaktorointia selvästi käytettiin läpi projektin ja se koettiin yksinomaan hyödylliseksi. 5 Lähdeluettelo [1] Schach, Stephen R. Object-Oriented & Classical Software Engineering, 6th ed., [2] Eclipsen manuaali

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

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

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I SEPA päiväkirja Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T-76.4110 Ohjelmistoprojekti I Sisällysluettelo Sisällysluettelo...2 1. Johdanto...3 2.

Lisätiedot

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön

Lisätiedot

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant AgilElephant Testausraportti I1 Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: Testausraportti Sivu 1 / 5 Dokumentti Historia Muutoshistoria Revision Numero Revision Päiväys Yhteenveto muutoksista Revision

Lisätiedot

Eclipse ja JUnit-ohjelmoijatestit

Eclipse ja JUnit-ohjelmoijatestit Eclipse ja JUnit-ohjelmoijatestit Tarkoitus on tutustua Eclipsen käyttöön vähän lähemmin ja varsinkin JUnit-ohjelmoijatesteihin (ohjelmoijatesti on vanhalta nimeltä yksikkötesti). Ohjelmoijatestit ovat

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

Menetelmäraportti - Konfiguraationhallinta Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1

Lisätiedot

COTOOL dokumentaatio SEPA: Refaktorointi

COTOOL dokumentaatio SEPA: Refaktorointi Table of Contents Refaktorointi................................................................................ 1 1 Tehtävänanto.............................................................................

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

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

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

Lisätiedot

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

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

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

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

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

Project group Tete Work-time Attendance Software. Henkilökohtainen SE harjoitus: loppuraportti

Project group Tete Work-time Attendance Software. Henkilökohtainen SE harjoitus: loppuraportti Project group Tete Work-time Attendance Software Henkilökohtainen SE harjoitus: loppuraportti Staattiset menetelmät Jaakko Nyrölä T-76.115 Software project 2(8) Muutosloki Versio Pvm Tekijä Kuvaus 1.0

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

Project group Tete Work-time Attendance Software

Project group Tete Work-time Attendance Software Project group Tete Work-time Attendance Software Henkilökohtainen SE harjoitus: etenemisraportti Projektin etenemisen seuranta ja kontrollointi Niilo Fredrikson T-76.115 Software project 2(5) Muutosloki

Lisätiedot

FENG OFFICE -PROJEKTINHALLINTATYÖKALU

FENG OFFICE -PROJEKTINHALLINTATYÖKALU 1(5) FENG OFFICE -PROJEKTINHALLINTATYÖKALU Verkkoprojektissa tarkoituksenmukaisen projektinhallintatyökalun käyttö vähentää viestintään kuluvaa työaikaa merkittävästi, kun projektin osapuolilla on reaaliaikainen

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

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

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

COTOOL dokumentaatio Testausdokumentit

COTOOL dokumentaatio Testausdokumentit Table of Contents Testausraportti.............................................................................. 1 1 Tiivistelmä...............................................................................

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

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi Versiohistoria: Versio: Pvm: Laatijat: Muutokset: 0.1 2006-11-25 Janne Mäkelä Alustava 1.0 2006-12-10 Janne Mäkelä Valmis 1.

Lisätiedot

T SEPA - päiväkirja: Design Patterns. ETL työkalu

T SEPA - päiväkirja: Design Patterns. ETL työkalu T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty

Lisätiedot

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät 1 Oppilaan pikaopas Project 2013 käyttöliittymä ja näkymät Kun avaat Project 2013 -ohjelman, näet ensimmäisenä pelkistetyn näkymän. Uusi Project 2013 voi auttaa projektinhallinnassa kuten esim. projektitietojen

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

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit

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

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

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

C# 3.0:n uudet ominaisuudet Language Integrated Query...45

C# 3.0:n uudet ominaisuudet Language Integrated Query...45 Luku 1 Johdanto... IX Tutustutaan Visual Studioon Visual Studion uusin versio...2 Mikä Visual Studio on?...2 Tuki tiimityölle eli Visual Studio Team System...4 Microsoft Expression -tuoteperhe...5 Visual

Lisätiedot

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3 16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut

Lisätiedot

Ohjelmistojen laadun parantaminen refaktoroinnilla Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto

Ohjelmistojen laadun parantaminen refaktoroinnilla Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Ohjelmistojen laadun parantaminen refaktoroinnilla Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Mäkinen / Ohjelmistojen laadun parantaminen / Ohjelmistoprosessit ja ohjelmistojen laatu

Lisätiedot

Sisällys. 16. Lohkot. Lohkot. Lohkot

Sisällys. 16. Lohkot. Lohkot. Lohkot Sisällys 16. ohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.1 16.2 ohkot aarisulut

Lisätiedot

Käyttöliittymän muutokset ProCountorin versiossa 3.0

Käyttöliittymän muutokset ProCountorin versiossa 3.0 13.04.2008 Sivu 1(6) Käyttöliittymän muutokset ProCountorin versiossa 3.0 Tiivistelmä ProCountor-taloushallinto-ohjelmistosta on julkistettu uusi versio 3.0. Uusi ohjelmistoversio sisältää monia parannuksia

Lisätiedot

Suomi.fi: Asiointi ja lomakkeet osion käyttöliittymämallien käyttäjätestaus. Testaustulosten esittely

Suomi.fi: Asiointi ja lomakkeet osion käyttöliittymämallien käyttäjätestaus. Testaustulosten esittely 1 Suomi.fi: Asiointi ja lomakkeet osion käyttöliittymämallien käyttäjätestaus Testaustulosten esittely 14.1.2009 Paula Hupponen ja Tino Rossi / Steerco Oy 2 Esityksen sisältö Käyttäjätestauksen toteutus

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

CLOUDBACKUP TSM varmistusohjelmiston asennus

CLOUDBACKUP TSM varmistusohjelmiston asennus Luottamuksellinen JAVERDEL OY CLOUDBACKUP TSM varmistusohjelmiston asennus Copyright 2 (9) SISÄLLYSLUETTELO 1 ASENNUSOHJE WINDOWS KÄYTTÖJÄRJESTELMÄLLÄ VARUSTETTUIHIN LAITTEISIIN... 3 1.1 Yleistä... 3 1.2

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

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

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

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

Asiakas ja tavoite. Tekninen toteutus

Asiakas ja tavoite. Tekninen toteutus Asiakas ja tavoite Heikieli on vuonna 2015 perustettu yhden hengen asiantuntijayritys, joka tarjoaa käännös- ja oikolukupalveluita englannista ja saksasta suomeksi. Freelance-kääntäjiä on Suomessa paljon,

Lisätiedot

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio Testiraportti 26.2.2006 1/5 - Noheva II Testiraportti Versio Päiväys Tekijä Kuvaus 1.0 26.2.2006 Tikkanen varsinainen versio 1 Yleistä Toteutusvaiheen 2 virallinen testaus on muodostunut automaattisista

Lisätiedot

Tekstinkäsittelyn jatko. KSAO Liiketalous 1

Tekstinkäsittelyn jatko. KSAO Liiketalous 1 KSAO Liiketalous 1 Tyylien käyttö on keskeinen osa tehokasta tekstinkäsittelyä. Merkki- ja kappalemuotoilujen tallentaminen valmiiksi tyyleiksi nopeuttavat tekstinkäsittelyä; tekstin kirjoittamista ja

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D VERSIONHALLINTA PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D Versio Päivä Tekijä Kuvaus 0.1 26.10.2005 Kaarlo Lahtela Ensimmäinen versio 0.2 10.12.2006 Lauri Kiiski Suomennettu 3 (8 ) SISÄLLYS

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

Pakkauksen kokoaminen

Pakkauksen kokoaminen 13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen package-määrettä käyttäen. Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa importlauseen avulla. Pakkaukset ja näkyvyys.

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

SATAKUNNAN AMMATTIKORKEAKOULU. Hakala Toni Varpelaide Heidi TEKSTINKÄSITTELYN OHJEET CASE: OPINNÄYTETYÖN RAPORTOINTI WORDILLA

SATAKUNNAN AMMATTIKORKEAKOULU. Hakala Toni Varpelaide Heidi TEKSTINKÄSITTELYN OHJEET CASE: OPINNÄYTETYÖN RAPORTOINTI WORDILLA SATAKUNNAN AMMATTIKORKEAKOULU Hakala Toni Varpelaide Heidi TEKSTINKÄSITTELYN OHJEET CASE: OPINNÄYTETYÖN RAPORTOINTI WORDILLA Liiketalous ja tietojenkäsittely Huittinen Liiketalous Taloushallinto 2005 1

Lisätiedot

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /

Lisätiedot

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta TAMK Ohjelmistotekniikka G-04237 Graafisten käyttöliittymien ohjelmointi Harjoitustehtävä 2: Karttasovellus Kartta TAMK Karttasovellus Kartta Sivu 2/8 Sisällysluettelo 1. JOHDANTO...3 2. VAATIMUSMÄÄRITTELY...

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

Sisällys. 15. Lohkot. Lohkot. Lohkot

Sisällys. 15. Lohkot. Lohkot. Lohkot Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet

Lisätiedot

Kysely lähetettiin Helmen kautta toukokuun lopussa 2018 Vastausaika kaksi viikkoa Vastauksia tuli 548 suomenkielistä ( peruskoululaisia n 4000) ja

Kysely lähetettiin Helmen kautta toukokuun lopussa 2018 Vastausaika kaksi viikkoa Vastauksia tuli 548 suomenkielistä ( peruskoululaisia n 4000) ja 2018 Kysely lähetettiin Helmen kautta toukokuun lopussa 2018 Vastausaika kaksi viikkoa Vastauksia tuli 548 suomenkielistä ( peruskoululaisia n 4000) ja 161 ruotsinkielistä (peruskouluikäisiä n 900) 21%

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

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma

Lisätiedot

TEEMA 3 TEKSTIDATAN KÄSITTELY JA JULKAISEMINEN LUENTO 5 TEKSTINKÄSITTELY

TEEMA 3 TEKSTIDATAN KÄSITTELY JA JULKAISEMINEN LUENTO 5 TEKSTINKÄSITTELY TEEMA 3 TEKSTIDATAN KÄSITTELY JA JULKAISEMINEN LUENTO 5 TEKSTINKÄSITTELY TIEY4 Tietotekniikkataidot Kevät 2019 Juhani Linna 3.4.2019 LUENTO 5 2.4.2019 Tällä luennolla Taustaa harjoituksiin 7 ja 8: 1. Yleistä

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

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

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

Version päivittäminen

Version päivittäminen Version päivittäminen Puh: 02-2767 171 Fax: 02-2767 170 www.ecom.fi asiakaspalvelu@ecom.fi 1 Uuden version haku internetistä ja ohjelmiston rekisteröinti...3 1.1 Ohjelmiston Rekisteröiminen...3 1.2 Internet-rekisteröinnin

Lisätiedot

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3 15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia

Lisätiedot

CIRI Ontologiaperustainen tiedonhakuliittymä

CIRI Ontologiaperustainen tiedonhakuliittymä CIRI Ontologiaperustainen tiedonhakuliittymä Eija Airio, Kalervo Järvelin, Sari Suomela, Pirkko Saatsi ja Jaana Kekäläinen Tampereen yliopisto Informaatiotutkimuksen laitos Ontologian kolmitasomalli kehitetty

Lisätiedot

Onnistunut ohjelmistoprojekti

Onnistunut ohjelmistoprojekti Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

TIE Principles of Programming Languages CEYLON

TIE Principles of Programming Languages CEYLON TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita

Lisätiedot

erasmartcardkortinlukijaohjelmiston

erasmartcardkortinlukijaohjelmiston erasmartcardkortinlukijaohjelmiston asennusohje Sisällysluettelo 1. erasmartcard... 2 2. erasmartcard-ohjelmiston normaali asennus... 3 2.1. Ennen asennusta... 3 2.2. Asennus... 3 3. Muut asennustavat...

Lisätiedot

Väitöskirja -mallipohja

Väitöskirja -mallipohja Väitöskirja -mallipohja Ohje: Word 2003 -versiolle Tietohallintokeskus hannele.rajaniemi@jyu.fi Sisältö Miksi tyylit ovat käteviä? Miten toimii asiakirjamallipohja? Miten lisään tekstiä: a) kirjoitan itse

Lisätiedot

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Selvitys GPL-lisensoinnin tuomat ongelmat

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Selvitys GPL-lisensoinnin tuomat ongelmat Selvitys GPL-lisensoinnin tuomat ongelmat Sisällysluettelo 1. Johdanto...3 2. Ongelman kuvaus...4 3. Eri tulkinnat GPL-lisenssistä...5 3.1. Tiukka tulkinta...5 3.2. Väljä tulkinta...5 3.3. Kompromissitulkinta...5

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

Tekstinkäsittely ja opinnäytetyö I sisällysluettelo ja sivunumerointi. Word 2007

Tekstinkäsittely ja opinnäytetyö I sisällysluettelo ja sivunumerointi. Word 2007 Tekstinkäsittely ja opinnäytetyö I sisällysluettelo ja sivunumerointi Word 2007 Perttu Suhonen 2008 Sisällysluettelo 1 Sisällysluettelon tekeminen...5 1.1 Monitasoinen numerointi...5 1.2 Otsikkotyylien

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

SOLIDPDM 6 Plus uudet ominaisuudet osa 2

SOLIDPDM 6 Plus uudet ominaisuudet osa 2 SolidPDM 6 Plus 1 (8) SOLIDPDM 6 Plus uudet ominaisuudet osa 2 SolidPDM 6 Plus -versioon on lisätty uusia ominaisuuksia. Tämä dokumentti on jatkoa aiemmin ilmestyneelle SolidPDM uudet ominaisuudet julkaisulle,

Lisätiedot

Eclipse, SVN ja HelloWorld

Eclipse, SVN ja HelloWorld Eclipse, SVN ja HelloWorld Lähtökohtana tälle harjoitukselle on, että tietokoneeseen on jo asennettu Eclipse ja siihen SVN-lisäke. Kun käynnistät Eclipsen ensimmäistä kertaa uudella työtilalla, se näyttää

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

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

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

Lisätiedot

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

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006 Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet TIES341 Funktio-ohjelmointi 2 Kevät 2006 Alkuperäislähteitä Philip Wadler & Stephen Blott: How to make ad-hoc polymorphism less ad-hoc,

Lisätiedot

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa

Lisätiedot

Johdanto 1. Projektille esiteltävä versio. Kokemukset ja muutokset 3. Projektille esiteltävä versio. Iteraatio 2., suunnitelma

Johdanto 1. Projektille esiteltävä versio. Kokemukset ja muutokset 3. Projektille esiteltävä versio. Iteraatio 2., suunnitelma SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Sisäänrakennettu tietosuoja ja ohjelmistokehitys Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology

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

Office 2013 - ohjelmiston asennusohje

Office 2013 - ohjelmiston asennusohje Office 2013 - ohjelmiston asennusohje Tämän ohjeen kuvakaappaukset on otettu asentaessa ohjelmistoa Windows 7 käyttöjärjestelmää käyttävään koneeseen. Näkymät voivat hieman poiketa, jos sinulla on Windows

Lisätiedot

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

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

Lisätiedot

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

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle 2 Sisällys 1 Palvelunhallinta... 3 1.1 Käyttäjäryhmän luominen... 3 2 Tehtävienhallinta- perustiedot... 4 2.1 Yhtiön perustiedot... 4 2.2 Tehtävä-/

Lisätiedot

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on

Lisätiedot

Predictable 5 Uudet ominaisuudet

Predictable 5 Uudet ominaisuudet Predictable 5 Uudet ominaisuudet Sisällys 1. Sisäänkirjautuminen ja varmuuskopiointi... 3 2. Lauseiden etsiminen... 3 3. ios-äänet... 4 4. 10-näppäiminen näppäimistö... 4 5. Apple & näppäimistön laajennukset...

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

T Refaktorointi

T Refaktorointi T-76.115 SEPA päiväkirja Refaktorointi Jani Heikkinen Kim Nylund 15. maaliskuuta 2005 1 Sisältö 1 Esittely 3 2 Menetelmä projektikäytössä 3 3 Kokemukset ja muutokset suunnitelmaan 4 3.1 Suunnitteluvaihe...........................

Lisätiedot

Operaattorin ylikuormitus ja käyttäjän muunnokset

Operaattorin ylikuormitus ja käyttäjän muunnokset 13 Operaattorin ylikuormitus ja käyttäjän muunnokset Luvussa 7, "Ominaisuudet, taulukot ja indeksoijat," opit, miten luokan yhteydessä käytetään ohjelmallisesti []-operaattoria, jolloin objektia voidaan

Lisätiedot