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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TIETOTEKNIIKAN KOULUTUSOHJELMA

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

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

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

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

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

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

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

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

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

Sosiaalihuollon asiakasasiakirjojen tietomallinnus Tietomallit teknisen asiakirjamäärittelyn näkökulmasta

Sosiaalihuollon asiakasasiakirjojen tietomallinnus Tietomallit teknisen asiakirjamäärittelyn näkökulmasta Sosiaalihuollon asiakasasiakirjojen tietomallinnus Tietomallit teknisen asiakirjamäärittelyn näkökulmasta Riikka Huttunen Suunnittelija Tietojenkäsittelytieteen laitos Kuopion Yliopisto 1 11.5.2009 Sisältö

Lisätiedot

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012. Luento 9: Ohjelmistotuotanto, peruskäsitteitä

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012. Luento 9: Ohjelmistotuotanto, peruskäsitteitä OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 9: Ohjelmistotuotanto, peruskäsitteitä Luentoaikataulu ke 12.9. Ohjelmistotuotanto ma 17.9. Mikroprosessori, konekieli, ohjelmointi ke 19.9. Käyttöjärjestelmät

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

SFS, 27.11 2014 STANDARDIEHDOTUKSEN ISO/DIS 14001 ESITTELY

SFS, 27.11 2014 STANDARDIEHDOTUKSEN ISO/DIS 14001 ESITTELY SFS, 27.11 2014 STANDARDIEHDOTUKSEN ISO/DIS 14001 ESITTELY Anna-Liisa Koskinen SISÄLTÖ Uusi rakenne Uusia määritelmiä Keskeisistä muutoksista 2 ISO 14001 ympäristöjohtamisjärjestelmä ISO 14001 on tunnettu

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

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

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

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

Solmutyöskentely tietomalliprosessin tehostajana

Solmutyöskentely tietomalliprosessin tehostajana RAKENNETTU YMPÄRISTÖ Tarvitaanko tätä palkkia? Solmutyöskentely tietomalliprosessin tehostajana Elina Mäkelä, Hannele Kerosuo, Marko Rajala, Tuomas Laine MODEL NOVA New Business Model Based on Process

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

Opinto-oppaiden rakenteistaminen JY:ssä

Opinto-oppaiden rakenteistaminen JY:ssä 9.2.2011 Opinto-oppaiden rakenteistaminen JY:ssä Miika Nurminen Jyväskylän yliopisto Informaatioteknologian tiedekunta Sisältö Lähtökohta Xoo-järjestelmä Käyttöesimerkki Arviointia Lähtökohta Opinto-oppaat

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

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

LAS- ja ilmakuva-aineistojen käsittely ArcGIS:ssä

LAS- ja ilmakuva-aineistojen käsittely ArcGIS:ssä Esri Finland LAS- ja ilmakuva-aineistojen käsittely ArcGIS:ssä November 2012 Janne Saarikko Agenda Lidar-aineistot ja ArcGIS 10.1 - Miten LAS-aineistoa voidaan hyödyntää? - Aineistojen hallinta LAS Dataset

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

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! eli... Hyvä kaava sanoo enemmän kuin,... tuhat riviä koodia!... sata riviä tekstiä!... kymmenen diagrammia! YLEISTÄ FORMAALEISTA

Lisätiedot

ELMAS 4 Laitteiden kriittisyysluokittelu 8.2.2012 1/10. Ramentor Oy ELMAS 4. Laitteiden kriittisyysluokittelu. Versio 1.0

ELMAS 4 Laitteiden kriittisyysluokittelu 8.2.2012 1/10. Ramentor Oy ELMAS 4. Laitteiden kriittisyysluokittelu. Versio 1.0 1/10 Ramentor Oy ELMAS 4 Laitteiden kriittisyysluokittelu Versio 1.0 2/10 SISÄLTÖ 1 Kuvaus... 3 2 Kriittisyysluokittelu ELMAS-ohjelmistolla... 4 2.1 Kohteen mallinnus... 4 2.2 Kriittisyystekijöiden painoarvojen

Lisätiedot

Turvakriittisen projektin menetelmät ja työkalut

Turvakriittisen projektin menetelmät ja työkalut Turvakriittisen projektin menetelmät ja työkalut 1. Vaatimushallinta Vaatimushallintaan kohdistuu turvaluokitelluissa projekteissa paljon odotuksia. Etenkin jäljitettävyys vaatimuksiin, testaukseen ja

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

14/20: Keittokirja I

14/20: Keittokirja I Ohjelmointi 1 / syksy 2007 14/20: Keittokirja I Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/13 Tämän luennon

Lisätiedot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Sosiaalihuollon asiakastietomallin hallinta

Sosiaalihuollon asiakastietomallin hallinta Sosiaalihuollon asiakastietomallin hallinta Jarmo Kärki & Erja Ailio 24.6.2014 Asiakastietomallin hallinta / Kärki & Ailio 1 Esityksen sisältö Millainen ylläpidon ja kehittämisen rakenne on sosiaalihuollon

Lisätiedot

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

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

Lisätiedot

11.10.2013 Tekijän nimi

11.10.2013 Tekijän nimi 11.10.2013 Tekijän nimi Arkkitehtuuri kehittämisen välineenä Kokonaisarkkitehtuuri hallitun muutoksen avaimena Etelä-Savon maakuntaliitto 10.10.2013 Markku Nenonen Tutkijayliopettaja Mikkelin ammattikorkeakoulu

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

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuuri Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri

Lisätiedot

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia Laatu tietojärjestelmähankkeissa Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia 5.10.2010 Pohdintaa tietojärjestelmien laadusta Mitä on laatu Miten laatua tavoitellaan tietojärjestelmäprojekteissa

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

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara Mitä? Mitä? Yrityksen sisäinen Mitä? Yrityksen sisäinen Alihankinta Mitä? Yrityksen sisäinen Open Source -kehitys Alihankinta

Lisätiedot

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2008 Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen

Lisätiedot

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU Fujitsu SPICE Lite Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat Copyright 2010 FUJITSU Laatu ja prosessit Fujitsussa Laatujärjestelmän rakentaminen ja systemaattinen prosessijohtaminen

Lisätiedot

HUS-Kiinteistöt Oy:n tietomallipohjainen investointiprosessi

HUS-Kiinteistöt Oy:n tietomallipohjainen investointiprosessi HUS-Kiinteistöt Oy:n tietomallipohjainen investointiprosessi Esitelmä 17.9.-14 HUS-Kiinteistöt Oy:n toimintaympäristö Onnistunut rakennusinvestointi Tietomallipohjainen investointiprosessi Tietomallintamisen

Lisätiedot

Nimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla:

Nimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla: a) käytettävyys b) käyttäjäkeskeinen suunnittelu c) luonnollinen kieli

Lisätiedot

PlanMan Project 2010 -projektihallintaohjelmisto

PlanMan Project 2010 -projektihallintaohjelmisto PlanMan Project 2010 -projektihallintaohjelmisto (PlanMan Project2000 projektihallintaohjelmisto on PlanMan Oy:n kehittämä ja ylläpitämä tuote) 7.5.2010 Pekka Väätänen PlanMan Project 2010 -yleiskuvaus

Lisätiedot

Lasten toiminnan dokumentointi varhaiskasvatuksessa. Mikko Mäkelä Maisteriharjoittelija VKK-Metro

Lasten toiminnan dokumentointi varhaiskasvatuksessa. Mikko Mäkelä Maisteriharjoittelija VKK-Metro Lasten toiminnan dokumentointi varhaiskasvatuksessa Mikko Mäkelä Maisteriharjoittelija VKK-Metro Dokumentointi Dokumentointi on todellisen tapahtuman, ilmiön, idean tai rakenteen tarkkaa kuvaamista, joka

Lisätiedot

Tietotekniikan koulutus ammattikorkeakouluissa 2012 Uudellamaalla

Tietotekniikan koulutus ammattikorkeakouluissa 2012 Uudellamaalla ammattikorkeakouluissa 2012 Uudellamaalla ICT-alan ennakointikamari 17.4.2012 Terttu Honkasaari HAAGA-HELIA ammattikorkeakoulu ammattikoreakouluissa Koulutustasot: Master Bachelor Luonnontieteiden koulutusala

Lisätiedot

IBM Iptorin pilven reunalla

IBM Iptorin pilven reunalla IBM Iptorin pilven reunalla Teppo Seesto Arkkitehti Pilvilinnat seesto@fi.ibm.com Cloud Computing Pilvipalvelut IT:n teollistaminen Itsepalvelu Maksu käytön mukaan Nopea toimitus IT-palvelujen webbikauppa

Lisätiedot

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma 12.11.2007 Janne J. Korhonen 12.11.2007 Agenda 1. Prosessit ja palvelut, BPM ja SOA 2. BPM-projekteista yleensä 3. Prosessin elinkaarimalli 4. Kokemuksia

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Infran tuotetietojen hallinta, nykytilanne

Infran tuotetietojen hallinta, nykytilanne Infran tuotetietojen hallinta, nykytilanne Infrajohtaminen Tavoitteen määrittely Suunnittelu Eri osa-alueilla ja vaiheilla omat järjestelmänsä ja tietomallinsa Toiminta perustuu tiedonsiirtoon: konversiot

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut Samuli Pekkola Aki Alanne Taru Salmimaa Novi Research Center Tampereen teknillinen yliopisto Sisältö tausta, motiivi ja konteksti

Lisätiedot

17/20: Keittokirja IV

17/20: Keittokirja IV Ohjelmointi 1 / syksy 2007 17/20: Keittokirja IV Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/10 Tavoitteita

Lisätiedot

CAD/CAM Software with world class precision and control. What s Uusi

CAD/CAM Software with world class precision and control. What s Uusi What s Uusi SURFCAM V5.2 Mitä Uutta Page 1 of 19 Toukokuu 2011 Mitä uutta - SURFCAM V5.2 Sisällysluettelo 1) Uusi - Millturn valikko 3 2) Uusi HSM Z-rouhinta rata 4 3) Uusi - Valintojen multi maskaus 6

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

Muotoilumaailman hahmottaminen - Tuotesemantiikka

Muotoilumaailman hahmottaminen - Tuotesemantiikka TUOTESEMANTIIKAN TEORIA kreik. semeion = merkki Tuotesemantiikka kiinnostaa tutkimusmielessä monia erilaisia tuotteiden kanssa tekemisiin joutuvia elämänalueita. Sellaisia ovat esimerkiksi Markkinointi,

Lisätiedot

Avoimella tiedonsiirrolla kohti kulttuurimuutosta 3.4.2014

Avoimella tiedonsiirrolla kohti kulttuurimuutosta 3.4.2014 Avoimella tiedonsiirrolla kohti kulttuurimuutosta 3.4.2014 Mitä mallintamisella tavoitellaan Tuottavuuden parantamista Virheiden vähenemistä Laatua Kustannustenhallintaa Määrätietoutta Kommunikoinnin ja

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan CC1991:n ja CC2001:n vertailu Tutkintovaatimukset (degree requirements) Kahden ensimmäisen vuoden opinnot Ohjelmistotekniikan

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

Arkkitehtuuri muutosagenttina

Arkkitehtuuri muutosagenttina Arkkitehtuuri muutosagenttina Smarter Processes, Development & Integration Hannu Salminen CTO OP-Pohjola 2013 IBM Corporation Taustaa Nykyinen IT-arkkitehtuuri ja liiketoimintatarpeet eivät kohtaa OP-Pohjolan

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

Aineiston luovuttaminen tilaajalle KSE13 Tietomallit ja sähköinen aineisto. Matti Kiiskinen 12.2.2014/Telu-koulutus

Aineiston luovuttaminen tilaajalle KSE13 Tietomallit ja sähköinen aineisto. Matti Kiiskinen 12.2.2014/Telu-koulutus Aineiston luovuttaminen tilaajalle KSE13 Tietomallit ja sähköinen aineisto Matti Kiiskinen 12.2.2014/Telu-koulutus KSE 2013, keskeiset muutokset liittyen konsulttityön luovutukseen Asiakirjat -> Aineisto

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

ITK130 Ohjelmistojen luonne

ITK130 Ohjelmistojen luonne ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys

Lisätiedot

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015 Fiksumpi käyttöliittymä kuntaan Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015 Otso Kivekäs 20.8.2015 Otso Kivekäs+ Codento Kehittämispäällikkö, kunta-alan projektit

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

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

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

Lisätiedot

Ohjelmistotekniikan menetelmät, koe 2.5.2014

Ohjelmistotekniikan menetelmät, koe 2.5.2014 Ohjelmistotekniikan menetelmät, koe 2.5.2014 Vastaa tehtävään 3 erilliselle konseptille. Tehtävät 1 ja 2 saavat olla samalla konseptilla. Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistoprojektien hallinta Vaihejakomallit Ohjelmistoprojektien hallinta Vaihejakomallit Vaihejakomallit TAVOITE: YMMÄRTÄÄ eri vaihejakomallien etujajahaittoja 2 Erilaisia malleja Tee ja korjaa (Code-and-Fix) Vesiputousmalli (Waterfall) Vesiputousmalli

Lisätiedot

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Soft QA. Vaatimusten muutostenhallinta. Ongelma Vaatimusten muutostenhallinta Ongelma Muutostenhallinta on usein vaatimustenhallinnan Akilleen kantapää. Projektien alkaessa ensimmäiset vaatimukset kootaan ja dokumentoidaan, mutta usein vaatimuksia ei

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

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

Visual Case 2. Miika Kasnio (C9767) 23.4.2008

Visual Case 2. Miika Kasnio (C9767) 23.4.2008 Visual Case 2 Miika Kasnio (C9767) 23.4.2008 Työn tarkasti: Jouni Huotari 24.4.2008 1 SISÄLTÖ 1. TYÖN LÄHTÖKOHDAT... 2 2. PERUSTIEDOT... 2 3. ASENTAMINEN... 2 4. OMINAISUUDET... 3 4.1. UML-kaaviot... 4

Lisätiedot