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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$$$ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ne liittyvät samaan henkilöön, paikkaan, projektiin, asiaan, asiakkaaseen, tapahtumaan tai seikkaan.

Ne liittyvät samaan henkilöön, paikkaan, projektiin, asiaan, asiakkaaseen, tapahtumaan tai seikkaan. 6. Asiakirjapalvelu 6.1 PALVELUINFORMAATIO Palvelun nimi Asiakirjapalvelu Palvelun versio 1.0 Tunnus (ks. M14.4.42) 6.2 Avainkäsitteet 6.2.1 Tarkoituksenmukainen asiakirjakoosteiden muodostaminen MoReq2010

Lisätiedot

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen KEMIA Kemian päättöarvioinnin kriteerit arvosanalle 8 ja niitä täydentävä tukimateriaali Opetuksen tavoite Merkitys, arvot ja asenteet T1 kannustaa ja innostaa oppilasta kemian opiskeluun T2 ohjata ja

Lisätiedot

Juulin kehittäminen: tilannekatsaus

Juulin kehittäminen: tilannekatsaus Juulin kehittäminen: tilannekatsaus VIRTA-julkaisuyhteyshenkilöiden kokous, 4.11.2016 Jyrki Ilva Juuli-julkaisutietoportaali Juuli-portaali (www.juuli.fi) ollut käytössä kesäkuusta 2013 lähtien Uutta dataa

Lisätiedot

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen 16.06.2014 Ohjaaja: Urho Honkanen Valvoja: Prof. Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M ) 10fea, 9c2f, 4760, 9095, f4f9295f4b19

Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M ) 10fea, 9c2f, 4760, 9095, f4f9295f4b19 1 5. Luokittamispalvelu 5.1. Palveluinformaatio Palvelun nimi Luokittamispalvelu Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M14.4.42) 10fea, 9c2f, 4760, 9095, f4f9295f4b19 5.2 Avainkäsitteet 5.2.1

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

Automaattinen semanttinen annotointi

Automaattinen semanttinen annotointi Automaattinen semanttinen annotointi Matias Frosterus, Reetta Sinkkilä, Katariina Nyberg Semantic Computing Research Group (SeCo) School of Science and Technology, Department of Media Technology and University

Lisätiedot

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 582101 - Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 1 Vaatimukset ja käyttötapaukset Vaiheittainen mallintaminen ja abstraktiotasot Järjestelmän rajaaminen sidosryhmäkaaviolla

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

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

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

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

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit. Syksy 2010 Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

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

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot

Standardi IEC Ohjelmisto

Standardi IEC Ohjelmisto Sundcon Oy Standardi IEC 61508 3 Ohjelmisto muutokset Matti Sundquist Sundcon Oy www.sundcon.fi Standardi IEC 61508 3 (1) Standardissa di esitetään vaatimukset niiden tietojen ja menettelytapojen valmisteluun,

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit Prosessimallit Prosessimalli on ohjelmiston elinkaaren rakenteen määrittely ts. kuvaus sille millaisten vaiheiden kautta ohjelmisto kehittyy ideasta hautaan mahdollisimman yleisesti sovellettavissa oleva

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

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

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

Lisätiedot

Ei näyttöä tai puheen tasolla

Ei näyttöä tai puheen tasolla Jyväskylän yliopisto 1(5) Dokumenteilla tarkoitetaan suuntaa ohjaavia asiakirjoja, strategioita ja linjauksia. Keskeisiä ovat vain ko. auditointikohdetta koskevat ja ohjaavat dokumentit. Dokumentit voivat

Lisätiedot

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 1.4 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi

Lisätiedot

Interfacing Product Data Management System

Interfacing Product Data Management System Interfacing Product Data Management System Tekijä: Työn valvoja: Mats Kuivalainen Timo Korhonen Esitelmän sisältö Työn suorituspaikka - Ideal Product Data Oy Käsitteitä Työn tavoitteet Työn tulokset 1/5

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_RI.doc Päiväys: Projekti : AgileElephant Versio: V0.2

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

Lisätiedot

KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA

KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA Tarjouspyyntö Liite 5.3: Järjestelmän ylläpidettävyden arviointi 1 / 5 VERSIOHISTORIA Päivä Versio Kuvaus Tekijä 22.4.15 3.01 Poistettu kotihoito

Lisätiedot

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. Pekka Ollikainen Open Source Microsoft CodePlex bio Verkkosivustovastaava Suomen Sarjakuvaseura

Lisätiedot

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

Lisätiedot

Uusi toimintamalli henkilöturvallisuuden parantamiseen räjähdysvaarallisissa työympäristöissä. Tuija Luoma, VTT

Uusi toimintamalli henkilöturvallisuuden parantamiseen räjähdysvaarallisissa työympäristöissä. Tuija Luoma, VTT Uusi toimintamalli henkilöturvallisuuden parantamiseen räjähdysvaarallisissa työympäristöissä Tuija Luoma, VTT RÄJÄHDYSVAARALLISEN TYÖYMPÄRISTÖN HENKILÖTURVALLISUUTEEN VAIKUTTAVAT TEKIJÄT Tekijät määritetty

Lisätiedot

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

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

Lisätiedot

Taloteknisen suunnittelun tehtäväluettelo

Taloteknisen suunnittelun tehtäväluettelo Taloteknisen suunnittelun tehtäväluettelo HUS-suunnittelijaseminaari 18.9.2014 Kari Kaleva / Granlund Oy Esityksen sisältö Uudet suunnitteluvaiheet Taloteknisen tehtäväluettelon rakenne Avoimen rakentamisen

Lisätiedot

Tieto- ja viestintätekniikkaa opetustyön tueksi

Tieto- ja viestintätekniikkaa opetustyön tueksi Tieto- ja viestintätekniikkaa opetustyön tueksi Opettajat arvioinnin ja koulu-koti-yhteistyön toteuttajina Heidi Krzywacki, Tiina Korhonen, Laura Koistinen, Jari Lavonen 19.8.2011 1 Tutkimus- ja kehittämishankkeessa

Lisätiedot

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

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

Lisätiedot

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus Lehmus, Auvinen, Pihamaa Johdanto Käyttäjätestauksella tarkoitetaan tuotteen tai sen prototyypin testauttamista todellisilla käyttäjillä. Kehittäjät

Lisätiedot

Avoimen lähdekoodin kehitysmallit

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

Lisätiedot

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg Matematiikan ja tilastotieteen laitos Tietojenkäsittelytieteen laitos Kisällioppiminen = oppipoikamestari

Lisätiedot

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen 1 FYSIIKKA Fysiikan päättöarvioinnin kriteerit arvosanalle 8 ja niitä täydentävä tukimateriaali Opetuksen tavoite Merkitys, arvot ja asenteet T1 kannustaa ja innostaa oppilasta fysiikan opiskeluun T2 ohjata

Lisätiedot

Osakkeen arvonmääritys. Onnistunut sijoituspäätös

Osakkeen arvonmääritys. Onnistunut sijoituspäätös Osakkeen arvonmääritys Onnistunut sijoituspäätös Teos pohjautuu osittain aiemmin useana painoksena nimillä Yrityksen arvonmääritys ja Uusi yrityksen arvonmääritys ilmestyneeseen teokseen. Copyright 2012

Lisätiedot

15 Opetussuunnitelma OSAAMISEN ARVIOINTI ARVIOINNIN KOHTEET JA AMMATTITAITOVAATIMUKSET OSAAMISEN HANKKIMINEN

15 Opetussuunnitelma OSAAMISEN ARVIOINTI ARVIOINNIN KOHTEET JA AMMATTITAITOVAATIMUKSET OSAAMISEN HANKKIMINEN Hyväksymismerkinnät 1 (6) Ammaattiosaamisen näyttö Näytön kuvaus Tutkinnon osasta ei anneta ammattiosaamisen näyttöä (kts. tutkinnon osan arvosanan muodostuminen) Näytön arviointi ja arvioijat: (kts. tutkinnon

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

Kansantalouspeli & Beer Game

Kansantalouspeli & Beer Game MS-C2132 Systeemianalyysilaboratorio I Laboratoriotyö 1 Kansantalouspeli & Beer Game Systeemiajattelu ja pelaaminen dynaamisten systeemien ymmärtämisessä Kansantalouspeli Laboratoriotyö 1 Tavoitteena ohjata

Lisätiedot

Mitä taitoja tarvitaan tekstin ymmärtämisessä? -teorian kautta arkeen, A.Laaksonen

Mitä taitoja tarvitaan tekstin ymmärtämisessä? -teorian kautta arkeen, A.Laaksonen Mitä taitoja tarvitaan tekstin ymmärtämisessä? -teorian kautta arkeen, A.Laaksonen Lukemisen taitoja Tulisi kehittää kaikissa oppiaineissa Vastuu usein äidinkielen ja S2-opettajilla Usein ajatellaan, että

Lisätiedot

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

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

Lisätiedot

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi Käytettävyys ja käyttäjätutkimus Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi Teron luennot Ke 15.2 miniluento Ti 28.2 viikkotehtävän anto (T,M) To 1.3 Tero paikalla (tehtävien tekoa) Ti 6.3

Lisätiedot

ITK130 Ohjelmistoprosessi

ITK130 Ohjelmistoprosessi ITK130 Ohjelmistoprosessi Ohjelmistotuotteen elinkaari Ohjelmistoprosessimalli Koodaa ja korjaa Miksi ohjelmistoprosesseja? Prosessimallin tavoitteet Prosessi ongelmaratkaisuna Prosessi, musta laatikko

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 7 1 Useamman muuttujan funktion raja-arvo Palautetaan aluksi mieliin yhden muuttujan funktion g(x) raja-arvo g(x). x a Tämä raja-arvo kertoo, mitä arvoa funktio g(x)

Lisätiedot

Sisällönhallinnan menetelmiä

Sisällönhallinnan menetelmiä Sisällönhallinnan menetelmiä Airi Salminen Jyväskylän yliopisto http://www.cs.jyu.fi/~airi/ Suomalaisen lainsäädäntötyön tiedonhallinta: suuntana semanttinen web RASKE2-projektin loppuseminaari Eduskunnassa

Lisätiedot

Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio

Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio 1 Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio Teppo Jalkanen Asiantuntijapäällikkö: Arkkitehtuuriohjaus OP Arkkitehtuuri 23.9.2016 Järjestelmäsalkunhallinnan käyttöönotto

Lisätiedot

Uusi NetPalkka: Vain sähköisiä palkkalaskelmia koko henkilöstölle Valtio Marina Congress Center, Hki.

Uusi NetPalkka: Vain sähköisiä palkkalaskelmia koko henkilöstölle Valtio Marina Congress Center, Hki. Uusi NetPalkka: Vain sähköisiä palkkalaskelmia koko henkilöstölle 7.5.2009 Valtio Expo @ Marina Congress Center, Hki www.netposti.fi 1 Palkkalaskelmat NetPostiin - NetPalkka NetPalkka on monikanavainen

Lisätiedot

Seminaariaiheet. Tietoturvaseminaari, kevät 03 Lea Viljanen, Timo Karvi

Seminaariaiheet. Tietoturvaseminaari, kevät 03 Lea Viljanen, Timo Karvi Seminaariaiheet Tietoturvaseminaari, kevät 03 Lea Viljanen, Timo Karvi 1. BS7799 / ISO 17799 Perustava tietoturvastandardi Kaksiosainen Mikä on BS7799 / ISO17799? Mihin se antaa vastaukset? Mihin se ei

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

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

Lisätiedot

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan? Kurssin sisältö Johdatus ohjelmistotekniikkaan 2 0 0 8 Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan? Mitä työkaluja ohjelmistoja kehitettäessä käytetään ja miten? Historiaa

Lisätiedot

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit Irmeli Luukkonen, Itä-Suomen Yliopisto, Tietojenkäsittelytieteen laitos, HIStutkimusryhmä SOLEA-seminaari, 25.11. 2011 klo 9-16, Dipoli, Espoo Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot,

Lisätiedot

DIPLOMITYÖ ARI KORHONEN

DIPLOMITYÖ ARI KORHONEN DIPLOMITYÖ ARI KORHONEN TEKNILLINEN KORKEAKOULU Diplomityö Tietotekniikan osasto 20.5.1997 Ari Korhonen WORLD WIDE WEB (WWW) TIETORAKENTEIDEN JA ALGORITMIEN TIETOKONEAVUSTEISESSA OPETUKSESSA Työn valvoja

Lisätiedot

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke Rakenteisuus kahdella tasolla Oppimisaihiot ( Learning Objects

Lisätiedot

Automaattitilausten hallinta

Automaattitilausten hallinta Automaattitilausten hallinta Automaattitilauksilla voidaan automatisoida kopiotilaukset tuotantolaitokselle. Työkalulla voitte määritellä kansio- sekä tiedostokohtaisia automaattitilauksia. Joka yö SokoPro

Lisätiedot

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( ) PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma (1.5.2002-31.8.2004) Ydin-osaprojekti: potilastietojen toiminnallisen hallinnan näkökulma Yhteisten ydinkomponenttien määrittely" Ydin-osaprojektin rooli

Lisätiedot

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

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

Lisätiedot

5. HelloWorld-ohjelma 5.1

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

Lisätiedot

KDK-asiakasliittymä linjauksia KDK-seminaari Kristiina Hormia-Poutanen

KDK-asiakasliittymä linjauksia KDK-seminaari Kristiina Hormia-Poutanen KDK-asiakasliittymä linjauksia 2012 KDK-seminaari 21.3.2012 Kristiina Hormia-Poutanen Asiakasliittymä pohjustusta linjauksille KDK-johtoryhmä 9.12.2011 Kansalliskirjaston esitys: Puretaan Kansalliskirjaston

Lisätiedot

Monimutkaisesta datasta yksinkertaiseen päätöksentekoon. SAP Finug, Emil Ackerman, Quva Oy

Monimutkaisesta datasta yksinkertaiseen päätöksentekoon. SAP Finug, Emil Ackerman, Quva Oy Monimutkaisesta datasta yksinkertaiseen päätöksentekoon SAP Finug, 9.9.2015 Emil Ackerman, Quva Oy Quva Oy lyhyesti Quva kehittää innovatiivisia tapoja teollisuuden automaation lisäämiseksi Internetin

Lisätiedot