Ohjelma-analysaattorit
|
|
- Kaija Halonen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelma-analysaattorit Tomi Solala Helsingin yliopisto Tietojenkäsittelytieteen laitos
2 Sisällys 1. Johdanto Ohjelmakoodin oikeellisuuden tarkistus FlexeLint LCLint Ohjelmamittojen analysointi (software metrics) Krakatau Metrics for Java and C/C Ohjelmakoodin visualisointi CC-Rider Ohjelmakoodin automaattinen dokumentointi CC-Rider Yhteenveto... 8 Lähteet... 9
3 Ohjelma-analysaattorit 1/9 1. Johdanto Ohjelmiston koon ja monimutkaisuuden kasvaessa hankaloituu ohjelmiston hallinta ja ylläpito huomattavasti. Virheiden todennäköisyys kasvaa, virheiden havaitseminen, paikantaminen ja korjaaminen vaikeutuvat. Ohjelmiston pienenkin osan muuttaminen saattaa olla riski, koska muutokset voivat aiheuttaa ennalta arvaamattomia seurauksia ohjelmiston muissa osissa. Ohjelmistojen hallintaa ja ylläpitoa vaikeuttaa lisäksi joukko yleisesti tunnettuja ongelmia: Ohjelmiston puutteellinen dokumentointi Ohjelmakoodin dokumentointi on usein aikaa vievää, työlästä ja hankalaa. Lisäksi dokumentit vaativat päivityksen aina koodin muuttuessa. Heikko tai puuttuva dokumentointi vaikeuttaa ohjelmiston hallintaa ja ylläpitoa. Syynä heikkoon dokumentointiin on usein sopivien, dokumentointi työtä helpottavien työkalujen puuttuminen. Ohjelmiston rakenteen analysointi hankalaa Ohjelmiston rakenteen analysointi on usein hankalaa ja työlästä. Suurien järjestelmien rakenteen ja toiminnallisuuden esittäminen järkevässä ja ymmärrettävässä muodossa on vaikeaa, vaikka käytössä olisikin tehtävään sopivia analysointityökaluja. Automaattisen laadunvalvonnan puutteet Ohjelmistoprojekteissa määritellään yleensä jonkinlaiset laatustandardit, joita tuotettavan ohjelmiston tulee noudattaa. Laadunvalvonta ja verifiointi on kuitenkin hankalaa ja epätarkkaa ilman automaattisia työkaluja. Edellä mainittuja ongelmia helpottamaan on kehitetty erilaisia työkaluohjelmia, ohjelma-analysaattoreita. Ohjelma-analysaattorit käyttävät tarkoitukseen sopivia algoritmeja ohjelmien analysointiin ja esittävät analysoinnin tulokset erilaisina raportteina, graafisina esityksinä ja dokumentteina. Ohjelma-analysaattorit voidaan jakaa käyttötarkoituksen perustella karkeasti neljään luokkaan. Käyttötarkoitukset ovat: ohjelmakoodin oikeellisuuden tarkistus ohjelmamittojen (software metrics) analysointi ohjelmakoodin visualisointi ohjelmakoodin automaattinen dokumentointi Seuraavissa luvuissa tarkastellaan ohjelma-analysaattoreita edellä kuvatun luokittelun mukaisesti.
4 Ohjelma-analysaattorit 2/9 2. Ohjelmakoodin oikeellisuuden tarkistus Ohjelmointikielen kääntäjä tarkistaa että käännettävä koodi on kyseisen ohjelmointikielen syntaksin mukaista. Useat kääntäjät kykenevät suorittamaan myös syntaksitarkistusta korkeamman tason analysointia, ja varoittamaan mahdollisista ohjelmointivirheistä. Kääntäjien ohjelmakoodin analysointi ominaisuudet ovat usein kuitenkin melko rajoitettuja. Tämän takia ohjelmakoodin oikeellisuuden tarkistamiseen on kehitetty erillisiä työkaluja, jotka analysoivat ohjelmakoodia monimutkaisia algoritmeja käyttäen. Analysaattoreiden tarkoituksena on löytää ohjelmakoodista mahdollisiksi ohjelmointivirheiksi havaittuja, usein kuitenkin ohjelmointikielen syntaksin mukaisia rakenteita, kuten esimerkiksi alustamattomien muuttujien käyttöä, funktion paluuarvon tarkistamatta jättämistä, muistin käsittely virheitä, jne. Ensimmäinen ohjelmakoodin oikeellisuuden tarkistus työkalu oli S.C.Johnssonin 1970-luvun alkupuolella kehittämä C-koodin analysointi työkalu lint [Dar89]. Lint kykeni melko monipuoliseen C-koodin staattiseen analysointiin. C-kielen kehittyessä, alkuperäisen lintin pohjalta kehitettiin kaksi uutta ohjelma analysaattoria LCLint [LCL00] ja FlexeLint [GIM00] (FlexeLintin PC ympäristössä toimiva versio on nimeltään PC-Lint). Nämä ohjelma analysaattorit ovat vielä nykyäänkin laajassa käytössä. Seuraavissa luvuissa tutustaan lyhyesti FlexeLint ja LCLint ohjelmien toimintaan. 2.1 FlexeLint FlexeLint on Gimpel Softwaren vuonna 1984 kehittämä staattinen C ja C++ lähdekoodin tarkistus ja analysointi työkalu. FlexeLint analysoi lähdekoodia erittäin monipuolisesti. Se etsii lähdekoodista mahdollisia virheitä, epäjohdonmukaisuuksia, suorittaa siirrettävyys testejä, jne. Havaituista virheistä tai mahdollisista virheistä FlexeLint ilmoittaa virheilmoituksilla ja varoituksilla (kuva 1). Analysoinnin laajuutta ja monipuolisuutta kuvaa se että uusimmassa FlexLint versiossa erilaisia virheilmoituksia ja varoituksia on jo yli 700 kappaletta. --- Module: mm001.c _ pxname, g_psmm->smyaddr.stask.u32inst); mm001.c 294 Warning 644: Variable 'pxname' (line 228) may not have been initialized --- Module: mm002.c _ } mm002.c 709 Info 715: Symbol 'p_umoduleid' (line 689) not referenced --- Module: mm900.c mm900.c 1210 Warning 429: Custodial pointer 'pastcpmsgbuf' (line 983) has not been freed or returned Kuva 1: FlexeLint virheilmoituksia
5 Ohjelma-analysaattorit 3/9 2.2 LCLint LCLint on John Guttag:n ja Jim Horning:n kehittämä staattinen C ja C++ lähdekoodin tarkistus ja analysointi työkalu. LCLint on ilmainen ohjelma, sen C-kielinen lähdekoodi on vapaasti saatavilla GPL (GNU General Public License) lisenssin alla. Tämän johdosta LCLintin käyttö on mahdollista kaikissa ympäristöissä joihin on saatavilla ANSI C kääntäjä. LCLint sisältää kaikki normaalit lint toiminnot ja tarjoaa tämän lisäksi normaalia linttiä kehittyneempiä ja vahvempia lähdekoodin tarkistus menetelmiä [Orc00]. Kehittyneemmät tarkistusmenetelmät perustuvat ohjelmoijan ohjelmakoodiin lisäämiin erikoiskommentteihin jotka antavat lisätietoa ohjelman toiminnasta, esimerkiksi olettamuksia funktioiden parametreista, muuttujien arvoista, jne. LCLint tukee siis myös ohjelman semanttisen rakenteen verifiointia. Kuvassa 2 on yksinkertainen esimerkki erikoiskommentoidusta ohjelmasta ja vastaavasta LCLint raportista. static void foo(int *a, int *b) /*@modifies *a@*/ { *a=1, *b=2; } main() { int p=10, q=20; foo(&p, &q); return 0; } LCLint 2.4b --- j.c: (in function foo) j.c:3:11: Undocumented modification of *b: *b = 2 An externally-visible object is modified by a function, but not listed in its modifies clause. (-mods will suppress message) Finished LCLint checking code error found Kuva 2: Erikoiskommentoitu ohjelma ja vastaava LCLint raportti LCLintin kehittäjät ovat kehittäneet LCLinttiä vastaavan työkalun prototyypin myös Java lähdekoodin tarkistamiseen [Eva00]. 3. Ohjelmamittojen analysointi (software metrics) Ohjelmamitoilla (software metrics) kuvataan mm. ohjelman pituutta, kokoa ja vaikeusastetta. Näiden mittojen perusteella voidaan arvioida esimerkiksi ohjelman kompleksisuutta. Ohjelman kompleksisuuden määrittäminen voi olla hyödyllistä, sillä monimutkainen koodi on jo itsessään riskialtis virheille ja monimutkaisuuden kasvaessa myös ohjelman testattavuus vaikeutuu. Lisäksi monimutkainen koodi vaikeuttaa ohjelman ylläpitoa ja päivitystä.
6 Ohjelma-analysaattorit 4/9 Ohjelmamittoja voidaan käyttää ohjelmistoprojekteissa ohjelmakoodin laadunvalvontaan ja verifiointiin. Projektissa voidaan määritellä ohjelmamitoille rajaarvot joiden sisällä ohjelmistokomponenttien tulee olla. Ohjelmistokomponentit voidaan analysoida ohjelmistomitta-analysaattorilla ja saatuja tuloksia voidaan verrata asetettuihin raja-arvoihin. Yleisimmin käytettyjä ohjelmamittoja ovat mm. Halsteadin mitat [Hal77]: ohjelman pituus (program length), ohjelman koko (program volume), ohjelman vaikeusaste / virhealttius (difficulty level / error propeness), ohjelman taso (program level), ohjelman ymmärtämiseen kuluva aika (time to understand a program), virhe-ennuste (bug prediction) sekä McCaben "syklomaattinen" luku (cyclomatic number) joka kuvaa ohjelman loogista kompleksisuutta. 3.1 Krakatau Metrics for Java and C/C++ Krakatau Metrics for Java and C/C++ ohjelmisto [POW00] on ohjelmamittojen analysointityökalu Java ja C/C++ ohjelmointikielille. Ohjelmisto tukee yli 70:tä erilaista ohjelmistomittaa. Kuvassa 3 on esitetty erään ohjelman analysoinnin tulokset. Kuva 3: Krakatau Metrics ohjelmistomitta ikkuna Krakatau Metrics for Java and C/C++ ohjelmisto sisältää monipuoliset työkalut ohjelmistomittojen analysointiin, esittämiseen ja tulkitsemiseen. Ohjelmisto pohjautuu projekteihin. Käyttäjä voi määrittää projektiin kuuluvat tiedostot, konfiguroida projektissa käytettävät ohjelmistomitat ja mahdolliset raja-arvot joiden sisällä ohjelmistokomponenttien mittojen tulee olla. Analysoinnin tulokset ohjelma osaa esittää taulukkoina, erilaisina graafisina kuvina ja HTML dokumentteina. Ohjelmistoa
7 Ohjelma-analysaattorit 5/9 voidaan käyttää myös laadunvalvontaan: asetettujen raja-arvojen ulkopuolelle asettuvat ohjelmistokomponentit voidaan poimia analysointituloksista automaattisesti. 4. Ohjelmakoodin visualisointi Visualisoinnin tarkoituksena on kuvata ohjelman rakenne graafisessa muodossa. Tämä helpottaa usein monimutkaisten ohjelmien rakenteen hahmottamista. Ohjelmakoodin visualisointi helpottaa etenkin huonosti dokumentoitujen tai mahdollisesti kolmannen osapuolen tekemien ohjelmien ymmärtämistä ja analysointia. Useimmat ohjelmakoodin visualisointityökalut osaavat esittää luokat, funktiot, muuttujat, luokka hierarkiat, kutsupuut, kontrolli rakenteet, jne. graafisessa muodossa. Visualisointi työkaluja löytyy kaikille yleisimmin käytetyille kielille, etenkin C++ ja Java ohjelmointikielten visualisointityökalu tarjonta on kattava. 4.1 CC-Rider CC-Rider [WES00] on Western Wares:n valmistama visualisointi- ja dokumentointityökalu C/C++ kielillä toteutetuille ohjelmille. CC-Rider osaa luoda ohjelmakoodista mm. erilaisia luokka hierarkia (kuva 4), funktio kutsu (kuva 5) ja tiedostorakenne kaavioita. Ohjelmisto tarjoaa myös monipuoliset näkymien konfigurointi mahdollisuudet sekä mahdollisuuden navigoida lähdekoodissa ja editoida lähdekoodia suoraan kaavioista. Kuva 4: esimerkki ohjelman luokka hierarkia CC-Riderilla visualisoituna
8 Ohjelma-analysaattorit 6/9 Kuva 5: esimerkki ohjelman kutsupuu CC-Riderilla visualisoituna 5. Ohjelmakoodin automaattinen dokumentointi Ohjelmakoodin dokumentointi on usein aikaa vievää ja hankalaa. Lisäksi dokumentit vaativat päivityksen aina koodin muuttuessa Syynä heikkoon dokumentointiin on usein sopivien, dokumentointi työtä helpottavien työkalujen puuttuminen. Ohjelmakoodin dokumentointia ja dokumenttien ylläpitoa voidaan helpottaa automaattisilla lähdekoodin dokumentointityökaluilla. Dokumentointityökalut luovat dokumentin ohjelmistosta analysoimalla ohjelmiston lähdekoodin rakennetta. Työkalut osaavat sisällyttää dokumentteihin myös ohjelmoijan koodiin lisäämät kommentit. Osa työkaluista tukee myös erikoiskommenttien käyttöä. Erikoiskommenttien avulla ohjelmakoodiin voidaan sisällyttää lisätietoa dokumentointityökalun käytettäväksi. Ohjelmakoodin automaattiset dokumentointityökalut luovat yleensä hierarkkisia, mahdollisesti hyperlinkitettyjä kuvauksia analysoitavasta koodista. Useimmat dokumentointityökalut tukevat ASCII, RTF, PostScript ja HTML dokumentti formaatteja. Automaattisia lähdekoodin dokumentointi työkaluja on saatavilla useimpiin ohjelmointiympäristöihin.
9 Ohjelma-analysaattorit 7/9 5.1 CC-Rider CC-Rider ohjelmisto osaa generoida RTF, ASCII, WinHelp ja HTML muotoisia dokumentteja C/C++ lähdekoodista. Ohjelmisto ei vaadi (eikä tue) lähdekoodiin sisällytettäviä erikoiskommentteja. Ohjelmisto kerää automaattisesti lähdekoodista esimerkiksi muuttujien määrittelyjä edeltävät tai samalla rivillä määrittelyn jälkeen olevat kommentit määriteltävän muuttujan dokumentaatioksi. CC-Rider luo dokumentit erilaisten dokumenttipohjien perusteella. Käyttäjä voi määritellä uusia dokumenttipohjia ja muokata ohjelman mukana tulevia pohjia käyttötarkoitukseen sopiviksi. Ohjelmisto osaa dokumentoida funktiot ja niiden parametrit, makrot, tyyppi määritykset (typedefs), luokat, struktuurit, joukot (unions),enumeraatiot, enumeroidut arvot, luokkien jäsenet, ylikuormitetut nimet, luokka ja funktio pohjat (templates), julkiset, yksityiset, perityt ja suojatut jäsenet, jne. Kuvassa 6 on esimerkki erään luokan automaattisesti generoidusta dokumentista. Kuva 6: Esimerkki CC-Riderilla automaattisesti generoidusta dokumentista
10 Ohjelma-analysaattorit 8/9 6. Yhteenveto Ohjelma-analysaattoreita voidaan käyttää mm. ohjelmakoodin oikeellisuuden tarkistamiseen, ohjelmamittojen analysointiin, ohjelmakoodin visualisointiin ja ohjelmakoodin automaattiseen dokumentointiin. Ohjelmakoodin oikeellisuuden tarkistustyökalut auttavat löytämään ohjelmistosta mahdollisia ohjelmointivirheitä. Ohjelmakoodin oikeellisuuden tarkistustyökaluja voidaan käyttää ohjelmistoprojektin toteutusvaiheessa ohjelmakoodin laadun tarkkailuun ja virheiden poistamiseen. Ohjelmamittojen analysointityökalut laskevat ohjelmakoodista erilaisia mittoja joiden avulla voidaan arvioida esimerkiksi ohjelman kompleksisuutta. Ohjelmamittoja voidaan käyttää ohjelmistoprojekteissa ohjelmakoodin laadunvalvontaan ja verifiointiin esimerkiksi katselmuksissa. Ohjelmakoodin visualisointi- ja rakenteen analysointityökaluilla voidaan ohjelmiston rakenne kuvata graafisessa graafisessa muodossa. Visualisointi- ja rakenteen analysointityökaluista on hyötyä etenkin ohjelmistoprojektin dokumentoinnissa ja ylläpidossa. Ohjelmakoodin automaattiset dokumentointityökalut luovat dokumentin ohjelmistosta analysoimalla ohjelmiston lähdekoodin rakennetta. Automaattisista dokumentointityökaluista on hyötyä etenkin ohjelmiston ylläpidossa. Ohjelmistoon tehdyt muutokset voidaan päivittää dokumentteihin automaattisesti. Tässä esitelmässä mainitut ohjelmat ovat ainoastaan yksittäisiä esimerkkejä erilaisista ohjelma-analysaattoreista. Useimmista esitelmässä mainituista ohjelmista on saatavilla ilmaiset kokeiluversiot.
11 Ohjelma-analysaattorit 9/9 Lähteet Dar89 Eva00 GIM00 Darwin I., Checking C Programs with lint, O'Reilly & Associates, Evans D., Annotation-Assisted Lightweight Static Checking, The First International Workshop on Automated Program Analysis, Testing and Verification (ICSE 2000), Feb 2000 Gimpel Software Home Page, <URL: Hal77 Halstead M.H., Elements of Software Science, 1977 LCL00 LCLint Home Page, <URL: Orc00 Orcero D. S., The Code Analyser LCLint, Linux Journal, May 2000, <URL: POW00 WES00 Power Software - Software Metrics Krakatau for C/C++ and Java, <URL: CC-RIDER C and C++ Source Code Analysis Navigation Documentation and Program Visualization Tool, <URL:
Ohjelmiston testaus ja laatu. Testaus yleistä
Ohjelmiston testaus ja laatu Testaus yleistä Määritelmä Testaus on systemaattinen lähestymistapa ohjelmistoissa esiintyvien virheiden löytämiseksi ohjelmaa suorittamalla. Testattaessa pyritään luomaan
Avoimen lähdekoodin kehitysmallit
Avoimen lähdekoodin kehitysmallit Arto Teräs Avoimen lähdekoodin ohjelmistot teknisessä laskennassa -työpaja CSC, 25.5.2009 Avoimen lähdekoodin kehitysmallit / Arto Teräs 2009-05-25
Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita
Ylläpitoon liittyvät työkalut Käyttötarkoituksia ohjelman ymmärtäminen visualisointi etsintä dokumentointi muutosten hallinta koodin muotoilu (pretty printer) erikoistuneet editorit metriikkoihin liittyvät
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................................
Racket ohjelmointia. Tiina Partanen 2014
Racket ohjelmointia Tiina Partanen 2014 Sisältö 1) Peruslaskutoimitukset 2) Peruskuvioiden piirtäminen 3) Määrittelyt (define) 4) Yhdistettyjen kuvien piirtäminen 5) Muuttujat ja funktiot 6) Animaatiot
OHJ-1151 Ohjelmointi IIe
Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-1151 Ohjelmointi IIe Harjoitustyö Tomaattisota Välipalautus / Loppudokumentaatio Assistentin nimi Välipalautusaika (päivä ja kellonaika) ja
Osion kaksi kertaus. Jukka Juslin. Jukka Juslin
Osion kaksi kertaus Jukka Juslin Sisältö Taulukot ja Stringit Luokkien kirjoittaminen Oletusmuodostin UML Taulukot Taulukot luodaan Java-kielessä seuraavanlaisesti: int [] arvosanat = {1,2,3,4,5}; Taulukon
Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta
Simo K. Kivelä, 15.4.2003 Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Aksioomat Luonnolliset luvut voidaan määritellä Peanon aksioomien avulla. Tarkastelun kohteena on
SEPA diary. Dokumentti: SEPA_diary_PK_RI.doc Päiväys: Projekti : AgileElephant Versio: V0.2
AgilElephant SEPA Diary Pasi Kallioniemi 49477B Rauli Ikonen 51051V Tekijä: Kallioniemi&Ikonen Omistaja: ElectricSeven Aihe: RI & PK Sivu 1 of 7 Dokumenttihistoria Muutoshistoria Revision päiväys: 1.11.2004
Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org
Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org Sisällysluettelo Yleistä...3 Asennus... 4 Asetukset... 4 Toimitustavat... 5 Tilauksen käsittely...6 Huomioitavaa... 7 Lähipaketti toimitustapa...
Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1
String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen
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
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
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ä.
Yhteiset konseptit ja periaatteet julkishallinnon palvelukehittämisen edistäjinä Kuntien avoin data hyötykäyttöön seminaari 27.1.
Yhteiset konseptit ja periaatteet julkishallinnon palvelukehittämisen edistäjinä Kuntien avoin data hyötykäyttöön seminaari 27.1.2016 Kirsi Pispa, CSC Tieteen tietotekniikan keskus JulkICTLab on valtiovarainministeriön
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
Laskennallisen fysiikan esimerkkejä avoimesta tutkimuksesta Esa Räsänen Fysiikan laitos, Tampereen teknillinen yliopisto
Laskennallisen fysiikan esimerkkejä avoimesta tutkimuksesta Esa Räsänen Fysiikan laitos, Tampereen teknillinen yliopisto Julian Voss, Quantum man, 2006 (City of Moses Lake, Washington, USA) Kolme näkökulmaa
Tapahtumapohjainen ohjelmointi
Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Erot perinteisiin sovelluksiin Sovelluksen kulku ei ole ennalta tiedossa. Start A
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
Ohjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
Rutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit
2. Rutiinin muodostaminen Rutiinin muodostaminen roolit 1. Rutiinin määrittely 2. Sopimuspohjainen ohjelmointi 3. Määrittelyjen kirjoittaminen 4. Erikoistilanteiden hallinta analysointi luokat rutiinit
Kääntäjän virheilmoituksia
OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:
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.
Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.
Tehtävänanto - Asenna ja testaa LAMP - Aiheuta vähintään 3 virhettä ja analysoi lokista - Tee nimipohjainen virtuaalipalvelin, joissa toimii myös www. (Karvinen, T. 23.09.2013) Työympäristö Tein tehtävän
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)
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
Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit
Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.
Lisää segmenttipuusta
Luku 24 Lisää segmenttipuusta Segmenttipuu on monipuolinen tietorakenne, joka mahdollistaa monenlaisten kyselyiden toteuttamisen tehokkaasti. Tähän mennessä olemme käyttäneet kuitenkin segmenttipuuta melko
Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Selvitys GPL-lisensoinnin tuomat ongelmat
Selvitys GPL-lisensoinnin tuomat ongelmat Sisällysluettelo 1. Johdanto...3 2. Ongelman kuvaus...4 3. Eri tulkinnat GPL-lisenssistä...5 3.1. Tiukka tulkinta...5 3.2. Väljä tulkinta...5 3.3. Kompromissitulkinta...5
Avoimen lähdekoodin ohjelmien ylläpito ja evoluutio
Avoimen lähdekoodin ohjelmien ylläpito ja evoluutio Terminologiaa Avoimen lähdekoodin yhteisöt Projektimalleja Puutteiden käsittely (muutospyynnöt) Projektityypit ja projektien evoluutio Evoluutiomallit
Web-teknologiat. XML-datan kysely Topi Sarkkinen
Web-teknologiat XML-datan kysely Topi Sarkkinen Sisältö XML (lyhyesti) XPath XQuery XSLT XML Extensible Markup Language Ihmisten ja koneiden luettava metakieli, jolla voidaan määritellä muitakin kieliä
Ohjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
Software engineering
Software engineering Alkuperäinen määritelmä: Naur P., Randell B. (eds.): Software Engineering: A Report on A Conference Sponsored by the NATO Science Committee, NATO, 1968: The establishment and use of
1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
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
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
Digitaalinen haavoittuvuus MATINE Tampere
VTT TECHNICAL RESEARCH CENTRE OF FINLAND LTD Digitaalinen haavoittuvuus MATINE 8.5.2018 Tampere Mika.Rautila@vtt.fi Sisältö Mikä on digitaalinen haavoittuvuus Millaisista tekijöistä digitaaliset haavoittuvuudet
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
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
Innovointiprosessi. Lili Aunimo. 11.12.2009 Lili Aunimo
Innovointiprosessi Lili Aunimo Lisensointi Tekijänoikeudet: Verkkomultimediaopintojaksolla Ohjelmistolisenssit Sisältölisenssit: kuvat, musiikki, video, teksti Creative Commons http://fi.wikipedia.org/wiki/lisenssi
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia
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
Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten
1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
Harjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
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
Sonera Hosted Mail -palvelun käyttöohje 12.05.2011
Sonera Hosted Mail -palvelun käyttöohje 12.05.2011 Sonera Hosted Mail -palvelun käyttöohje 1. Johdanto Hosted Mail on yrityskäyttöön suunniteltu sähköposti- ja ryhmätyösovelluspalvelu. Se perustuu Microsoft
T-76.115 Tietojenkäsittelyopin ohjelmatyö
T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tämä on tietokonegrafiikka-algoritmien visualisointiin tarkoitettujen visualisointien ja niiden kehitykseen tarkoitetun ohjelmointirajapinnan käyttäjävaatimusdokumentti.
1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
Kalenterimerkintöjen siirtäminen Notesista
1 of 21 15.6.2016 8:58 ID: 3303 Kalenterimerkintöjen siirtäminen Notesista Outlookiin Notesissa olevat kalenterimerkinnät on mahdollista siirtää Outlook-kalenteriin. Tietoja ei siirretä keskitetysti, vaan
11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?
Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät
Määrittelydokumentti NJC2. Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Määrittelydokumentti NJC2 Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli
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
Javan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
Ei raportteja roskiin
Ei raportteja roskiin Wikit ja blogit opetuksessa Sosiaalinen media koulutuksessa Tietotekniikan liitto - Helia 2006-11-16 Ei raportteja roskiin Vanha ja uusi tapa Käytännön kokemuksia Lisenssit Tekniikka
Liityntäpalvelimen liittäminen FI ympäristöön
CSC Liityntäpalvelimen liittäminen FI ympäristöön Liityntäpalvelimen versio 6.7.7 Pmuhonen 2/17/2016 Date Version Description 29.9.2015 0.1 Initial version 30.9.2015 0.2 Korjauksia 19.1.2016 0.3 Sertifikaattiohje
1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
Kriittisen polun hallinta CRIPMAN (CRItical Path MANagement) Pekka Maijala & Jaakko Paasi
Kriittisen polun hallinta CRIPMAN (CRItical Path MANagement) Pekka Maijala & Jaakko Paasi CRIPMAN CRIPMAN on tuotteen arvoverkoston tai sen osan toiminnan optimoinnin ja kehittämisen menetelmä. Kriittisen
Asenna myös mikroskopian lisäpala (MBF ImageJ for Microscopy Collection by Tony Collins) http://rsbweb.nih.gov/ij/plugins/mbf-collection.
Asentaminen Ohjelman voi ladata vapaasti webistä (http://rsbweb.nih.gov/ij/) ja siitä on olemassa versiot eri käyttöjärjestelmille. Suurimmalle osalle käyttäjistä sopii parhaiten valmiiksi käännetty asennuspaketti
Harjoitus 4 (viikko 47)
Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä
Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II
7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa
Taulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
Asenna myös mikroskopian lisäpala (MBF ImageJ for Microscopy Collection by Tony Collins) http://rsbweb.nih.gov/ij/plugins/mbf-collection.
ImageJ ja metallografia juha.nykanen@tut.fi 19.2.2011 versio 1 Asentaminen Ohjelman voi ladata vapaasti webistä (http://rsbweb.nih.gov/ij/) ja siitä on olemassa versiot eri käyttöjärjestelmille. Suurimmalle
Javan asennus ja ohjeita ongelmatilanteisiin
Javan asennus ja ohjeita ongelmatilanteisiin Javaa tarvitaan Fivaldin Sovellusikkunan alaisiin sovelluksiin, jotka käyttävät Oracle Forms -tekniikkaa. Visma Fivaldin osalta suosittelemme aina käyttämään
KOULUTUSPOLKU - KOULUTTAUDU LUOKKAKURSSEILLA MEPCO-OSAAJAKSI
1.6.2016 1 (7) KOULUTUSPOLKU - KOULUTTAUDU LUOKKAKURSSEILLA MEPCO-OSAAJAKSI MEPCO HRM PALKAT TOIMINNALLISUUS Käyttäjän peruskurssi RAPORTOINTI Vuodenvaihdekurssi Pääkäyttäjäkurssi Raportoinnin alkeet ja
Eclipse ja JUnit-ohjelmoijatestit
Eclipse ja JUnit-ohjelmoijatestit Tarkoitus on tutustua Eclipsen käyttöön vähän lähemmin ja varsinkin JUnit-ohjelmoijatesteihin (ohjelmoijatesti on vanhalta nimeltä yksikkötesti). Ohjelmoijatestit ovat
Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
Wikin käyttö Perus ja kehittynyt. 2013 Juha Matikainen Antti Miettinen
Wikin käyttö Perus ja kehittynyt 2013 Juha Matikainen Antti Miettinen Koulutuksen tarkoitus Koulutuksen jälkeen osallistujat tietävät minkälaisiin sisältöihin ja käyttötarkoituksiin wikiä voi käyttää ja
CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016
CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)
Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Ohjelmien lisensoinnista
Ohjelmien lisensoinnista Mitä ohjelmoijan on hyvä tietää ohjelmien tekijänoikeuksista ja (erityisesti open source) lisensseistä Tapani Tarvainen 27.11.2015 Lähtökohta: tekijänoikeus Yksinoikeus "määrätä
Uudistuva RISKINARVIO-ohje
Uudistuva RISKINARVIO-ohje Kommentteja luonnoksesta Terhi Svanström 20.9.2013 30.9.2013 Page 1 Yleisiä huomioita rakenteesta ja käsitteistä Kommentteja riskinarviointi-osuudesta Kehuja 30.9.2013 Page 2
Ulkoiset mediakortit Käyttöopas
Ulkoiset mediakortit Käyttöopas Copyright 2009 Hewlett-Packard Development Company, L.P. SD-logo on omistajansa tavaramerkki. Tässä olevat tiedot voivat muuttua ilman ennakkoilmoitusta. Ainoat HP:n tuotteita
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
TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä 1973. Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux
Historiaa Linux on Unix-yhteensopiva käyttöjärjestelmä. Unixin perusta luotiin 1964 MIT:ssa aloitetussa MULTICS-projektissa (http://www.cs.helsinki.fi/u/kerola/tkhist/k2000/alustukset/unix_hist/unix_historia.htm)
Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure
Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon
Ohjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
Lue ohjeet huolellisesti ennen laitteen käyttöä.
1 Väliaikaisen tallennuskansion käyttö Lue ohjeet huolellisesti ennen laitteen käyttöä. Kun skannaat kuvia, dioja, asiakirjoja jne. sekä digitoit LP-levyjä tai C-kasetteja, sinulla on mahdollisuus tallentaa
Ohjelmistojen virheistä
Ohjelmistojen virheistä Muutama sana ohjelmistojen virheistä mistä niitä syntyy? Matti Vuori, www.mattivuori.net 2013-09-02 1(8) Sisällysluettelo Ohjelmistojen virheitä: varautumattomuus ongelmiin 3 Ohjelmistojen
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
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.
Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.
Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä. JUnit-ympäristö 1. Luo tests -pakkaukseen uusi luokka. Nimeä VHTestit. 2. Laita VHTestit periytymään TestCase:sta
Testaaminen ohjelmiston kehitysprosessin aikana
Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/
Menetelmäraportti - Konfiguraationhallinta
Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1
Innovaatioprosessi. Lili Aunimo
Innovaatioprosessi Lili Aunimo Oppimistavoitteet Tänään: etätehtävä: käsitekartta innovaatioprosessista mediawiki: käyttöoikeudet Konseptointiprosessi Ideoiden generointi: Tietotekniikan hyödyntäminen
Projektinhallintaa paikkatiedon avulla
Projektinhallintaa paikkatiedon avulla Tampereen Teknillinen Yliopisto / Porin laitos Teemu Kumpumäki teemu.kumpumaki@tut.fi 25.6.2015 1 Paikkatieto ja projektinhallinta Paikkatiedon käyttäminen projektinhallinnassa
TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI
TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI Vesa Tenhunen Tarkastusmenettelyt Keino etsiä puutteita ohjelmakoodeista, dokumenteista ym. ohjelmistoprosessissa syntyvästä materiaalista Voidaan käyttää kaikissa
Loppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
Tutustu merkintöihin! Tärkeää tietoa siitä, miten varmistat pesu- ja puhdistusaineiden käytön turvallisuuden kotona
Tutustu merkintöihin! Tärkeää tietoa siitä, miten varmistat pesu- ja puhdistusaineiden käytön turvallisuuden kotona Kodin puhdistusaineisiin on lähiaikoina tulossa uudet varoitusmerkinnät. Osa symboleista
DESCA-sopimuksen ohjelmistomoduuli ja avoimen lähdekoodin ohjelmistot
TEKNOLOGIAN TUTKIMUSKESKUS VTT OY Kuvapaikka (ei kehyksiä kuviin) DESCA-sopimuksen ohjelmistomoduuli ja avoimen lähdekoodin ohjelmistot EUTI-koulutus 27.03.2017 Hannes Kankaanpää, Senior IPR Officer OPEN
Olio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
11.4. Context-free kielet 1 / 17
11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä
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... 3 2 Valppaan asennus... 4 2.1 Valppaan kääntäminen... 4 2.2
C-ohjelmoinnin peruskurssi. Pasi Sarolahti 12.1.2016
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 12.1.2016 Mikä C? 2 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 3 Mikä C? Pieni kieli, vain muutamia kielen
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.