Jussi Koskinen Ohjelmien ylläpito ja käänteistekniikat Lectio praecursoria ( , Jyväskylän yliopisto, Informaatioteknologian tiedekunta)

Koko: px
Aloita esitys sivulta:

Download "Jussi Koskinen Ohjelmien ylläpito ja käänteistekniikat Lectio praecursoria (10.6.2000, Jyväskylän yliopisto, Informaatioteknologian tiedekunta)"

Transkriptio

1 1 (5) Jussi Koskinen Ohjelmien ylläpito ja käänteistekniikat Lectio praecursoria ( , Jyväskylän yliopisto, Informaatioteknologian tiedekunta) 2000-, Jussi Koskinen Ohjelmistotyön ongelmat Ohjelmistotuotanto on ongelmallista. Ohjelmistoteknisillä menetelmillä pyritään kuitenkin parantamaan tuottavuutta ja aikaansaamaan luotettavia ohjelmistoja. Frederick P. Brooks Jr. on klassisessa, vuonna 1987 julkaistussa artikkelissaan No silver bullet - essence and accidents of software engineering [1], eritellyt ohjelmistotuotannon oleellisia ongelmia. Eräs ongelmista on se, että ohjelmisto on ns. näkymätön (invisible). Lähdekoodista ei voida suoraan nähdä kaikkia ohjelmistojen kehittämisessä ja ylläpidossa oleellisia seikkoja. Ohjelmiston kaikkia oleellisia aspekteja ei myöskään yleisesti ottaen voida esittää ohjelmoijille, suunnittelijoille, ja ylläpitäjille käyttäen yhtä ainoaa havainnollista esitystapaa, mikä on mahdollista useilla muilla teknisillä aloilla. Toisin kuin muiden teknisten alojen tuotteet, ohjelmistot yleensä myös koostuvat suurimmaksi osaksi eistandardinomaisista komponenteista, mikä hankaloittaa ylläpitoa ja uusiokäyttöä. Pyrittäessä muodostamaan käsitys ohjelmiston toiminnasta ja sen rakenteesta, ylläpitoon liittyen, ohjelma joudutaan yleensä käsitteellisesti osittamaan monilla eri tavoilla. Sitä voi myös olla hyödyllistä tarkastella eri karkeustasoilla ja tarkastelun kohteeksi kannattaa tilanteesta riippuen ottaa erilaisia riippuvuuksia, joita ohjelmiston osien välillä vallitsee. Ohjelmien ylläpito Ohjelmistojen kehitystä on perinteisesti vaiheistettu käyttäen ns. vesiputousmallia. Ohjelmistoja kehitettäessä lähtökohtana ovat järjestelmälle asetettavat vaatimukset. Ohjelmiston kehitys etenee vesiputousmallin mukaisesti suoraviivaisesti analyysi- ja suunnitteluvaiheiden kautta varsinaiseen toteutukseen, joka sisältää lähdekoodin kirjoittamisen. Tätä seuraa ylläpitovaihe. Ohjelmien ylläpito on perinteisesti määritelty muutosten teoksi ohjelmistoon sen jälkeen, kun se on luovutettu asiakkaille. Toisaalta, iteraation ja prototyypityksen merkitys tunnustetaan nykyään yleisesti. Tällöin ohjelmiston kehittäminen ei ole suoraviivainen prosessi, vaan etenee vaatimuksia asteittain tarkentaen. Tällaista tarkastelutapaa edustaa Barry Boehmin vuonna 1988 esittämä ns. ohjelmistotuotannon spiraalimalli [2]. Mallin mukaisesti järjestelmän kehitykseen liittyy kiinteä vuorovaikutus asiakkaiden kanssa. Ohjelmistoon tehdään muutoksia paitsi välttämättömien muutostarpeiden, myös tarkentuvien asiakasvaatimusten seurauksena. Ylläpidon problematiikan kannalta oleellista on se, että ohjelmiston muuttamista ei voida välttää. Ohjelmien ylläpito on perinteisesti tapana jakaa neljään laajaan tehtäväluokkaan. Ensinnäkin, korjaava ylläpito käsittää tietokoneohjelmissa olevien virheiden diagnosoinnin, paikantamisen ja korjaamisen. Toiseksi, sopeuttava ylläpito sisältää ohjelmiston liittämisen muuttuvaan ympäristöön. Kolmanneksi, parantava ylläpito käsittää lisäyksien ja muutosten tekemisen perustuen muuttuviin käyttäjien tarpeisiin. Neljänneksi, ennaltaestävä ylläpito sisältää ohjelmiston kehittämisen, s.e. sitä on jatkossa helpompi ylläpitää. Tämä luokitus on peräisin 80-luvun alusta ja on esiintynyt mm. Roger S. Pressmanin ohjelmistotekniikan perusteoksessa [3]. Vastaavankaltaista luokittelua on käyttänyt myös mm. Ian Sommerville omassa ohjelmistotekniikan kirjassaan [4]. Ohjelmien ylläpito on merkittävä osa tietojärjestelmien kehittämisestä. Ian Sommervillen mukaan [4] on arvioitu, että ylläpitoon kuluu n % ohjelmiston elinkaaren aikaisista kustannuksista. Ohjelmien ylläpito on myös vaativaa työtä.

2 2 (5) Vaativuutta lisääviä tekijöitä ovat mm.: ylläpidettävien ohjelmistojen ja tehtävien muutosten laajuus, muutosten tekeminen koodiin, joka ei ole muutoksien tekijälle ennestään tuttua, sekä puutteellinen dokumentointi. Esimerkki ylläpidon ongelmista ja siihen liittyvistä kustannusvaikutuksista on ns. vuosi 2000 (Y2K) ongelma. Vaikka vuosi 2000 ongelma onnistuttiinkin ratkaisemaan ennakoitua paremmin [5], vaati ongelman ratkaiseminen paljon työtä. Esimerkiksi IT Viikon mukaan Nokia käytti vuosi 2000 ongelmaan, mm. ennaltaehkäisevään ylläpitoon, n. 450 Mmk [6]. Ohjelmien ymmärtäminen Ohjelmien ymmärtämisprosessin tavoitteena on lisätä ylläpitäjän tietotasoa liittyen seikkoihin, jotka ovat tärkeitä ohjelmointi- tai ylläpitotehtävien suorittamiselle. Riittävä ohjelmien rakenteen ja toiminnan ymmärtäminen on välttämätöntä, jotta ohjelmistoon voidaan tehdä muutoksia ilman, että niistä seuraa ei-toivottuja sivuvaikutuksia. Periaatteessa, muutokset tulisi suunnitella ja niiden seuraukset selvittää. Muutosten teko perustuen riittämättömään ymmärrykseen aiheuttaa ohjelmiston laadun rapautumista (ripple-effect). Hyvä ymmärrys myös edesauttaa muutosten tekoa s.e. ohjelmiston ylläpidettävyys ei tarpeettomasti heikkene. Ohjelmien ymmärtämisprosessille on esitetty lukuisia teoreettisia malleja [7,8]. Ymmärtämiseen vaikuttavia tekijöitä ovat mm. käytettävät ymmärtämisstrategiat, ymmärtämisen tuloksena muodostettavat mentaaliset mallit, sekä käsitteelliset rakenteet, joita vastaavat lähdekoodin tietyt ohjelmarivit. Ymmärtämisstrategiat kuvaavat niitä tapoja, joilla ylläpitäjä pyrkii ymmärtämään ohjelmaa. Tyypillisesti ymmärtämispyrkimyksiin liittyy lähdekoodin edestakainen selaus, pyrkimyksenä löytää rakenteita, jotka auttavat hahmottamaan ohjelman tarkoituksen ja toimintalogiikan. Ohjelmaa voidaan selata noudattaen systemaattisia tai opportunistisia strategioita. Esimerkiksi, noudatettaessa ylhäältä-alaspäin etenevää (ns. top-down) strategiaa, ylläpitäjä pyrkii ensin ymmärtämään kutsuhierarkian ylimmän tason - pääohjelman. Vastaavasti noudatettaessa alhaaltaylöspäin etenevää (ns. bottom-up) strategiaa, ylläpitäjä kiinnittää ensin huomionsa perustason rakennuspalikoihin, esimerkiksi aliohjelmiin, joita mahdollisesti kutsutaan montaa eri kautta ohjelmassa. Käytännössä strategioita sovelletaan ottaen huomioon tilannekohtaiset tekijät, eli toimitaan joustavasti ja opportunistisesti. Näin muodostuvissa mentaalisissa malleissa on kyse ylläpitäjän sisäisistä näkemyksistä koskien ohjelmiston oleellisia aspekteja. Lähdekoodin tietyt selkeästi havaittavat osat tai ohjelmarivit (beacons) voivat toimia lähtökohtina laajempien kokonaisuuksien ymmärtämiselle, kuten esimerkiksi C-kielisten ohjelmien pääfunktio, jota vastaa merkkijono main. Tietyt ohjelmarivit yhdessä tuottavat tietyn toiminnallisuuden vastaten ohjelmoijien alkuperäisiä, ns. ohjelmasuunnitelmia (program plan). Kyseessä voi olla esimerkiksi vakiintunut tapa toteuttaa tietoalkioiden lajittelu, eli järjestykseen asettaminen, käyttäen esimerkiksi yleisesti tunnettua quick sort algoritmia. Ymmärtäminen on erityisen hankalaa silloin jos tietyn toiminnallisuuden toteuttavat ohjelmarivit ovat hajautuneet s.e. ymmärtämisen kannalta oleellisten ohjelmarivien välissä on tässä suhteessa epäoleellisia ohjelmarivejä. Tällöin on kyseessä ns. hajautunut ohjelmasuunnitelma (delocalized program plan) [9]. Käsitteellisesti yhteenkuuluvien rakenteiden ymmärtämistä voidaan pyrkiä tukemaan tarjoamalla ylläpitäjälle esitysmuotoja, jotka tuovat esiin mielekkäät kokonaisuudet ja niiden väliset oleelliset riippuvuudet. Ohjelmien ylläpitotehtäviin ja ohjelmien ymmärtämiseen liittyen ylläpitäjillä on tietotarpeita. Nämä tietotarpeet voidaan tyydyttää perustuen tietoon, jota saadaan joko tutkimalla lähdekoodia, dokumentaatiota tai alan kirjallisuutta tai kommunikoimalla kolleegojen kanssa. Lähdekoodin analyysi voi olla manuaalista tai automatisoitua. Esimerkki dokumentaatioon kohdistuvasta tietotarpeesta on kohdealueen, eli sovellusalueen, käsitteiden määrittelyt. Lähdekoodista tarvitaan usein tietoa ohjelman sisältämien tunnisteiden määrittely- ja käyttökohteista,

3 3 (5) ohjelman sisältämien aliohjelmien, proseduurien tai funktioiden välisistä kutsusuhteista sekä siitä miten ohjelman suoritus etenee ja tieto siirtyy muuttujalta toiselle. Tämän kaltainen tieto on yleishyödyllistä, liittyen moniin ylläpitotehtävätyyppeihin. Käänteistekniikat Käänteistekniikalla (reverse engineering) tarkoitetaan ohjelmiston sisältämien komponenttien ja niiden välisten suhteiden tunnistamista ja vaihtoehtoisten - usein abstrahoitujen - esitysmuotojen luomista [10]. Tämä on erityisen tärkeää, jos ohjelmistoa ei ole dokumentoitu lainkaan, tai sen dokumentointi on puutteellista tai epäajantasalla. Käänteistekniikassa pyrkimyksenä on luoda lähdekoodi syötteenä esitysmuotoja, jotka tuovat esiin järjestelmän oleelliset piirteet. Täten prosessi etenee käänteisesti suhteessa perinteisen ohjelmiston kehityksen vesiputousmallin mukaiseen järjestykseen. Parhaimmassa tapauksessa voidaan automaattisesti tuottaa edeltävien vaiheiden keskeisten dokumenttien runkoja. Käänteistekniikoita voidaan soveltaa useilla eri tasoilla. Usein ohjelmistojen esittämiseen käytettyjä tapoja ovat mm. kutsukaaviot ja (kontrolli)vuokaaviot. Kutsukaavio koostaa tiedon siitä, miten ohjelman sisältämät aliohjelmat, proseduurit tai funktiot kutsuvat toisiaan, eli miten ne käynnistävät toistensa toiminnan. Vuokaavio taas kuvaa ohjelman suorituksen etenemistä ja etenemisen vaihtoehtoisia reittejä. Jotta ylläpidon tuki olisi asianmukaisesti kohdennettua, tulisi ylläpitäjälle tarjota välineistö, jolla hän voi saada tietoa kullakin hetkellä oleellisista tietoalkioista. Näitä voivat olla ohjelmanosat tai dokumentit tai niiden osat. Käänteistekniikat perustuvat ohjelmien automaattiseen analyysiin. Automaattinen ohjelma-analyysi voi olla staattista, jolloin käytetään ainoastaan tietoa, joka on saatavilla ohjelman käännösaikana tai dynaamista, jolloin hyödynnetään myös ohjelman suoritukseen liittyvää tietoa. Ohjelmien automaattiseen analyysiin on käytettävissä lukuisia tekniikoita. Lähdekoodin analyysissä eräs tekniikka, jolla voidaan edesauttaa tietyssä tilanteessa relevanttien näkymien muodostamista on ns. ohjelmien siivuttaminen (jota myös joskus viipaloinniksi kutsutaan). Siivutus on alunalkaen Mark Weiserin vuonna 1982 esittämä tekniikka [11]. Epäformaalisti ilmaisten, siivuun sisällytetään ne ohjelmanosat, joilla on merkitystä suhteessa valittuun lähtökriteeriin. Lähtökriteeri on tyypillisesti muuttujan esiintymä tietyssä kohtaa ohjelmaa. Käytännössä, siivuun sisällytettävät ohjelmanosat saadaan määriteltyä suorittamalla ohjelmalle tietovirta- ja kontrollivirta-analyysi. Esimerkiksi, korjaavan ylläpidon tapauksessa, ylläpitäjän tehtävänä voi olla ohjelmointivirheen jäljittäminen. Virheen olemassaolo havaitaan yleisesti sitä kautta, että ohjelma tuottaa tietyssä kohtaa virheellisen tulosteen. Tuloste määrittyy muuttujien arvojen kautta. Seuraamalla ohjelman suorituksen vaihtoehtoisia reittejä taaksepäin saadaan virheelliseen tulokseen vaikuttavat tekijät selville. Automatisoitu siivutus auttaa tätä prosessia esittämällä ylläpitäjälle näkymän, jossa vain ko. tehtävään liittyen oleelliset ohjelmanosat ovat mukana. Edellisen kaltaiset, virheenjäljitykseen liittyvät apuvälineohjelmistot on usein integroitu esim. kääntäjäympäristöön. Yleisempi integroitu ratkaisu on ns. CASE (Computer Assisted/Aided Software/System Engineering) ympäristö tai työkalupaketti (tietokoneavusteinen systeemi- tai ohjelmistotyöpaketti), joka sisältää monia ohjelmien kehittämisen tai ylläpidon kannalta hyödyllisiä apuvälineitä. Integroinnin ja apuvälineiden yhteistoiminnan perustana on usein tietointegraatio, joka perustuu usein siihen, että apuvälineet käyttävät yhteistä tietomallia. Tämän tietomallin perustana on usein erityisesti ylläpidon tukeen soveltuvien ns. lower- CASE -työkalujen osalta ohjelman jäsennyspuu ja symbolitaulu. Jäsennyspuu sisältää tiedon ohjelman hierarkkisesta, syntaktisesta rakenteesta ja symbolitaulu mm.

4 4 (5) tiedon ohjelman sisältämien nimettyjen symbolien, kuten muuttujien, määrittely- ja käyttökohteista. Nykyaikaisiin apuvälineisiin liittyy oleellisena osana tiedon esittäminen käyttäjälle havainnollisessa ja käyttökelpoisessa muodossa. Esimerkiksi Borlandin C/C++ kääntäjäympäristössä käytetään värejä erottamaan lähdekoodin erilaiset osat. Esimerkiksi kielen varatuilla sanoilla, operaattoreilla, vakioilla, makroilla ja kommenteilla on oma korostustapansa. Usein CASE-välineissä käytetään graafisia näkymiä täydentämään tekstuaalista esitystä. Tyypillisesti graafiset näkymät edesauttavat kokonaiskuvan muodostamisessa. Esimerkiksi nykyaikaisessa Imagix - työkalussa [12] voidaan ohjelmakoodin osien välisiä suhteita tarkastella haluttaessa myös käyttäen kolmiulotteista esitysmuotoa sekä valita tarkastelun karkeustaso, esimerkiksi se näytetäänkö moduulit, aliohjelmat, muuttujat, makrot jne. Eräs graafisiin esitysmuotoihin liittyvä ongelma on se, että laajojen ohjelmien ollessa kyseessä, myös tarvittavat graafiset näkymät ovat laajoja. Näitä ongelmia on omalta osaltaan helpottanut se, että näytöt ovat kehittyneet sekä kooltaan, että laadultaan. Valintojen tekomahdollisuudet ja abstrahointi ovat tärkeitä, jotta graafisia näkymiä voidaan hyödyntää täysipainoisesti. Koska ohjelman eri aspektien esittämiseen joudutaan käyttämään erilaisia esitystapoja, mm. erilaisia kaavioita, hyödyllistä on myös näissä kaavioesityksissä esiintyvien vastinparien väliset ristiinviittaukset, jotka mahdollistavat nopean siirtymisen esitysmuodosta toiseen. Hypertekstiesitysmuodot Ohjelmistotyön tukivälineissä on viime vuosikymmenellä yleistynyt myös ns. hypertekstiesitysmuoto. Hyperteksti koostuu solmuista, jotka sisältävät tekstiä sekä solmujen välisistä linkeistä, jotka mahdollistavat tekstin toisiinsa liittyvien osien nopean epälineaarisen läpikäynnin. Hypertekstin idean esitti aikoinaan Vannevar Bush jo vuonna 1945 [13]. Tämän jälkeen hypertekstiä on tutkinut mm. Theodore Holm Nelson 1960-luvulta lähtien. Yleisemmin hypertekstiä on alettu soveltaa luvun puolivälin jälkeen ja erityisesti World Wide Webin kasvun seurauksena. Hypertekstiesitysmuoto täydentää tekstihakujen ja kyselyjen käyttöä tarjoamiensa navigointimahdollisuuksien kautta. Ohjelmistotyön tukivälineissä hypertekstiesitysmuotoa on lähinnä käytetty dokumenttien (ja myös niiden osien) välisessä linkityksessä [14,15,16]. Automaattinen hypertekstin muodostus on lähinnä perustunut tilastollisiin ja dokumenttien ryhmittely (clustering) tekniikoihin [17]. Lähdekoodin sisältämiä osia ja niiden välisiä riippuvuuksia voidaan myös tarkastella hypertekstinä [18,19]. Tällaista hypertekstiä voidaan muodostaa automaattisesti, jolloin hyperteksti on eräs lähdekoodin esitysmuoto, jota voidaan käyttää mm. käänteistekniikkatyökaluissa täydentämään perinteistä lineaarista esitystapaa sekä graafisia esitysmuotoja. Systemaattiseen tiedonhakuun soveltuva, abstraktien syntaksipuiden ja ohjelmariippuvuuksien relaatio-ominaisuuksien käyttöön perustuva, lähestymistapa on esitetty väitöskirjassani [20]. [1] Brooks, F.P. Jr No silver bullet - essence and accidents of software engineering. Computer 20 (4), [2] Boehm, B A spiral model of software development and enhancement. Computer 21 (5), [3] Pressman, R Software Engineering - A Practitioner's Approach (4th ed.). McGraw-Hill. [4] Sommerville, I Software Engineering (5th ed.). Addison-Wesley. [5] ITV. 2000a. Suomalaiset välttivät Y2K-ongelmat. Vuosituhat vaihtui ilman suuria ongelmia. IT Viikko [6] ITV. 2000b. Y2K maksoi Nokialle 450 miljoonaa. IT Viikko,

5 5 (5) [7] Brooks, R Towards a theory of the comprehension of computer programs. IJMMS 18 (6), [8] von Mayrhauser, A. & Vans, A.M Industrial experience with an integrated code comprehension model. Software Engineering J. 10 (5), [9] Letovsky, S. & Soloway, E Delocalized plans and program comprehension. IEEE Software 3 (3), [10] Chikofsky, E. & Cross, J. H. II Reverse engineering and design recovery: a taxonomy. IEEE Software 7 (1), [11] Weiser, M Programmers use slices when debugging. Communications of the ACM 25 (7), [12] Imagix Imagix 4D. Product information available (10-Mar-00) in wwwform at <URL: Company: Imagix. Description: a reverse engineering tool for C and C++. [13] Bush, Vannevar As we may think. Atlantic Monthly 176 (1), [14] Bigelow, J Hypertext and CASE. IEEE Software 5 (2), [15] Garg, P Information Management in Software Engineering: A Hypertext Based Approach. Los Angeles: University of Southern California (Diss.). [16] Oinas-Kukkonen, H Improving the Functionality of Software Design Environments by Using Hypertext. Univ. of Oulu, Finland. Acta Univ. Ouluensis, A 296 (Diss.). [17] Allan, J Automatic Hypertext Construction. Ithaca, NY: Department of Computer Science, Cornell University (Diss.). [18] Brade, K., Guzdial, M., Steckel, M. & Soloway, E Whorf: a hypertext tool for software maintenance. Int. J. Software Engineering and Knowledge Engineering 4 (1), [19] Nørmark, K. & Østerbye, K Representing programs as hypertext. In B. Magnusson, G. Hedin & S. Minör (Eds.) Proc. Nordic Workshop on Programming Environment Research (NWPER'94). LU-CS-TR: Lund, Sweden: Lund Univ., [20] Koskinen, J Automated Transient Hypertext Support for Software Maintenance. Univ. of Jyväskylä, Finland. Jyväskylä Studies in Computing 4 (Diss.). Ph.D. thesis (in English) Updated: June 11, 2000; August 3, 2010; April 30, 2015

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

Ylläpito. Ylläpidon lajeja

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

Lisätiedot

Johdantoluento. Ohjelmien ylläpito

Johdantoluento. Ohjelmien ylläpito Johdantoluento Ylläpito-termin termin määrittely Ylläpito ohjelmistotuotannon vaiheena Evoluutio-termin määrittely Muita kurssin aiheeseen liittyviä termejä TTY Ohjelmistotekniikka 1 Ohjelmien ylläpito

Lisätiedot

Software engineering

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

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Lisätiedot

Ohjelmistojen mallintaminen

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

Lisätiedot

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1 Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon 31.10.2008 Harri Laine 1 Ohjelmisto Tietokoneohjelma (computer program) toimintaohje, jonka mukaan toimien tietokone suorittaa jonkin tietojenkäsittelytehtävän

Lisätiedot

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto jen mallinnus, s2008 jen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Tietokoneohjelma (computer program) toimintaohje, jonka mukaan toimien tietokone suorittaa jonkin tietojenkäsittelytehtävän suoritettava

Lisätiedot

Ohjelmistojen ylläpitäjien tietotarpeet ja niiden arviointitavat

Ohjelmistojen ylläpitäjien tietotarpeet ja niiden arviointitavat Tero Lehmonen Ohjelmistojen ylläpitäjien tietotarpeet ja niiden arviointitavat Tietojärjestelmätieteen kandidaatin tutkielma 4.12.2006 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Jyväskylä Tiivistelmä

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa 1 Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa Passion leads to design, design leads to performance, performance leads to SUCCESS! OLLI NIEMI Yoso Oy Mitä määrittelyltä

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

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

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Lisätiedot

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä olevilla komponenteilla? Voisiko jollakin ohjelmointikielellä

Lisätiedot

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

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

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9. Käytettävyyslaatumallin rakentaminen web-sivustolle Tapaus kirjoittajan ABC-kortti Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.2005 Kirjoittajan ABC-kortti

Lisätiedot

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Organisaation prosessikuvaus - CMMI Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

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/

Lisätiedot

Työkalujen merkitys mittaamisessa

Työkalujen merkitys mittaamisessa Työkalujen merkitys mittaamisessa Mittaaminen ja Ohjelmistotuotanto -seminaari Toni Sandelin 18.4.2001, VTT Elektroniikka, Oulu 1 Sisältö Mihin työkalutukea tarvitaan? Työkalut & metriikat: luokitus Mittausohjelmien

Lisätiedot

Estimointityökalut. Pekka Forselius, Senior Advisor Finnish Software Measurement Association FiSMA ry

Estimointityökalut. Pekka Forselius, Senior Advisor Finnish Software Measurement Association FiSMA ry Estimointityökalut Pekka Forselius, Senior Advisor Finnish Software Measurement Association FiSMA ry 1 Työkalujen rooli ohjelmistotyössä A fool with a tool is still a fool! Ohjelmistotyökalujen käyttäminen

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

E. Oja ja H. Mannila Datasta Tietoon: Luku 2

E. Oja ja H. Mannila Datasta Tietoon: Luku 2 2. DATASTA TIETOON: MITÄ DATAA; MITÄ TIETOA? 2.1. Data-analyysin ongelma Tulevien vuosien valtava haaste on digitaalisessa muodossa talletetun datan kasvava määrä Arvioita: Yhdysvaltojen kongressin kirjasto

Lisätiedot

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit

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

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä $$$ Raha ratkaisee On vaara rakastua tekniikkaan, myös asiakkailla Kaikki pitää pystyä perustelemaan taloudellisesti Projektin toteutus yleensä -> voidaan jättää toteuttamatta, jos ei maksa itseään takaisin

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

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

Lisätiedot

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari 30.5.2012

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari 30.5.2012 BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari 30.5.2012 RIL tietomallitoimikunta LCI Finland Aalto-yliopisto Tampereen teknillisen yliopisto ja Oulun yliopisto Tietomallien

Lisätiedot

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet Organisaation prosessikuvaus - CMMI Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 7.2.2007 Level5 Level4 Level3 Requirements Development Technical Solution Product Integration

Lisätiedot

582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 1 Lyhyt johdatus ohjelmistotuotantoon Ohjelmistotuotanto, ohjelmistoprojektit Miten ohjelmistojen tuottaminen eroaa teollisesta tuotannosta

Lisätiedot

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 1 Lyhyt johdatus ohjelmistotuotantoon Ohjelmistotuotanto, ohjelmistoprojektit Miten ohjelmistojen tuottaminen eroaa teollisesta tuotannosta

Lisätiedot

Simulation model to compare opportunistic maintenance policies

Simulation model to compare opportunistic maintenance policies Simulation model to compare opportunistic maintenance policies Noora Torpo 31.08.18 Ohjaaja/Valvoja: Antti Punkka Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin

Lisätiedot

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA Ohjelmointitekniikka lyhyesti Survival Kit. Vesiputousmalli ELINKAARIMALLEISTA. Ohjelmiston elinkaari Ohjelmiston elinkaarella (life cycle) tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta

Lisätiedot

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö

Lisätiedot

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi 1. Luento: Sulautetut Järjestelmät Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Miika Nurminen (minurmin@jyu.fi) Jyväskylän yliopisto Tietotekniikan laitos Kalvot ja seminaarityö verkossa: http://users.jyu.fi/~minurmin/gradusem/

Lisätiedot

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

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

Lisätiedot

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät Laatujärjestelmät Ohjelmistotekniikka kevät 2003 Prosessiajattelu Sisään Prosessi Ulos ohjaus mittaus Laatujärjestelmät Laatujärjestelmät määrittelevät sen, mitkä prosessit täytyy olla määritelty ei sitä,

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman arkkitehtuurista. 1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä

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

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

Lisätiedot

SUOMEN KUNTALIITTO RY

SUOMEN KUNTALIITTO RY Karttaliittymä Versio: 18.10.2011 Julkaistu: 27.10.2011 Voimassaoloaika: Toistaiseksi Sisällys 1 Johdanto... 2 1.1 Suosituksen tausta... 2 1.2 Suosituksen rakenne... 2 2 Soveltamisala... 2 3 Lyhenteet...

Lisätiedot

Tietokoneohjelmien käyttö laadullisen aineiston analyysin apuna

Tietokoneohjelmien käyttö laadullisen aineiston analyysin apuna Tietokoneohjelmien käyttö laadullisen aineiston analyysin apuna Laadullinen, verbaalinen, tulkinnallinen aineisto kootaan esimerkiksi haastattelemalla, videoimalla, ääneenpuhumalla nauhalle, yms. keinoin.

Lisätiedot

Yhteenveto. Ymmärrä kokonaisuus

Yhteenveto. Ymmärrä kokonaisuus Mikko Jokela Yhteenveto Poista tiedon monistaminen Järjestele hallittaviin kokonaisuuksiin Mahdollista informaation kulku Luo tiedolle saavutettavuus Käännä oikealle kielelle Ymmärrä kokonaisuus Yritykset

Lisätiedot

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit Kurssilla: Johdatus käyttäjäkeskeiseen tuotekehitykseen 23.1.2008 Johanna Viitanen johanna.viitanen@soberit.hut.fi Luennon aiheet Tuotekehityksen

Lisätiedot

Työkalut ohjelmistokehityksen tukena

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

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

Prognos Julkaisusuunnitelmat

Prognos Julkaisusuunnitelmat Prognos Julkaisusuunnitelmat Työsuunnitelmiin liittyvien raporttien ja vuosiseminaarien lisäksi suunnitellut julkaisut Casejoryt 09/2005 & JR4 25.1.2005 päivitetty tilanne Casejoryt 04/2006 päivitetty

Lisätiedot

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

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

Lisätiedot

Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/

Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/ Koodaamme uutta todellisuutta FM Maarit Savolainen 19.1.2017 https://blog.edu.turku.fi/matikkaajakoodausta/ Mitä on koodaaminen? Koodaus on puhetta tietokoneille. Koodaus on käskyjen antamista tietokoneelle.

Lisätiedot

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

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

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

Lisätiedot

1. Johdanto. Ohjelmistotuotannon ongelmia

1. Johdanto. Ohjelmistotuotannon ongelmia 1. Johdanto Mitä ohjelmistotuotanto on? ohjelmointi + ohjelmisto + tekniikat + insinööritaito + kurinalainen työskentely Määritelmä (60-luvun ohjelmistokriisi): The establishment and use of sound principles

Lisätiedot

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms. Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,

Lisätiedot

COTOOL dokumentaatio SEPA: Refaktorointi

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

Lisätiedot

Hieman lisää malleista ja niiden hyödyntämisestä

Hieman lisää malleista ja niiden hyödyntämisestä Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu

Lisätiedot

Risto Pelin Microsoft Project 2002 projekti- ja yritystason järjestelmänä

Risto Pelin Microsoft Project 2002 projekti- ja yritystason järjestelmänä Risto Pelin Microsoft Project 2002 projekti- ja yritystason järjestelmänä PROJEKTIJOHTAMINEN OY RISTO PELIN 3 Sisällysluettelo ESIPUHE 7 OSA I PROJEKTIN HALLINTA PROJEKTITASOLLA 1 JOHDANTO 11 1.1 Projektiohjelmien

Lisätiedot

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science Tietojenkäsittelytieteiden koulutusohjelma Tietojenkäsittelytieteet Laskennallinen data-analyysi Ohjelmistotekniikka, käyttöjärjestelmät, ihminen-kone -vuorovaikutus Teoreettinen tietojenkäsittelytiede

Lisätiedot

Mixed Methods tutkimus arvioijan silmin. Vilma Hänninen Metodifestivaali Jyväskylä

Mixed Methods tutkimus arvioijan silmin. Vilma Hänninen Metodifestivaali Jyväskylä Mixed Methods tutkimus arvioijan silmin Vilma Hänninen Metodifestivaali Jyväskylä 29.5.2009 Mixed methods metodikehityksen tarinoissa mixed methods (tutkimuskäytäntö) > Mixed Methods (menetelmäkoulukunta)

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

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

Lisätiedot

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela 22.4.2015 Jukka.kaariainen@vtt.

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela 22.4.2015 Jukka.kaariainen@vtt. Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela 22.4.2015 Jukka.kaariainen@vtt.fi Avoimen tuotteenhallinta Esityksen sisältö Mitä on tuotteenhallinta?

Lisätiedot

Software product lines

Software product lines Thomas Gustafsson, Henrik Heikkilä Software product lines Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Asiantuntijateksti 17.11.2013 Sisällys 1 Johdanto 1 2 Software product

Lisätiedot

Oppivat tuotantokonseptit uusi näkökulma tuotantokonseptien ja välineiden kehittämiseen yrityksissä

Oppivat tuotantokonseptit uusi näkökulma tuotantokonseptien ja välineiden kehittämiseen yrityksissä Oppivat tuotantokonseptit uusi näkökulma tuotantokonseptien ja välineiden kehittämiseen yrityksissä Tuotanto, konseptit, oppiminen yritystoiminnan kehittämisen uudet näkökulmat 25.5.2011 Aalto-yliopiston

Lisätiedot

Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely)

Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely) Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely) Vilma Virasjoki 23.01.2012 Ohjaaja: Jouni Pousi Valvoja: Raimo P. Hämäläinen Työn saa tallentaa

Lisätiedot

OHJE RFID - Suoraohjauskoodin muodostamiseen Toshiba SX sarjan tulostimilla

OHJE RFID - Suoraohjauskoodin muodostamiseen Toshiba SX sarjan tulostimilla OHJE RFID - Suoraohjauskoodin muodostamiseen Toshiba SX sarjan tulostimilla 1.1 Suoraohjauskoodi Suoraohjauskoodi on tulostimen ymmärtämää komentokieltä. Tyypillisesti jokaisella tulostinmerkillä on oma

Lisätiedot

Käyttökokemuksen evaluoinnista käyttökokemuksen ohjaamaan suunnitteluun. ecommunication & UX SUMMIT 18.9.2013 Eija Kaasinen, VTT

Käyttökokemuksen evaluoinnista käyttökokemuksen ohjaamaan suunnitteluun. ecommunication & UX SUMMIT 18.9.2013 Eija Kaasinen, VTT Käyttökokemuksen evaluoinnista käyttökokemuksen ohjaamaan suunnitteluun ecommunication & UX SUMMIT 18.9.2013 Eija Kaasinen, VTT 2 Hyvä käyttökokemus Laadukas käyttökokemus Ylivoimainen käyttäjäkokemus

Lisätiedot

Ohjelmistojen virheistä

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

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

Trialogisen oppimisen suunnitteluperiaatteet

Trialogisen oppimisen suunnitteluperiaatteet Trialogisen oppimisen suunnitteluperiaatteet Tekijät: Hanni Muukkonen, Minna Lakkala, Liisa Ilomäki ja Sami Paavola, Helsingin yliopisto 1 Suunnitteluperiaatteet trialogisen oppimisen pedagogiikalle 1.

Lisätiedot

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto Työmäärän arviointi Sami Kollanus TJTA330 Ohjelmistotuotanto 20.3. Vaihtoehtoja Arvioidaan projektin jälkeen (onnistuu varmasti) Verrataan karkeasti samanlaisiin aiempiin projekteihin Ositetaan projekti

Lisätiedot

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto Työmäärän arviointi Sami Kollanus TJTA330 Ohjelmistotuotanto 20.3. Vaihtoehtoja Arvioidaan projektin jälkeen (onnistuu varmasti) Verrataan karkeasti samanlaisiin aiempiin projekteihin Ositetaan projekti

Lisätiedot

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena Mittaaminen ja ohjelmistotuotanto seminaari 18.04.01 Matias Vierimaa 1 Miksi mitataan? Ohjelmistokehitystä ja lopputuotteen laatua on vaikea arvioida

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

Tarvitseeko informaatioteknologia matematiikkaa?

Tarvitseeko informaatioteknologia matematiikkaa? Tarvitseeko informaatioteknologia matematiikkaa? Oulun yliopisto Matemaattisten tieteiden laitos 1 Kyllä kai IT matematiikkaa tarvitsee!? IT ja muu korkea teknologia on nimenomaan matemaattista teknologiaa.

Lisätiedot

PELIANALYYSIT JA VIDEOKOOSTEET

PELIANALYYSIT JA VIDEOKOOSTEET Kilpa- ja huippu-urheilun tutkimuskeskus KIHU Jyväskylä PELIANALYYSIT JA VIDEOKOOSTEET Mikko Häyrinen Joukkueurheilun kehittäjä www.kihu.fi Pelianalyysin historiaa Ensimmäiset käsin tehtävät analyysit

Lisätiedot

TIETOTEKNIIKAN KOULUTUSOHJELMA

TIETOTEKNIIKAN KOULUTUSOHJELMA TIETOTEKNIIKAN KOULUTUSOHJELMA Tietotekniikan koulutusohjelman toimintaympäristö ja osaamistavoitteet Tietotekniikan koulutusohjelmasta valmistuneet insinöörit sijoittuvat suunnittelu-, ohjelmointi-, esimies-,

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Verkko-oppiminen: Teoriasta malleihin ja hyviin käytäntöihin. Marleena Ahonen. TieVie-koulutus Jyväskylän lähiseminaari

Verkko-oppiminen: Teoriasta malleihin ja hyviin käytäntöihin. Marleena Ahonen. TieVie-koulutus Jyväskylän lähiseminaari Verkko-oppiminen: Teoriasta malleihin ja hyviin käytäntöihin Marleena Ahonen TieVie-koulutus Jyväskylän lähiseminaari Virtuaaliyliopistohankkeen taustaa: - Tavoitteena koota verkko-oppimisen alueen ajankohtaista

Lisätiedot

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kesä 2008 582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

Lisätiedot

RIL tietomalliseminaari Länsimetron 5D-mallinnus. Länsimetro Oy 13.10.2011

RIL tietomalliseminaari Länsimetron 5D-mallinnus. Länsimetro Oy 13.10.2011 RIL tietomalliseminaari Länsimetron 5D-mallinnus Länsimetro Oy 13.10.2011 Länsimetro virtuaalisesti 2 Länsimetromalli Tekes hanke 5D- Tietomalli: 3D = rakenteet ja laitteet, 4D = aika, 5D =määrätiedot,

Lisätiedot

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

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

Lisätiedot

Ohjelmien analysointi. ER-kaaviot

Ohjelmien analysointi. ER-kaaviot Ohjelmien analysointi Ohjelmien kuvaaminen kaavioilla ohjelmien ymmärtäminen kaavioiden avulla kaavioiden tuottaminen ohjelmasta Erilaisia kaaviotyyppejä: ER-kaaviot, tilakaaviot, UML-kaaviot tietohakemisto

Lisätiedot

A4.1 Projektityö, 5 ov.

A4.1 Projektityö, 5 ov. A4.1 Projektityö, 5 ov. Kurssin esitietovaatimuksia Kurssin tavoitteista Kurssin sisällöstä Luentojen tavoitteista Luentojen sisällöstä Suoritustavoista ja -vaatimuksista Arvostelukriteereistä Motivointia

Lisätiedot

ITSM. Olli Saranen Senior Consultant Avoset Oy Oliko ennen kaikki paremmin kuin nykyään? Kivikaudelta nykyaikaan

ITSM. Olli Saranen Senior Consultant Avoset Oy Oliko ennen kaikki paremmin kuin nykyään? Kivikaudelta nykyaikaan ITSM Oliko ennen kaikki paremmin kuin nykyään? Kivikaudelta nykyaikaan Olli Saranen Senior Consultant Avoset Oy 31.8.2016 Esittely Mukana suomalaisten pankkijärjestelmien kehittämisessä ja ylläpitotyössä

Lisätiedot

Tuotekehitysverkoston läpimenoajan lyhentäminen tuotemuutostenhallinnalla ja verkoston tietojärjestelmien integroinnilla

Tuotekehitysverkoston läpimenoajan lyhentäminen tuotemuutostenhallinnalla ja verkoston tietojärjestelmien integroinnilla Tuotekehitysverkoston läpimenoajan lyhentäminen tuotemuutostenhallinnalla ja verkoston tietojärjestelmien integroinnilla Yhteenveto NetData-tutkimusprojektin tuloksista http://www.soberit.hut.fi/netdata/

Lisätiedot

Millainen on onnistunut ICT-projekti?

Millainen on onnistunut ICT-projekti? Millainen on onnistunut ICT-projekti? Ohjelmistotuotannon lehtori Tero Tensu Ahtee Ohjelmistotekniikan laitoksella 1990- Projektityö-kurssilla 1991- pesunkestävä yliopistohampuusi ei päivääkään oikeissa

Lisätiedot

Miten suunnittelu- ja kehitystyötä toteutetaan arkkitehtuurilähtöisesti

Miten suunnittelu- ja kehitystyötä toteutetaan arkkitehtuurilähtöisesti Ohjelmapolku: Otsikko: Strategiasta johtamalla toteutukseen KA-työ mahdollistajana strategioiden toteutukseen Miten suunnittelu- ja kehitystyötä toteutetaan arkkitehtuurilähtöisesti Miten korkeakoulun

Lisätiedot

LCI Finland vuosipäivä 2013. Mitä on Lean Construction?

LCI Finland vuosipäivä 2013. Mitä on Lean Construction? LCI Finland vuosipäivä 2013 Mitä on Lean Construction? Lean Construction Lean Construction is not just another specific approach to construction, but rather a challenger of the conventional understanding

Lisätiedot

KEHITYSYHTEISTYÖ KENTÄLLÄ MIKÄ ON MUUTTUNUT?

KEHITYSYHTEISTYÖ KENTÄLLÄ MIKÄ ON MUUTTUNUT? KEHITYSYHTEISTYÖ KENTÄLLÄ MIKÄ ON MUUTTUNUT? Kehitysyhteistyö kenttäperspektiivistä; mikä on muuttunut (melkein) 30 vuodessa: Lähestymistapa ja fokus Kehitys ja vaikutukset Lähtökohtana omat kokemukset

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

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

Lisätiedot

Opetuksen ja opiskelun tehokas ja laadukas havainnointi verkkooppimisympäristössä

Opetuksen ja opiskelun tehokas ja laadukas havainnointi verkkooppimisympäristössä Opetuksen ja opiskelun tehokas ja laadukas havainnointi verkkooppimisympäristössä Jukka Paukkeri (projektitutkija) Tampereen Teknillinen Yliopisto Matematiikan laitos Intelligent Information Systems Laboratory

Lisätiedot