Aspektiohjelmointiympäristöt

Koko: px
Aloita esitys sivulta:

Download "Aspektiohjelmointiympäristöt"

Transkriptio

1 hyväksymispäivä arvosana arvostelija Aspektiohjelmointiympäristöt Jesse Hallio Helsinki seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Matemaattis luonnontieteellinen Tekijä Författare Author Jesse Hallio Työn nimi Arbetets titel Title Tietojenkäsittelytieteen laitos Aspektiohjelmointiympäristöt Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages seminaari sivua Tiivistelmä Referat Abstract Aspektipohjainen ohjelmointi on kasvattanut suosiotaan 1990-luvun lopulta alkaen. Aspektipohjaista ohjelmointia helpottavat kehitystyökalut ovat yleistyneet vasta viimevuosina. AspectJ kieli, AspectJ developer tools (AJDT) ja Eclipsekehitysympäristö ovat työkalujen kehityksen kärjessä. Tämä kirjoitelma pyrkii kuvaamaan AJDT 1.3:sen tarjoamat työkalut Eclipse kehitysympäristössä AspectJ:lle. Avainsanat Nyckelord Keywords Säilytyspaikka Förvaringsställe Where deposited Muita tietoja övriga uppgifter Additional information

3 Sisältö ii 1 Johdanto 1 2 Aspektityökalut 2 3 AspectJ ja Eclipse AspectJ kääntäjä Selaaminen ja navigointi Muokkaaminen Muutoksenhallinta Debugger Dokumentointi Tulevaisuus Yhteenveto 7 Lähteet 7

4 1 Johdanto 1 Aspektipohjainen ohjelmointi[klm97] on saavuttanut ohjelmistokehittäjien keskuudessa suurta huomiota 1990-luvun lopulta alkaen. Aspektipohjaisessa ohjelmoinnissa on ajatuksena esittää ohjelmiston poikkileikkaavia ei-toiminnallisia ominaisuuksia, joiden toteuttaminen perinteisen ohjelmointiparadigman yhteydessä on äärimmäisen työlästä ja virhealtista [KLM97]. Poikkileikkaavia ominaisuuksia ovat esimerkiksi lokitus ja käyttöoikeuksien varmistaminen. Aspekteilla voidaan myös toteuttaa pienempään ohjelman osaan kohdistuvia toiminnallisuuksia, kuten välimuistitusta. Aspektipohjaisessa ohjelmoinnissa koko ohjelmakoodi koostuu toiminnallisesta ohjelmakoodista, aspektien liitoskohtamäärittelyistä sekä kehotteista. Kehotteet määrittelevät aspektin sisältämän ohjelmakoodin. Liitoskohtamäärittelyt määrittelevät millä perusteella kohdat (liitoskohdat) toiminnallisesta ohjelmakoodista valitaan joihin kehotteiden sisältämä koodi liitetään. Kehotteet ja liitoskohtamäärittelyt sijaitsevat eri tiedostoissa kuin toiminnallinen ohjelmakoodi, eikä toiminnallisessa ohjelmakoodissa ole mitään viitteitä suoraan liitoskohtamäärittelyihin. Aspektit lisätään toiminnalliseen ohjelmakoodiin punonnalla, joka voidaan suorittaa käännösaikaisesti (staattinen punonta) tai ajonaikaisesti (dynaaminen punonta) [KLM97]. Aspektit siirtävät läpileikkaavan toiminnallisuuden ohjelmakoodin keskitetysti kehotteisiin, joten läpileikkaavan toiminnallisuuden muuttuessa tai uusia läpileikkaavia toiminnallisuuksia lisätessä ohjelmakoodia tarvitsee muuttaa vain yhdestä paikasta ja se tulee käyttöön kaikkialla mihin liitoskohtamäärittely on kehotteen määritellyt liitettäväksi. Toinen aspektipohjaisen ohjelmoinnin hyöty on se, että toiminnallista ohjelmakoodia toteuttavan ohjelmoijan ei yleensä tarvitse olla tietoinen aspekteista toteuttaessaan ohjelmakoodia. Se on myös suuri haitta, sillä mikään toiminnallisessa ohjelmakoodissa ei osoita mitkä kehotteet vaikuttavat mihinkin kohtaan toiminnallista ohjelmakoodia [KLM97]. Seuraavassa luvussa käsitellään yleisesti toiminnallisuuksia mitkä liittyvät aspektiohjelmointiympäristöihin. Koska AspectJ:stä on tullut aspektikielien tunnustetuin toteutus sekä Eclipse kehitysympäristöstä suosituin aspektikehitysympäristö, luvussa kolme esitellään AspectJ:n käyttöä Eclipse kehitysympäristössä.

5 2 Aspektityökalut 2 Aspektipohjaisen ohjelmointikielen lisääminen olemassaolevaan kieleen vaatii vähintään yhden työkalun: punojan. Punojan tehtävänä on liittää määritellyt kehotteet toiminnalliseen ohjelmakoodiin joko ennen pääkielen kääntämistä, sen kääntämisen jälkeen tai ajonaikaisesti. Käytännössä jokainen aspektijärjestelmä tarjoaa vähintään komentoriviltä ajettavan punojan jotta kieltä pystyy käyttämään. Komentorivityökalut eivät tarjoa yleensä kehittämistä helpottavia palveluita vaan suorittavat vain pelkän punonnan. Esimerkiksi AspectC++:lle [SGS02] on tarjolla vain punoja. Integroidut kehitysympäristöt tarjoavat normaaleille ohjelmointikielille yksittäisen ohjelmakooditiedoston selailua tehokkaamman tavan navigoida ohjelmiston sisällä. Kehitysympäristö tunnistaa ohjelmointikielen ja rakentaa puumaisia listoja eri pakkausten, luokkien, metodeiden ja muuttujien sisällöstä ja mahdollistaa tehokkaan navigoinnin eri ohjelmakooditiedostojen välillä. Ohjelmaa kirjoittaessa editori tarjoaa erinäisiä kirjoitusapuja ohjelmoijalle, kuten luokka-, muuttuja- ja metodinimen täydennystä ja metodien mahdollisten argumenttilistojen esittämistä. Aspektipohjaiset ohjelmointikielet lisäävät tarvetta ohjelmakoodin selailun avuille sekä tukea aspektikielen kirjoittaselle kuten normaalillekin ohjelmointikielelle. Erityisen hyödyllinen navigointirakenne aspektikielille on esitys kehotteista ja liitoskohtamäärittelyistä niihin ohjelmiston liitoskohtiin joihin punonnassa kehotteen sisältö liitetään, sekä ohjelmakoodissa esitys siitä, mitkä kehotteet ollaan punomassa mihinkin kohtaan ohjelmakoodia [MWB01]. Normaalin ohjelmakoodin refaktorointityökalut ovat osoittautuneet myös hyödyllisiksi aspektiohjelmoinnissa. Niiden avulla saadaan tehokkaasti esille uusia liitoskohtia olemassaolevasta ohjelmakoodista johon on tarkoitus lisätä kehotteita [MWB01]. Myös aspekti refaktorointityökalut, joiden kohde on aspektit itse, auttavat itse aspektien ylläpidossa ja jatkokehityksessä. Aspektitietoinen virheidenpoistotyökalu (debugger) on myös olennainen osa aspektiohjelmointikielen integroimista ohjelmistoympäristöön. Muita hyödyllisiä työkaluja ovat automaattiset dokumentoinningeneroijat sekä hyvälaatuinen dokumentointi aspektikielestä itsestään ja aspektikielen integroinnin käytöstä kehitysympäristössä [Ker05b].

6 3 AspectJ ja Eclipse 3 Java alustalle on tarjolla useita aspektikieliä sekä integroituja kehitysympäristöjä. Aspektikielistä aktiivisimmin käytettyjä ovat AspectJ[Asp05], Spring AOP[Spr05] ja JBoss AOP[JBo05]. Integroiduista kehitysympäristöistä suosituimpia ovat Eclipse[Ecl05], NetBeans[Net05], JBuilder[JBu05] ja JDeveloper[JDe05]. Kaikista mahdollisista edellämainituista aspektikieli kehitysympäristö pareista vain AspectJ:n kehitystyökalut Eclipselle[AJD05] seuraavat sekä kehitysympäristön ja aspektikielen kehitystä aktiivisesti ja ovat jatkuvan kehityksen kohteena [Ker05a]. Tämä työkalukuvaus keskittyy AspectJ:n versioon 1.5, Eclipsen versioon 3.1 ja AspectJ:n kehitystyökalujen Eclipselle (AspectJ Development Tools, AJDT) versioon 1.3. Tätä kirjoittaessa AspectJ:n versio 1.5 ei ole vielä julkaistu, vaan kuvaus keskittyy milestoneen AspectJ kääntäjä Koska AspectJ laajentaa java kielen syntaksia, niin punoja on normaalista kääntäjästä eroava uusi kääntäjä, joka korvaa normaalin java kääntäjän ja tuottaa suoraan luokkatiedostojen tavukoodin. Punoja, ajc, on laajennus Eclipsen kääntäjän päälle, mutta toimii Eclipse kehitysympäristöstä täysin erillään ja myös komentoriviltä aivan kuten javan normaali kääntäjä, javac. AspectJ:n tapa toteuttaa aspektit laajentamalla javaa rajoittaa myös sillä tehtyjen projektien yhteydessä käytettäviä muita työkaluja. Työkalut, jotka käsittelevät java lähdekoodia suoraan, eivät toimi AspectJ:n kanssa. Jokainen ulkoinen ja erillinen työkalu pitää erikseen muokata tukemaan AspectJ:tä [Ker05b]. Koska AspectJ:n kääntäjä on laajennettu versio Eclipsen käyttämästä kääntäjästä, toimii se suoraan Eclipsen sisällä. Kääntäjä on täysin integroitu kehitysympäristöön ja tukee sen kaikkia ominaisuuksia, kuten ohjelmakoodin kääntämistä samaan aikaan tiedostojen muokkaamisen kanssa rinnakkain, sekä käännösvirheiden esittämistä problems näkymässä. Koska AspectJ on laajennus java kieleen, pystyy kääntäjä tarkistamaan staattisesti (käännösaikaisesti) aspektiohjelmakoodin ja esittämään koodista virheet ongelmat näkymässä (Problems) myös aspektikoodin osalta sitä mukaa kun aspektia muokataan [Ker05b]. Jos käytettävissä on vain class tiedostot tai jar paketti ohjelmakoodista, tai muusta syystä aspektit ovat erillään java lähdekoodista, eivät seuraavassa aliluvussa mainitut selaamiseen ja navigointiin tarkoitetut työkalut ole käytettävissä. AJDT tarjoaa

7 4 kuitenkin mahdollisuuden selvittää mihin aspektit punotaan. Eclipsen käännöksen saa tulostamaan ongelmat näkymään jokaisesta punonnasta ilmoitusrivin joka kertoo mihin luokkaan ja mille riville kehote on punottu. Lista päivittyy aina Eclipsen suorittaessa käännöksen, joten aspektien lisääminen vain binäärimuodossa saataviin ohjelmiin on mahdollista ilman että työskentelyn joutuu tekemään täysin ilman apuvälineita [Cha05]. 3.2 Selaaminen ja navigointi AJDT tarjoaa AspectJ projektien selailuun ja navigointiin tehokkaita työkaluja. Aspektitietoisuus on integroitu moniin Eclipsen normaaleista näkymistä, ja AJDT tuo mukanaan muutaman uuden näkymän. Pieni mutta äärimmäisen hyödyllinen lisäys Eclipsen normaaleihin näkymiin on koristaja (decorator), pieni oranssi nuolenpää joka lisätään java elementtien pikku ikonin vasempaan reunaan. Nuolenpää on nähtävillä kaikissa listoissa, joissa on java elementtejä, kuten paketti (Package), yleiskatsaus (Outline) ja ristiinviittaus näkymissä (Cross References). Nuolenpää kertoo, että java elementtiin vaikuttaa kehote suoraan, tai se sisältää liitoskohtamäärittelyn joka liittyy kehotteeseen [Cha05]. AJDT:hen liittymättömiä, mutta aspektien kanssa työskentelyssä käteviä työkaluja ovat Eclipsen kattavat refaktorointityökalut erityisesti vanhan ohjelmakoodin muokkaamisessa aspektikäyttöön. Eclipsen normaali Paketti näkymä näyttää AJDT:n kanssa myös aspektit ja aspektimäärittelyt. Erityyppiset kehotteet eritellään toisistaan erilaisen pikku ikonien avulla, ennen (before), jälkeen (after) ja ympärillä (around) [Cha05]. Myös muilla aspektimäärittelyillä on omat pikku ikoninsa, kuten määrittele varoitus (declare warning) ja määrittele virhe (declare error) [ChH04]. Eclipsen normaalin Yleiskatsaus näkymän rinnalle saa avattua ristiinviittaus näkymän. Ristiinviittaus näkymä seuraa oletuksena editori näkymää (tarvittaessa seuraamisen saa pois päältä) ja esittää ristiinviittauksia aspektien ja muun ohjelmakoodin välillä. Kun aktiivisessa editori näkymässä ja siten myös yleiskatsaus näkymässä on luokan lähdekoodi, näyttää ristiinviittaus näkymä mitkä kehotteet vaikuttavat mihinkin muokattavan luokan metodiin. Kehotteista pääsee navigoimaan kehotteiden lähdekoodiin. Kun aktiivisessa editori näkymässä ja siten myös yleiskatsaus näkymässä on kehotteen lähdekoodi, näyttää ristiinviittaus näkymä mihin luokkiin ja metodeihin kehote vaikuttaa. Listatuista metodeista pääsee navigoimaan metodien lähdekoodiinkoodiin [Cha05]. Yleiskatsaus näkymän ja ristiinviittaus näkymän avulla on tehokasta navigoida metodeiden ja niihin vaikuttavien aspektien väliä, jo-

8 5 ka vähentää olennaisesti ongelmia jotka muodostuvat tietämättömyydestä mitkä aspektit vaikuttavat mihinkin luokkiin, liitoksen molemmista päistä katsoen. Projektitason visualisointiin AJDT tarjoaa aspektivisualisointi perspektiivin (Aspect Visualization Perspective). Aspektivisualisaattori esittää projektissa olevat luokat pystyssä olevina palkkeina luokkien pituuksien mukaan. Viereiseltä listalta voi poimia projektiin kuuluvia aspekteja joiden vaikutukset eri luokkiin esitetään palkkeihin väritettyinä vaakaviivoina suhteellisiin kohtiin suhteessa lähdekoodiin. Visualisaattoria voi myös käyttää navigointiin; hiirellä voi valita palkeista kohdan minkä lähdekoodi ladataan perspektiivin editori näkymään. Aspektivisualisaattori tarjoaa hyvän yleiskuvan projektista ja aspektien vaikutusten laajuudesta, ja on hyvä työkalu tutustuessa uuteen aspekteja käyttävään projektiin [ChH04, Cha05]. 3.3 Muokkaaminen Lähdekoodia selatessa ja muokatessa AJDT lisää editori näkymän vasempaan reunaan pikku ikonin kertomaan jos riviin liittyy kehote. Ikonin tyyppi voi olla ennen, jälkeen tai ympärillä. Lisäksi ikonissa voi olla pieni kysymysmerkki, joka kertoo, että päätös kehotteen ajamisesta tapahtuu vasta ajonaikaisesti. Oikealla hiiren nappulalla saa ikonista esiin kontekstivalikon, josta voi navigoida ristiinviittaus-näkymän tavoin ohjelman lähdekoodista kohtaan liittyviin kehotteisiin, tai kehotteen lähdekoodista ohjelman lähdekoodin kohtiin mihin kehote vaikuttaa [Cha05]. 3.4 Muutoksenhallinta AJDT tarjoaa myös apua muutoksenhallintaan aspektiprojektissa. Läpileikkausten vertailu (Crosscutting Comparison) on työkalu kahden eri aikaan vallinneen tilanteen vertailuun aspektien vaikutuksissa ohjelmakoodiin. Työkalu on tehokas löytämään tilanteita missä ohjelmakoodin muutosten takia liitoskohtamäärittelyt eivät enää osu haluttuihin kohtiin. Työkalu tarjoaa aspektien käyttöön liittyvät muutokset listana, jossa on lisäykset ja poistot sekä luokat ja aspektit joihin muutokset kohdistuvat. Listaa voi rajoittaa yhteystyyppien mukaan ja aspektien sekä luokkien nimistä voi navigoida kyseisiin tiedostoihin, jos tiedostot ovat vielä olemassa. Vertailua voi tehdä kahden tallennetun ajan pisteen välillä, tai tallennetun ajan pisteen ja nykyhetken välillä. Nykyhetkeen vertaillessa lista päivittyy aina käännöksen yhteydessä automaattisesti, joka antaa hyvän kuvan muutosten vaikutuksista ohjelmakoodia kirjoittaessa [Cha05].

9 6 3.5 Debugger Virheidenpoistotyökalu, debugger, on tehokas työkalu virheiden poistamisessa. Eclipsen normaali debugger toimii AJDT:n kanssa täysin samalla tavalla, eikä eroa mitenkään Eclipsen normaalista, vaan on yhtä helppokäyttöinen myös aspektikoodin kanssa. Mitään rajoitteita debuggerin käytössä ei ole. Ainoastaan, jos tarvitsee kyetä pysähtymään ympärillä kehotteisiin, joutuu muuttamaan asetuksia kääntäjästä laittamalla inline toiminnon pois päältä [ChH04]. 3.6 Dokumentointi Dokumentointia kehitysympäristössä voidaan käsittää kahdella tavalla. Se voidaan käsittää tarjoittavan joko AJDT:n ja AspectJ:n dokumentointina, tai AspectJ:llä tehdyn projektin dokumentointina. AJDT:n ja AspectJ:n dokumentaatio integroituu saumattomasti osaksi Eclipsen help toiminnetta, ja haluamansa tiedon löytää tehokkaasti Eclipsen help:in hakutoiminnolla. AspectJ tarjoaa oman kääntäjänsä tavoin myös oman JavaDoc työkalun, ajdoc:n. Ajdoc on tarkoitettu korvaamaan javan oma javadoc komento aivan samalla tavalla kuin AspectJ:n ajc korvaa javan javac:in. Ajdoc luo ohjelmakoodista samanlaista dokumentaatiota kuin normaali javadoc:kin, mutta lisää jokaisen metodin kuvaukseen tiedon mitkä kehotteet liittyvät metodiin. Kehotteen nimi on linkki kehotteen omaan javadoc sivuun [ChH04]. 3.7 Tulevaisuus Tulevaisuuden näkymissä AJDT:lle nähdään refaktoroinnit aspekteille kun tutkimus edistyy aiheesta enemmän [Ker05b, Cha05], lisääntynyt tuki aspektikirjastojen kehittämiseen ja käyttämiseen [Cha05] sekä uusia työkaluja rajoittaa informaatiotulvaa mikä syntyy kun ohjelmassa käytetään valtavia määriä läpileikkaavia toimintoja [Cha05]. AJDT:n tulevaisuuden näkymät ovat kuitenkin epävarmat, sillä AJDT:n kehitysprosessi on hyvin käyttäjäläheinen. Kehityksen prioriteetit määrittelevät käyttäjät tarpeineen ja siksi käyttäjiä rohkaistaan osallistumaan keskusteluun tulevista laajennuksista [Cha05].

10 4 Yhteenveto 7 Aspektikielistä Javan AspectJ ja sen kehitystyökalu, AJDT, Eclipse kehitysympäristöön ovat toimiva kokonaisuus olennaisia työkaluja aspektiohjelmointiin. AJDT tarjoaa monia ohjelmakoodin ja aspektikoodin selailutyökaluja, integroidun kääntäjän, ohjelmakoodin kirjoittamista aspektiympäristöön helpottavia toimintoja, integroidun debuggaus työkalun ja dokumentointilaajennuksen javan normaaliin dokumentointityökaluun sekä yksinkertaisen aputyökalun muutoksenhallintaan erityisesti aspektiympäristössä. Työkalujen kehitys on aktiivista ja seuraa tehokkaasti sekä AspectJ:n että Eclipsen kehitystä joten AspectJ:n tulevaisuus näyttää hyvältä. Lähteet AJD05 Asp05 ChH04 Cha05 Ecl05 JBo05 JBu05 JDe05 Ker05a AJDT: AspectJ development tools website. ajdt/. [ ] AspectJ: a seamless aspect-oriented extension to the java tm programming language. [ ] Chapman, M. ja Hawkins, H., Develop aspect-oriented Java applications with Eclipse and AJDT. IBM developerworks. com/developerworks/library/j-ajdt/. [ ] Chapman, M., AOP@Work: New AJDT releases ease AOP development. IBM developerworks. developerworks/java/library/j-aopwork9/. [ ] The Eclipse Development Environment. [ ] JBoss Aspect Oriented Programming (AOP). products/aop. [ ] Borland JBuilder Development Environment. com/jbuilder/. [ ] Oracle JDeveloper integrated development environment. oracle.com/technology/products/jdev/index.html. [ ] Kersten, M., AOP@Work: AOP tools comparison, Part 1. IBM developerworks. j-aopwork1/. [ ]

11 8 Ker05b Kersten, M., AOP tools comparison, Part 2. IBM developerworks. j-aopwork2/. [ ] KLM97 MWB01 Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M. ja Irwin, J., Aspect-oriented programming. Teoksessa Proceedings European Conference on Object-Oriented Programming, Akşit, M. ja Matsuoka, S., toimittajat, osa 1241, Springer-Verlag, Berlin, Heidelberg, and New York, 1997, sivut Murphy, G. C., Walker, R. J., Baniassad, E. L. A., Robillard, M. P., Lai, A. ja Kersten, M. A., Does aspect-oriented programming work? Comm. ACM, 44,10(2001), sivut Net05 NetBeans Development Environment. [ ] SGS02 Spr05 Spinczyk, O., Gal, A. ja Schröder-Preikschat, W., AspectC++: An aspect-oriented extension to the C++ programming language. Proceedings of the Fortieth International Conference on Tools Pacific. Australian Computer Society, Inc., 2002, sivut Spring Framework: Spring AOP: Aspect Oriented Programming with Spring. html. [ ]

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Selainpelien pelimoottorit

Selainpelien pelimoottorit Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

Lisätiedot

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month

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

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos

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

Aika/Datum Month and year Kesäkuu 2012

Aika/Datum Month and year Kesäkuu 2012 Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen

Lisätiedot

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen

Lisätiedot

! #! %! & #!!!!! ()) +

! #! %! & #!!!!! ()) + ! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets

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

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,

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

Luonnontieteiden popularisointi ja sen ideologia

Luonnontieteiden popularisointi ja sen ideologia Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

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

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta

Lisätiedot

Oppimateriaalin kokoaminen ja paketointi

Oppimateriaalin kokoaminen ja paketointi Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

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

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

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

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

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

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

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

Lisätiedot

5. HelloWorld-ohjelma 5.1

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

Lisätiedot

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

OpenUP ohjelmistokehitysprosessi

OpenUP ohjelmistokehitysprosessi OpenUP ohjelmistokehitysprosessi Sami Männistö Helsinki 14.11.2008 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET Tiedekunta/Osasto Matemaattis-luonnontieteellinen

Lisätiedot

Hallintaliittymän käyttöohje

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

Lisätiedot

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

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa

Lisätiedot

Hellä ensikosketus. Tomi Kiviniemi

Hellä ensikosketus. Tomi Kiviniemi Hellä ensikosketus Tomi Kiviniemi Asialista Vähän debuggauksen filosofiaa. GDB:n peruskäyttö Netbeansissä. GDB:n peruskäyttö komentoriviympäristössä. Hieman edistyneempää sähellystä komentoriviympäristössä.

Lisätiedot

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Lisätiedot

arvostelija Aspektiohjelmointi Juuso Hyvönen Helsinki Kandidaatintutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

arvostelija Aspektiohjelmointi Juuso Hyvönen Helsinki Kandidaatintutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos hyväksymispäivä arvosana arvostelija Aspektiohjelmointi Juuso Hyvönen Helsinki 10.12.2012 Kandidaatintutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Työkalut ohjelmistokehityksen tukena

Työkalut ohjelmistokehityksen tukena 1 Työkalut ohjelmistokehityksen tukena Johdanto 2 Työkaluja eli ohjelmistotyötä tukevia ohjelmistoja käytetään ohjelmistoalan yrityksissä nykypäivänä paljon. Työkalut auttavat ohjelmistoalan ihmisiä suunnittelemaan

Lisätiedot

5. HelloWorld-ohjelma 5.1

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

Lisätiedot

UpdateIT 2010: Editorin käyttöohje

UpdateIT 2010: Editorin käyttöohje UpdateIT 2010: Editorin käyttöohje Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: gp@golfpiste.com Sisällys Editorin käyttöohje...

Lisätiedot

Eclipse 3.1 Pikaopas versio 1.0

Eclipse 3.1 Pikaopas versio 1.0 Anne Benson/Tanja Bergius Opintojaksojen atk84d ja ict02d käyttöön 1/17 Eclipse 3.1 Pikaopas versio 1.0 Pikaohjeen sisältö 1. Esittely 2. Asennus ja poistaminen 3. Sovelluskehitys 4. Sovelluksen toteutus

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

OptimePortal ja OptimeEvent versioiden yhteenveto joulukuu

OptimePortal ja OptimeEvent versioiden yhteenveto joulukuu OptimePortal 1.12.2 ja OptimeEvent 1.16.1 versioiden yhteenveto joulukuu 2016 www.helsinki.fi/yliopisto 1 Tilavaraus Tilavarauspyyntöä luotaessa laskutusyksikkö (ns. H-koodi) voidaan nyt valita viimeisessä

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

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

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

Lisätiedot

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

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu JÄRJESTELMÄN KÄYTTÖOHJE LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001

Lisätiedot

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja. Matematiikan oppifoorumi Ylläpito-ohje Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Ohjelmistotuotantoprojekti 17.12.1999 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

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

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

CTRL+F Android-sovellus

CTRL+F Android-sovellus CTRL+F Android-sovellus Vili-Robert Hietala Opinnäytteen raportointi Sähköosasto Toukokuu 2015 KUVAILULEHTI 14.04.2015 Tekijä(t) Vili-Robert Hietala Työn laji Opinnäytteen raportointi Sivumäärä 7 Luottamuksellisuus

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äpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective) testausvaiheessa

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

Tiedostonhallinta. Yleistä

Tiedostonhallinta. Yleistä Tiedostonhallinta Tiedostonhallinnan kautta voi muokata kaikkia näkymän tiedostoja. Sitä tarvitaan näkymien räätälöintiin ja joidenkin asetusten muuttamiseen. Yleistä Tiedostojen tarkastelu ja muokkaus

Lisätiedot

Avoimet ohjelmistokehykset

Avoimet ohjelmistokehykset arvosana päiväys arvostelija Avoimet ohjelmistokehykset Jyri Laukkanen 24.9.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET Tiedekunta/Osasto Fakultet/Sektion

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: SICP kohdat 22.2.3 Riku Saikkonen 2. 11. 2010 Sisältö 1 Linkitetyt listat 2 Listaoperaatioita 3 Listarakenteet 4 Gambit-C:n Scheme-debuggeri Linkitetyt

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.

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

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi

Lisätiedot

Opintokohteiden muokkaus WebOodissa. Sisällys. Aluksi

Opintokohteiden muokkaus WebOodissa. Sisällys. Aluksi Opintokohteiden muokkaus ssa Sisällys Aluksi... 1 Opintokohteen tietojen muokkaaminen... 3 Opettajat... 3 Oppimateriaali... 5 Alemmat opintokohteet... 5 Vastaavat opintokohteet... 6 Kuvaukset... 7 Linkin

Lisätiedot

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0 CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved

Lisätiedot

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 12.1.2017 presemo.aalto.fi/c17 1/12/17 Mikä C? 3 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 4 Mikä C?

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen Asko Ikävalko, k0201291 22.2.2004 TP02S-D Ohjelmointi (C-kieli) Projektityö Työn valvoja: Olli Hämäläinen Asko Ikävalko LOPPURAPORTTI 1(11) Ratkaisun kuvaus Käytetyt tiedostot Tietuerakenteet Onnistuin

Lisätiedot

Ylläpito. Ylläpidon lajeja

Ylläpito. Ylläpidon lajeja Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective)

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

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Pasi Lehtimäki Helsinki 10.9.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010)

Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010) hyväksymispäivä arvosana arvostelija Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010) Tuomas Puikkonen Helsinki 8.1.2010 Geoinformatiikan menetelmät ja kirjallisuus -kurssin harjoitustyö HELSINGIN

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Groovy. Niko Jäntti Jesper Haapalinna Group 31

Groovy. Niko Jäntti Jesper Haapalinna Group 31 Groovy Niko Jäntti Jesper Haapalinna Group 31 Johdanto Groovy on Apachen kehittämä Javaan perustuva dynaaminen oliopohjainen ohjelmointikieli. Kielen kehitys alkoi vuonna 2003, versio 1.0 julkaistiin 2007

Lisätiedot

SQL Buddy JAMK Labranet Wiki

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

Lisätiedot

arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi

arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi hyväksymispäivä arvosana arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi Helsinki 6.4.2005 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

Eclipse & WindowBuilder

Eclipse & WindowBuilder Eclipse & WindowBuilder Yleistä asiaa WindowBuilder on Eclipsessä oleva työkalu, jolla voi graafisesti tehdä käyttöliittymiä. Käyttö perustuu siihen, ettei varsinaista ohjelmakoodia tarvitse itse tehdä,

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

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen ohjelmointiin Jukka Talvitie Valvoja: Professori Jorma Jormakka Paikka: TietoEnator oyj Ongelma Ideologia Lifebelt

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

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

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011 1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011 2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen

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

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245 Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille

Lisätiedot

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-3500 Ohjelmistotuotannon projektityö LOGO:) Ryhmä XXX: Projektiryhmän nimi Projektin nimi Dokumentin nimi Jakelu: (Ryhmä) (Kurssihenkilökunta)

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

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

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

ejuttu ohjeet kuinka sitä käytetään.

ejuttu ohjeet kuinka sitä käytetään. ejuttu ohjeet kuinka sitä käytetään. 1. Artikkelin lisääminen a. Kirjaudu sisään b. Lisää sisältöä c. Artikkeli i. Lisää pääkuva 1. Pääkuvalle kuvateksti ii. Anna artikkelille otsikko iii. Ingressi-kenttään

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 28.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 28.9.2015 1 / 16 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

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

Lisätiedot

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

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat 2 Sisällys 1 Yleistä... 3 2 Ylävalikko... 4 3 Vasemman laidan painikkeet... 5 4 Erikoishinnoittelut ruutu... 6 5 Raportit... 12 1 Yleistä Fivaldi Asiakaskohtaiset

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

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

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,

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