OHJELMISTON ALUSTAN VAIHTO

Koko: px
Aloita esitys sivulta:

Download "OHJELMISTON ALUSTAN VAIHTO"

Transkriptio

1 Opinnäytetyö (AMK) Tietotekniikka Sulautetut ohjelmistot 2012 Samuli Sillsten OHJELMISTON ALUSTAN VAIHTO Unixista Linuxiin

2 OPINNÄYTETYÖ (AMK) TIIVISTELMÄ TURUN AMMATTIKORKEAKOULU Tietotekniikka Sulautetut ohjelmistot Toukokuu s. Ohjaaja: TkL Jari-Pekka Paalassalo Samuli Sillsten OHJELMISTON ALUSTAN VAIHTO Tässä opinnäytetyössä toteutettiin ohjelmiston alustan vaihto. Työssä keskityttiin kääntäjän vaihtumisen tuomiin ongelmiin. Työn tarkoituksena oli kerätä lista ongelmista, joita ohjelmiston kääntämisen sekä testauksen aikana kohdattaisiin. Listaan kirjattiin myös ratkaisut näihin ongelmiin. Kun ohjelmisto saatiin käännettyä uudelle alustalle, asiakas aloitti testit. Asiakas kirjasi virheet niille erikseen varatulle sivustolle. Näiden virheiden lisäksi projektiryhmäläiset korjasivat sellaiset virheet, jotka heille tuli vastaan. Lopputuloksena saatiin lista virheistä sekä vaadittavista korjauksista. Lisäksi dokumentoitiin muutokset, joita kääntäjän vaihtuminen vaati make-tiedostoihin. ASIASANAT: Linux, Unix, alusta, ohjelmistoalusta, C++, kääntäjä, GCC, g++

3 BACHELOR S THESIS ABSTRACT TURKU UNIVERSITY OF APPLIED SCIENCES Degree programme in Information Technology Embedded Software p. Instructor: M. Sc Jari-Pekka Paalassalo, Lic. Sc. (Tech.), Principal Lecturer Samuli Sillsten A PLATFORM CHANGE FOR SOFTWARE The subject of this thesis was to execute a platform change for software. This thesis concentrated on the problems that the change of compiler caused. The purpose of this thesis was to collect a list of problems and their solutions which the project group would encounter while compiling and testing software. After the software had successfully been compiled to a new platform the client started testing. The client posted the errors to a site reserved for them. In addition to these errors, the project group fixed the errors they encountered themselves. The result of the thesis was a list of errors and their solutions. In addition, there is a list of the changes that the change of compiler caused to makefiles. KEYWORDS: Linux, Unix, Software Platform, C++, Compiler, GCC, g++

4 SISÄLTÖ SANASTO 6 1 JOHDANTO 7 2 OHJELMISTO Esityskerros Logiikkakerros Datakerros 10 3 ALUSTA Alustan vaihdon syyt Vanha alusta Uusi alusta 11 4 KÄÄNTÄJÄ Käännöksen vaiheet Kääntäjän valinta 14 5 UUDEN ALUSTAN ASENNUS 16 6 KÄÄNTÄMINEN bittisyys Makefile-tiedostot Kooditiedostot 17 7 TESTAUS Tyhjän lukeminen For-silmukan toiminta 20 8 TULOKSET 21 9 YHTEENVETO 22 LÄHTEET 23

5 LIITTEET Liite 1. Tehdyt muutokset ja korjaukset KUVAT Kuva 1. Ohjelmiston rakenne 9 Kuva 2. Käännöksen vaiheet [8] 12

6 SANASTO EDI Varusohjelma Organisaatioiden välistä standardoitua tiedonsiirtoa. Varusohjelmat ovat atk-järjestelmien toteuttamista ja ylläpitoa varten, sekä koneiden ja tietoliikenteen käynnissä pitämiseen tarvittavia ohjelmia.

7 7 1 JOHDANTO Opinnäytetyön tarkoituksena on seurata ohjelmiston alustan vaihdon tuomia haasteita ja sitä kuinka ne ratkaistaan. Työtä tullaan mahdollisesti käyttämään apuna vastaavissa alustan vaihdoissa. Työn alussa tutustutaan alustan vaihdon kohteena olevaan ohjelmistoon ja sen toteutukseen. Tämän jälkeen käydään läpi tarpeet ja syyt, jonka vuoksi alusta vaihdettiin, sekä tutustutaan tarkemmin alustoihin. Työssä keskitytään kääntäjän vaihtumisen tuomiin ongelmiin. Jotta kääntämisen aiheuttamia ongelmia ymmärrettäisiin paremmin, käydään läpi hieman kääntäjän toimintaa. Työn tuloksena tullaan käymään läpi yleisimmät virhetyypit ja se mistä nämä johtuivat. Tarkoituksena on kerätä liitetiedostoon löydetyt virheet ja näiden korjaukset. Liitetiedostosta löytyy myös sellaiset muutokset, jotka kääntäjän vaihtuminen vaati. Vaadittavia muutoksia, jotka aiheutuvat kääntäjän vaihtumisesta, kutsutaan työssä virheiksi. Näitä ei kuitenkaan suoranaisesti voi lukea virheiksi, koska ohjelmisto on vanhalla kääntäjällä toiminut oikein.

8 8 2 OHJELMISTO Ohjelmiston kehitys on aloitettu vuonna 2000 ja sen tuotantokäyttö on alkanut vuonna Ohjelmisto hallinnoi satamaoperaattorin tavaran kulkua ja sen raportointia sekä hoitaa myös laskutustiedot laskutusohjelmalle. Ohjelmistoa on päivitetty ja ylläpidetty vuosien varrella. Suurin viime aikana tullut päivitys on tuonti-puolen lisääminen järjestelmään helmikuussa Tätä ennen ohjelmisto hallinnoi vain lähtevää tavaraa. [1] Ohjelmistoon kuuluu sataman tilausohjelma (SATI), jolla lähetetään ja vastaanotetaan EDI-sanomia ja hallitaan tulosteiden käsittelyä. SATIn toteutus vastaa itse ohjelman toteutusta ja käsipäätteillä toimiva osa käyttää samoja palveluita kuin Windows-osa, eikä näin ollen ole tarvetta kohdistaa virheitä. [1] Pääasiallisena ohjelmointikielenä ohjelmistossa on käytetty C++:aa. Tietokannat on toteutettu Oraclen tietokantoina. Koodirivejä ohjelmistossa on yhteensä noin 1,75 miljoonaa, joista riviä on Delphi-koodia. Niin liittymistä kutsuttavia BL-palveluita kuin tietokantapalveluitakin on ohjelmistossa lähes tuhat. [1] Ohjelmisto on toteutettu kolmikerrosarkkitehtuurilla, eli ohjelmisto koostuu esityskerroksesta, logiikkakerroksesta ja datakerroksesta [2]. Välikerrosohjelmistona on käytetty Tuxedoa. Tuxedo hoitaa eri kerrosten ja ohjelmiston osien välisen tiedonkulun [3]. Kuvasta 1 selviää ohjelmiston rakenne.

9 9 Kuva 1. Ohjelmiston rakenne 2.1 Esityskerros Esityskerros koostuu kahdesta eri käyttöliittymästä ja noin kolmestakymmenestä muusta liittymästä. Käyttöliittyminä toimivat Windows ja Unix. Windowskäyttöliittymä on toteutettu Borland Delphillä. Delphillä on myös ohjelmoitu näytöille sellaista toiminnallisuutta, joka ei vaadi lisätietojen hakua tietokannoista. Unix-käyttöliittymään otetaan yhteys taljareiden käsipäätteillä. Muista liittymistä löytyy esimerkiksi asiakkaille tarkoitetun internet-pohjaisen ennakkotietojen syöttöjärjestelmän käyttämä liittymä sekä graafisen konttiohjelmiston käyttämä liittymää. 2.2 Logiikkakerros Logiikkakerros on toteutettu kahdessa tasossa: BL-palvelut, joita kutsutaan näytöltä, ja BL-luokat, jotka sisältävät ohjelmalogiikan. BL-palveluissa kutsutaan

10 10 luokkia ja metodeita, jotka sijaitsevat BL-luokissa. Näin pidetään BL-palvelut siistinä ja lisätään uudelleenkäytettävyyttä. BL-luokiin on ohjelmoitu ohjelmiston toiminnallisuus. BL-luokista kutsutaan datakerroksen tietokantapalveluita, joiden avulla tehdään haut, tarkastukset ja päivitykset. 2.3 Datakerros Datakerros koostuu erinäisistä tietokantapalveluista. Haut, listahaut, päivityspalvelut ja poistopalvelut ovat näistä yleisimmät. Sql-haut on toteutettu pääosin automaattihakuina mutta erikoisempia ja harvinaisia tapauksia varten on käytetty manuaalihakuja.

11 11 3 ALUSTA Alustalla tarkoitetaan laitteistoa ja ohjelmistoliittymiä, jotka mahdollistavat ohjelmistojen suorittamisen. Tyypillisesti alustaan sisältyy laitteisto, käyttöjärjestelmä, ohjelmointikieli sekä käyttöliittymä. [4] Alusta on tärkeä osa ohjelmistokehityksessä, koska sen valinnan mukaan määräytyy muut mahdollisesti käytettävät varusohjelmat. [4] 3.1 Alustan vaihdon syyt Ohjelmiston alustan vaihdolle on useita syitä. HP-UX alustaa ei enää päivitetä eikä se näin ollen tue uusimpia Tuxedon versioita. Myös Tuxedon lisenssit ovat kalliimmat HP-UX:lle kuin Linuxille. Koska Tuxedon lisenssit ovat prosessorien core kohtaisia, tarvitaan uudemmalla 64-bittisellä alustalla paljon vähemmän lisenssejä. Lisäksi alustan vaihdolla haluttiin taata arkkitehtuurin mahdollisimman hyvä jatkuvuus. [5] [6] 3.2 Vanha alusta Vanhana alustana toimiva HP-UX on HP:n versio UNIX-käyttöjärjestelmästä. Alustalla on käytetty Tuxedon versiota 7 ja kääntäjänä on käytetty ac++:n versiota A Tulostuspalveluissa käytetään Adoben JetFormia. 3.3 Uusi alusta Uudeksi alustaksi tulee Intel Xeon 64-bittisellä prosessorilla varustettu kone, jolle asennetaan SUSE Linux Enterprise Server 11 SP1 -käyttöjärjestelmä. Koneelle asennetaan Tuxedon versio 11gR1. Kääntäjänä käytetään GNU kääntäjä g++:n versiota 4.3. Tietokannat on sijoitettu omille tietokantapalvelinkoneilleen, eikä näin ollen tietokantoihin tule päivityksiä. [6]

12 12 4 KÄÄNTÄJÄ Kääntäjä on tietokoneohjelma, joka kääntää ohjelmointikoodia tietokoneen ymmärtämään binäärimuotoon. Toisin sanoen kääntäjä siis mahdollistaa ihmiselle ymmärrettävän koodin kirjoittamisen. [7] 4.1 Käännöksen vaiheet Kuvassa 2 on kuvattu kääntäjän toiminta ja sen suorittamia toimenpiteitä. Kaikki kääntäjät eivät välttämättä käy joka vaihetta läpi. Kuva 2. Käännöksen vaiheet [8] Leksikaalianalyysistä (Lexical Analyzer) ja syntaktisesta analyysistä (Syntactic Analyzer) voidaan käyttää yhteisnimeä jäsennys. Ensimmäisessä vaiheessa,

13 13 leksikaalianalyysissä, lähdekoodi pilkotaan merkityksellisiksi symboleiksi säännöllisten lausekkeiden kieliopin mukaan. Esimerkiksi (tasku)laskinohjelma selaa syötettyjä näppäilyjä "12*(3+4)^2" ja pilkkoo sen tokeneiksi: 12, *, (, 3, +, 4, ), ^, ja 2. Kukin on merkityksellinen symboli aritmeettisen lauseen kontekstissa. Jäsentimessä voi olla sääntö, että merkit *, +, ^, ( ja ) ovat uuden tokenin aloitusmerkkejä. Siten merkityksettömiä tokeneita, kuten 12* tai (3, ei generoida. [9] Jäsennyksen toisessa vaiheessa tarkistetaan, että tokenit muodostavat hyväksyttävän lausekkeen. Tämä tehdään tavallisesti kontekstivapaiden kielioppien kanssa. Ne määrittelevät rekursiivisesti komponentit, jotka voivat muodostaa lausekkeen ja missä järjestyksessä niiden on esiinnyttävä. [9] Semanttisessa analyysissä tutkitaan ilmaisujen merkityksen järkevyyttä. Toisin sanottuna semanttisessa analyysissä tutkitaan muuttujien ja aliohjelmien tyypit, kontrollivuo sekä nimien oikeaa käyttöä. [10] Koodin generointivaiheessa tapahtuu itse käännös. Tässä vaiheessa muutetaan koodi tietokoneen ymmärtämään muotoon. [8] Viimeinen vaihe on optimointi. Nykypäivän optimoivat kääntäjät ovat hyvin tehokkaita optimoimaan koodia. Usein on viisasta jättää koodin viritys kääntäjän huoleksi. Tarkastellaan tätä esimerkin avulla. Oletetaan, että haluttaisiin ohjelman laskevan kaksiulotteisen taulukon alkiot yhteen. Tarkastellaan ensin suoraa ja helppoa tapaa toteuttaa tämä, jonka jälkeen käydään läpi esimerkki, kuinka optimointi voitaisiin toteuttaa. Koodiesimerkissä 1 on yksi, ja varmasti hyvin yleinen, toteutus tapa tällaiselle toiminnallisuudelle. [11]

14 14 Koodiesimerkki 1. Lasketaan taulukon alkiot yhteen for-silmukoissa [11] Koska taulukon alkiot sijaitsevat fyysisessä muistissa peräkkäisissä muistiosoitteissa, voidaan koodia optimoida käymällä muistiosoitteet peräkkäin läpi osoitinmuuttujan avulla. Koodiesimerkissä 2 on optimoitu koodi. [11] Koodiesimerkki 2. Lasketaan taulukon alkiot yhteen osoitinmuuttujaa apuna käyttäen [11] Jos nämä kaksi esimerkkiä kääntäisi ja suorittaisi, saataisiin samanlaisia suoritusaikoja, koska kääntäjä itse optimoisi koodin kuvassa 3 esitetyllä tavalla. Tämän kaltaisten optimointien teko olisi siis pelkästään ajan hukkaa oikeaa ohjelmaa ohjelmoidessa. 4.2 Kääntäjän valinta Kääntäjän valintaan voi vaikuttaa moni tekijä. Jokaiselle ohjelmointikielelle on olemassa omat kääntäjänsä. Tästä syystä tuleekin ensin tutustua kääntäjävaihtoehtoihin, joita valitulle kielelle on. Toiseksi kääntäjän valintaan vaikuttaa käytettävä alusta. Kaikki kääntäjät eivät toimi kaikilla alustoilla, joten alusta tulee tietää ennen kääntäjän valintaa. [12]

15 15 Hinta on yksi alustan valintaan vaikuttavista tekijöistä. Kannattaa valita maksuton kääntäjä, mikäli tämä vain on mahdollista. Lisäksi työpaikka tai muu ryhmä, jossa työskentely tapahtuu, voi määrätä tietyn kääntäjän käytöstä. [12]

16 16 5 UUDEN ALUSTAN ASENNUS Uuden alustan asennus tapahtui kolmannen osapuolen toimesta ja se suoritettiin suoraan asiakkaan omalle koneelle. Ennen käännöksien aloittamista ryhmälle jäi Tuxedon palvelin sekä openssl-kirjaston asentaminen. Näissä kummassakaan ei tullut mitään tavallisuudesta poikkeavaa vastaan. Lisäksi Tuxedon asetukset piti määrittää ja luoda Linuxille käyttäjätunnukset. [1]

17 17 6 KÄÄNTÄMINEN Kääntäminen päätettiin toteuttaa kokeilemalla, koska projektiryhmällä ei ollut aiheesta aiempaa kokemusta. Aina yhden ongelman ratkettua koitettiin kääntämistä uudestaan ja alettiin selvittää, mistä seuraava virheviesti johtui. Näin toimittiin, kunnes ohjelma saatiin kääntymään ongelmitta bittisyys Uuden alustan 64-bittisyys aiheutti suuren osan ongelmista. Aluksi Oracle oli asennettuna sekä 32- että 64-bittisenä. Käännös ei kuitenkaan onnistunut, joten Oracle jouduttiin asentamaan uudestaan ainoastaan 32-bittisenä. 6.2 Makefile-tiedostot Vanhoja Makefile-tiedostoja päätettiin käyttää ja tehdä muutokset niihin. Koska kääntäjä oli muuttunut, piti se ilmoittaa Makefile-tiedostoille. Kääntäjän vaihtumisen myötä acc-kääntäjän komento +O1, jolla säädetään optimoinnin tasoa, piti poistaa, koska kyseistä komentoa ei g++:ssa ole. Makefile-tiedostossa tuli ilmoittaa, että käännöksestä haluttiin 32-bittinen, koska muuten kääntäjä käänsi tiedostot 64-bittisiksi. Joissain Makefile-tiedostoissa oli turhia komentoja. Ennen hyödyttömät komennot estivät nyt tiedostojen kääntymisen. Komennot $(ORALIBS) ja lsql poistettiin näistä tiedostoista. 6.3 Kooditiedostot Kooditiedostoissa oli kohtia, jotka estivät kääntymisprosessin. Tällaisia olivat ainakin kirjastojen muuttuneet nimet, esim. iostream.h -> iostream. Lisäksi ongelmia aiheutti acc-kääntäjän ominaisuus, joka toimi C++:n sääntöjen vastai-

18 18 sesti. acc-kääntäjä määritteli for-silmukan kierroslaskurin ylemmälle tasolle ja muuttujaa pystyi käyttämään for-silmukan jälkeenkin. Tämä ongelma ratkaistiin esittelemällä muuttuja yleisesti ennen ensimmäistä silmukkaa, jossa sitä käytettiin. Koodiesimerkissä 3 on esitettynä vanha ja uusi toteutus. Koodiesimerkki 3. For-silmukka Vanhalla toteutuksella: for(int i = 0; i < Lista.GetCount(); i++) { total += i; } printf("i:n arvo: %ld\n", i); for(i = 0; i < total; i++) { total2 += i; } Korjattu: int i = 0; for(i = 0; i < Lista.GetCount(); i++) { total += i; } printf("i:n arvo: %ld\n", i);... Lauseen using namespace std; lisääminen vaadittiin muutamaan tiedostoon. Syitä, miksi g++-kääntäjä vaati lauseen lisäämisen ja acc oli toiminut ilman, ei tutkittu.

19 19 7 TESTAUS Kun tiedostot oli saatu käännettyä ja ohjelmisto käyntiin uudella alustalla, ohjelmisto testattiin. Alustan muuttumisen jälkeen tuli testata jokainen ominaisuus, jonka ohjelmisto sisälsi. Ohjelmiston laajuuden vuoksi testaamista oli hyvin paljon. Testattavien tapausten suuren määrän vuoksi asiakas suoritti testauksen, mikä mahdollisti ryhmän keskittymisen löydettyjen virheiden korjaamiseen. Suurin osa virheistä kaatoi palvelun, ja ne olivat näin ollen helppo todeta, mutta ohjelmistossa oli myös virheitä, jotka eivät yhtä selvästi tulleet esille. Testauksissa löydettiin lisäksi virheitä, jotka eivät johtuneet alustan vaihtumisesta. Näihin virheisiin ei tässä työssä kiinnitetä huomiota. 7.1 Tyhjän lukeminen Ehdottomasti suurimman osan virheistä aiheutti tyhjän lukeminen. Nämä virheet olivat joko listan ensimmäisestä alkiosta tiedon lukeminen tai tyhjän char*- muuttujan käsittely. Listojen ensimmäisestä alkiosta lukeminen korjattiin tarkastamalla, oliko listanssa yhtään alkiota, ennen kuin luettiin ensimmäistä alkiota. Niissä kohdissa, joissa ensimmäisen alkion lukeminen tapahtui vanhoissa tarkastustulosteissa, poistettiin rivi tai kommentoitiin rivi pois. Koodiesimerkissä 4 on lisätty tarkastus ennen ensimmäisestä alkiosta tiedon lukemista. Koodiesimerkki 4. Listan tarkastus ennen lukua int luku = 0; if(lista.getcount() > 0){ // Lisätty tarkistus // Nyt tiedetään ettei lista ole tyhjä. // Voidaan lukea ensimmäisestä alkiosta luku = Lista[0].GetValue(); printf( Listan alkion arvo: %ld\n, Lista[0].GetValue()); }

20 20 char*-muuttujien käsittelyssä tarkastettiin, oliko char*-muuttujan arvo eri kuin nolla, minkä jälkeen voitiin tarkastaa esim. pituus. Vaikka korjaus oli yksinkertainen, oli joissain tiedostoissa samaa virhettä hyvin paljon ja monen if-, for- tai while-lauseen sisällä. Tästä syystä joissain tapauksissa virheen löytäminen oli ongelmallista. Mistään ei myöskään pystynyt tarkistamaan, mikä kohta tarkalleen aiheutti virheen. Virheen sijainti piti päätellä viimeisestä tulosteesta ennen palvelun kaatumista tai seurata koodia virheen löytymiseksi. Tässä kohtaa olisi ollut mahdollista käyttää virheiden jäljittäjä, mutta niitä ei haluttu, koska ne olisivat estäneet samanaikaisen testaustoiminnan. 7.2 For-silmukan toiminta For-silmukan käyttö tietokantapalveluiden hakujen tulosten läpikäynnissä kaatoi palvelun. Tämän virheen löytäminen oli ongelmallista, koska kohta oli ennen toiminut oikein eikä kääntäjä antanut virheilmoitusta siitä. Pääasiassa vastaavat kohdat oli toteutettu while-silmukalla, mutta muutamassa kohtaa oli käytetty forsilmukkaa (Koodiesimerkki 5). Koodiesimerkki 5. Tietokantahaun tulosten läpikäyminen table.movefirst(); /*for( ;! table.iseof();table.movenext()){ tietokantalista.addtolist((void*)&table); }*/ while(!table.iseof()){ tietokantalista.addtolist((void*)&table); table.movenext(); } Esimerkissä näkyy, kuinka for-silmukalla toteutettu osa on kommentoitu pois ja korvattu vastaavalla while-silmukalla. Päällisin puolin for-silmukalla tehdyn toteutuksen pitäisi tehdä sama kuin while-silmukalla. Asiaa ei kuitenkaan lähdetty sen enempää tutkimaan, vaan todettiin, että on nopeampaa korjata virheelliset toteutukset.

21 21 8 TULOKSET Alustan vaihdon työmäärä yllätti suuruudellaan niin asiakkaan kuin projektiryhmänkin. Koska Linux on Unixin kaltainen käyttöjärjestelmä, odotettiin koodin kääntymisen ja toimintaan saamisen vaativan huomattavasti vähemmän työtä kuin se todellisuudessa aiheutti. [5] Korjattuja virheitä ei kirjattu, joten ei ole tietoa, kuinka monta virhettä on korjattu. Virheitä ei kirjatt,u koska jotkut projektiryhmäläiset tekivät projektia toisten projektien ohessa. Toinen syy tähän on se, että vaikka asiakas suoritti testit, projektiryhmäläiset korjasivat virheitä, joita heille tuli itselleen vastaan niitä mihinkään kirjaamatta. Projektin myötä selvisi hyvin, kuinka erilaisia kääntäjät voivat olla. Vaikka kieli ja lopputulos on määritelty, ei kääntäjille ole määritelty, kuinka lopputulokseen tulee päästä. Tästä syystä kääntäjät voivat erota toisistaan. Esimerkiksi muuttujien muistipaikkojen käsittelyn erilaisuus aiheutti paljon virheitä.

22 22 9 YHTEENVETO Tässä työssä toimittiin osana ohjelmiston alustan vaihdon suorittavaa projektiryhmää ja seurattiin alustan vaihdon kulkua. Virheitä tulee varmasti vielä löytymään lisää, kun uutta alustaa aletaan käyttää tuotannossa. Alustan vaihto ennen ohjelmiston testauksen aloittamista sujuin hyvin. Ensimmäiset ongelmat tulivat esille vasta sitten, kun ohjelmistoa käännettiin. Näistä ongelmista suurin osa aiheutui uuden alustan 64-bittisyydestä. Suurin osa testaamisvaiheen aikana ilmenneistä virheistä johtui huonoista ohjelmointitavoista. Esimerkiksi listaa luettaessa tulee aina muistaa tarkistaa, ettei lista ole tyhjä. Koska ohjelmisto on vanha ja hyvät ohjelmointitavat ovat yleistyneet, on oletettavissa, että mitä uudempi ohjelmisto on, sitä helpommin onnistuu alustan vaihto. Tämä on kuitenkin vain olettamus, eikä mahdollisia työmääräarviota voida laskea sen mukaan.

23 23 LÄHTEET 1. Sivonen, Ville, henkilökohtainen keskustelu, Three Layer Architecture in C#.NET, [Verkkodokumentti]. Saatavilla: (luettu ) 3. Middleware, [www-dokumentti]. Saatavilla: (luettu ) 4. Computing platform, [www-dokumentti]. Saatavilla: (luettu ) 5. Asiakas, henkilökohtainen keskustelu, Asiakkaan oma esiselvitys, (luettu ) 7. Ohjelmointikielen kääntäjä, [www-dokumentti]. Saatavilla: (luettu ) 8. Compilers and Translators, [www-dokumentti]. Saatavilla: (luettu ) 9. Jäsennys, [Verkkodokumentti]. Saatavilla: (luettu ) 10. Semanttinen analyysi, [www-dokumentti]. Saatavilla: (luettu ) 11. Ohjelmointikielten ja kääntäjien vaikutukset ohjelman suorituskykyyn, [wwwdokumentti]. Saatavilla: (luettu ) 12. What are the differences between C++ compilers?, [www-dokumentti]. Saatavilla : (luettu )

24 Liite 1/1 (2) Tehdyt muutokset ja korjaukset Tälle liitteelle on kerätty luettelomaisesti tehdyt muutokset ja korjaukset Makefile-tiedostot Lista muutoksista jotka tehtiin Makefile-tiedostoihin Muutos Vaikutus Lisätiedot Tuxedon version muutos Ei löytänyt tuxedoa TUXDIR=/progs/tuxedo/7.1-> TUXDIR=/app/tuxedo11 Kääntäjän muutos Ei löytänyt kääntäjää CC=aCC -> CC=g++ acc:n optimoinnin Ei kääntynyt +O1\ poistettu komento pois Kääntö 32-bittiseksi Ei toiminut 64-bittisenä -m32 komennolla Turhat komennot pois Ei kääntynyt $(ORALIBS) ja lsql poistettu Muut tiedostot Tässä kohdassa käsitellään muut virheet jotka estivät kääntymisen, kaatoivat palvelun tai aiheuttivat ohjelman toimimattomuuden. Alla lista virheistä Ongelma Kuvaus ongelmasta Vaikutus Korjaus Peruskirjastojen nimet Joidenkin peruskirjastojen nimet olivat muuttuneet Ei kääntynyt Muutettu: iostream.h -> iostream fstream.h -> fstream string.h -> string nimiavaruus Vaadittiin using namespace Ei kääntynyt Lisätty ko. lause ltd; ltoa functio Funktio puuttui Ei kääntynyt Koodattu itse vastaava funktio samalla nimellä

25 Liite 1/2 for-silmukan kierroslaskurin esittely Tyhjien lukeminen char* muuttujan käsittely Muuttujien esittely Tuxedolle acc-kääntäjällä toimi C++:san sääntöjen vastaisesti, muuttuja säilyi silmukan jälkeen Luettiin listan ensimmäisestä alkiosta, käsiteltiin tyhjää muuttujaa tyhjän char* muuttujan käsittely, esim pituuden tarkistus (strlen(tyhjä char*)) Jotkut char*-muuttujat esiteltiin liian lyhyinä Ei kääntynyt Esitelty muuttuja ennen for-silmukkaa mahdollistaen sen käytön myöhempänä Kaatoi palvelun Tarkistus ettei ole tyhjä ennen lukua Kaatoi palvelun Tehty omia funktioita, tarkistettu ennen käyt- tämistä onko char* tyhjä Kaatoi palvelun Lisätty muuttujien pituutta printf- Annetaan vähemmän Kaatoi pal- Kommentoitu tulostus tulostaminen parametreja kuin odote- velun pois tai korjattu taan for-silmukan Tietokantapalvelun haun Kaatoi pal- Vaihdettu toteutus whi- käyttö tulosten läpikäynnissä velun le-silmukkaan Viittausmuuttu- Toimivat erikoisesti Toimi väärin Muutettu toteutusta jat / Ei toiminut Moniperinnän Koodeja ei löytynyt Toimi väärin Kopioitu koodit header- puuttuminen / Ei toiminut tiedostoihin Set-metodin Kun parametriksi annettiin Toimi väärin Poistettu turhana. Set- käyttö saman muuttujan Get- / Ei toiminut metodi tyhensi itsensä metodi ennen asetusta, eli tyhjensi myös mitä oltiin asettamassa. char*- Mikäli metodi palautti Toimi väärin Lisätty static, Muuttu- pa- muuttujan lautus char*-muuttujan piti se määritellä staticmuuttujaksi / Ei toiminut jan muistialue vapautetaan ennen kuin se palautetaan kutsuvalle metodille.

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

T Testiraportti - järjestelmätestaus

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

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

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

Lisätiedot

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

Uutta Remote Support Platform 3.0 -versiossa

Uutta Remote Support Platform 3.0 -versiossa Uutta Remote Support Platform for SAP Business One Asiakirjaversio: 1.0 2012-10-08 Kaikki maat Typografiset merkintätavat Kirjasintyyli Esimerkki Näytöstä lainatut sanat tai merkit. Näitä ovat kenttien

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

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

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

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

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

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

Mitä Uutta - SURFCAM V5.1 Sisällysluettelo

Mitä Uutta - SURFCAM V5.1 Sisällysluettelo VER CAD/CAM Software with world class precision and control... Mitä uutta Mitä Uutta - SURFCAM V5.1 Sisällysluettelo 1) Parannettu muistinhallinta 32 ja 64 bitin järjestelmissä 3 2) Konesimulointi Optio

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

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

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

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

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

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Asteri Laskutus (Dos)

Asteri Laskutus (Dos) Asteri Laskutus (Dos) Vuosipäivitys 3.11.2007 Päivityksen asentaminen... 4 Uudelle koneelle siirtäminen... 6 - pikakuvake Vistan työpöydälle... 7 Tulostaminen kun tulostaminen ei onnistu... 11 - tulostaminen

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

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

Lisätiedot

Menetelmäraportti Ohjelmakoodin tarkastaminen

Menetelmäraportti Ohjelmakoodin tarkastaminen Menetelmäraportti Ohjelmakoodin tarkastaminen Sisällysluettelo 1. Johdanto...3 2. Menetelmän kuvaus...4 2.1. Tarkastusprosessi...4 2.1.1. Suunnittelu...4 2.1.2. Esittely...5 2.1.3. Valmistautuminen...5

Lisätiedot

Kuopio Testausraportti Kalenterimoduulin integraatio

Kuopio Testausraportti Kalenterimoduulin integraatio Kuopio Testausraportti Kalenterimoduulin integraatio Kuopio, testausraportti, 22.4.2002 Versiohistoria: Versio Pvm Laatija Muutokset 0.1 22.4.2002 Matti Peltomäki Ensimmäinen versio 0.9 22.4.2002 Matti

Lisätiedot

Suunnitteluvaihe prosessissa

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

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Useampitasoiset ADT:t Käytetään esimerkkiohjelmaa Ratkaisuyritys 1 Ratkaisuyritys 2 Lopullinen ratkaisu Lopullisen ratkaisun toteutusyritys Lopullisen ratkaisun oikea toteutus

Lisätiedot

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan

Lisätiedot

17. Ohjelmoinnin tekniikkaa 17.1

17. Ohjelmoinnin tekniikkaa 17.1 17. Ohjelmoinnin tekniikkaa 17.1 Sisällys for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen CVS Versionhallintajärjestelmä Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen Käytetään komentoriviltä, myös graafisia käyttöliittymiä saatavilla CVS Kaikki tiedostot

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

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Kuopio Testausraportti Asiakkaat-osakokonaisuus Kuopio Testausraportti Asiakkaat-osakokonaisuus Kuopio, testausraportti, 25.3.2002 Versiohistoria: Versio Pvm Laatija Muutokset 0.1 11.2.2002 Matti Peltomäki Ensimmäinen versio 0.9 11.2.2002 Matti Peltomäki

Lisätiedot

Käyttöohje. Energent MagiCAD plugin

Käyttöohje. Energent MagiCAD plugin Käyttöohje Energent MagiCAD plugin Sisältö 1. Yleistä 1 Dokumentin sisältö... 1 Ohjelman asennus... 1 Vaadittavat ohjelmistot... 1 Asennus... 1 Ohjelman käynnistys... 2 2. Toiminnallisuudet 3 Insert Energent

Lisätiedot

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 1. Testattavat asiat Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 selainyhteensopivuustesti käyttäen Suomessa eniten käytössä olevia selaimia. Uuden keräyksen lisääminen

Lisätiedot

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Datatähti 2015 A: Omenat Aikaraja: 2 s Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Uolevi haluaa saada mahdollisimman monta omenaa, mutta

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

KYMENLAAKSON AMMATTIKORKEAKOULU

KYMENLAAKSON AMMATTIKORKEAKOULU 1 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Ole Halonen GNU-ohjelmointityökalut Linux-järjestelmät 206101310 Seminaarityö 22.11.2012 2 Sisällysluettelo 2 1 Johdanto

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Ville Toiviainen Tomi Tuovinen Lauri af Heurlin Tavoite Projektin tarkoituksena on luoda valmis sekvenssiohjelma säätötekniikan

Lisätiedot

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys ClassPad fx-cp400 päivitys + Manager for ClassPad II Subscription päivitys Käyttöjärjestelmän ja Add-in sovellusten päivityksestä Casio suosittelee aina viimeisimmän käyttöjärjestelmän asentamista. Tällöin

Lisätiedot

Aditro Tikon ostolaskujen käsittely versio SP1

Aditro Tikon ostolaskujen käsittely versio SP1 Toukokuu 2012 1 (8) Aditro versio 6.1.2 SP1 Päivitysohje Toukokuu 2012 2 (8) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Application Pool Identity...

Lisätiedot

Tehtävä 2: Säännölliset lausekkeet

Tehtävä 2: Säännölliset lausekkeet Tehtävä 2: Säännölliset lausekkeet Kun tietokoneohjelmalla luetaan käyttäjän syötettä, olisi syöte aina syytä tarkistaa. Syötteessä voi olla vääriä merkkejä tai merkkejä väärillä paikoilla (syntaktinen

Lisätiedot

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B T-76.5158 SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B T-76.5158 SEPA - Pariohjelmointi 2 (7) VERSION HALLINTA Versio Päivä Tekijä Kuvaus 0.1 5.12.2006 Tuomas Tolvanen Ensimmäinen

Lisätiedot

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6 1 INTERBASE 5.0 PÄIVITYS VERSIOON 5.6 HUOM: Tämä ohje on tarkoitettu yksittäisen koneen päivittämiseen, mikäli InterBase on asennettu serverille ota yhteys DL Software Tukeen. HUOM: Mikäli koneessasi on

Lisätiedot

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro: KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Lisätiedot

Asteri Palkanmaksu Dos Vuosipäivitys 5.11.2007

Asteri Palkanmaksu Dos Vuosipäivitys 5.11.2007 Asteri Palkanmaksu Dos Vuosipäivitys 5.11.2007 Päivityksen asentaminen...4 Uudelle koneelle siirtäminen...6 - pikakuvake Vistan työpöydälle...7 - moniyrityskäytön polkumäärittelyt...9 - jos åäö näppäimistä

Lisätiedot

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

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

Lisätiedot

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT Linux ylläpitäjän opas Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT Lyhyesti - Linux on eräs versio Unix käyttöjärjestelmästä jonka kehitys alkoi jo vuonna 1969 AT&T labroratorioissa

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut www.helsinki.fi

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut www.helsinki.fi Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut Ohjelmointikurssin järjestäminen Helsingin yliopiston Ohjelmoinnin MOOC-kurssimateriaalin avulla 15.4.2016 1 Linkki Tietojenkäsittelytieteen

Lisätiedot

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen Näissä ohjeissa käydään läpi Microsoftin MS-DOS 6.22 -käyttöjärjestelmän asennus Microsoftin Virtual PC 2007 -virtuaalikoneeseen. Asennusta varten sinulla on oltava Virtual PC 2007 asennettuna tietokoneellasi

Lisätiedot

Palvelukuvaus Datatalkkari 19.5.2016 LOUNEA DATATALKKARI PALVELUKUVAUS. www.lounea.fi

Palvelukuvaus Datatalkkari 19.5.2016 LOUNEA DATATALKKARI PALVELUKUVAUS. www.lounea.fi Palvelukuvaus Datatalkkari 19.5.2016 1 LOUNEA DATATALKKARI PALVELUKUVAUS 2 Sisällysluettelo 1. YLEISKUVAUS... 3 2. PALVELUKOMPONENTIT... 3 2.1. Käyttöönotto ja opastus... 3 2.2. Huolto ja asennus... 3

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

Lisätiedot

1. NetBeans-ohjelman asennus ja käyttöönotto pva

1. NetBeans-ohjelman asennus ja käyttöönotto pva 1. NetBeans-ohjelman asennus ja käyttöönotto 11.7.2016 pva NetBeans on ohjelmointiympäristö, IDE (Integrated Development Environment) jonka avulla opiskelemme laiteläheistä C-ohjelmointia. Oletus Sinulla

Lisätiedot

Uutta Remote Support Platform 3.1 -versiossa

Uutta Remote Support Platform 3.1 -versiossa What's New Asiakirjaversio: 1.0 2014-05-09 Asiakirjaversiot Seuraavassa taulukossa esitellään asiakirjan tärkeimmät muutokset. Versio Pvm Kuvaus 1.0 2014-05-09 Ensimmäinen versio 2 All rights reserved.

Lisätiedot

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

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

Lisätiedot

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0 RockID-varastonhallintajärjestelmän käyttöohje v. 1.0 Yleistä Rockstar lukijakäyttöliittymä Tuotteiden lukeminen lähtevään tilaukseen Tilaukseen kuulumattomat tuotteet Tuotteiden lukeminen tilauksesta

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

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

Lisätiedot

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori TIE-21204 Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2 Antti Jääskeläinen Matti Vuori Työn yleiset järjestelyt 14.9.2015 2 Valmistautuminen Ilmoittaudu kurssille Lue harjoitustyön nettisivut

Lisätiedot

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori Testitapaukset - Koordinaattieditori Sisällysluettelo 1. Johdanto...3 2. Testattava järjestelmä...4 3. Toiminnallisuuden testitapaukset...5 3.1 Uuden projektin avaaminen...5 3.2 vaa olemassaoleva projekti...6

Lisätiedot

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen Yksikkötestaus Kattava testaus Moduulitestaus Ohjelman testaus 1 Kattava testaus Testauksen perimmäinen tarkoitus on LÖYTÄÄ VIRHEITÄ Testaus pitäisi olla täydellinen: - Jokainen pyydetty arvo pitäisi testata

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

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

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Tulostimen asentaminen Software and Documentation -CD-levyn avulla

Tulostimen asentaminen Software and Documentation -CD-levyn avulla Sivu 1/6 Yhteysopas Tuetut käyttöjärjestelmät Software and Documentation -CD-levyltä voi asentaa tulostinohjelmiston seuraaviin käyttöjärjestelmiin: Windows 7 Windows Server 2008 R2 Windows Server 2008

Lisätiedot

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

Julkaisun laji Opinnäytetyö. Sivumäärä 43

Julkaisun laji Opinnäytetyö. Sivumäärä 43 OPINNÄYTETYÖN KUVAILULEHTI Tekijä(t) SUKUNIMI, Etunimi ISOVIITA, Ilari LEHTONEN, Joni PELTOKANGAS, Johanna Työn nimi Julkaisun laji Opinnäytetyö Sivumäärä 43 Luottamuksellisuus ( ) saakka Päivämäärä 12.08.2010

Lisätiedot

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

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

Lisätiedot

ASTERI TILAUSTENKÄSITTELY. Vuosipäivitys

ASTERI TILAUSTENKÄSITTELY. Vuosipäivitys ASTERI TILAUSTENKÄSITTELY Vuosipäivitys 8.10.2015 Atsoft Oy Mäkinen www.atsoft.fi Puh (09) 350 7530 atsoft@atsoft.fi SISÄLLYSLUETTELO 1 PÄIVITYKSEN ASENTAMINEN... 4 2 ASTERI TILAUSTENKÄSITTELYN OHJELMAMUUTOKSIA...

Lisätiedot

AirPrint-opas. Tämä käyttöopas koskee seuraavia malleja:

AirPrint-opas. Tämä käyttöopas koskee seuraavia malleja: AirPrint-opas Tämä käyttöopas koskee seuraavia malleja: HL-340CW/350CDN/350CDW/370CDW/380CDW DCP-905CDW/900CDN/900CDW MFC-930CW/940CDN/9330CDW/9340CDW Versio A FIN Kuvakkeiden selitykset Tässä käyttöoppaassa

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

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

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

Lisätiedot