Hajautettujen järjestelmien hajautettu kehittäminen

Koko: px
Aloita esitys sivulta:

Download "Hajautettujen järjestelmien hajautettu kehittäminen"

Transkriptio

1 1 Hajautettujen järjestelmien hajautettu kehittäminen M. Lampi Tiivistelmä Tässä tutkimuksessa esitetään hajautetun kehittämisen toteutusteknologioille ja arkkitehtuuriratkaisuille asettamia haasteita, muodostetaan niiden avulla joukko arviointikriteerejä ja vertaillaan kahta yleisesti tunnettua hajautettujen järjestelmien toteutusteknologiaa, CORBA ja Web Services, näitä arviointikriteereitä vastaan. Arviointikriteerit muodostettiin hajautetun kehittämisen kirjallisuudesta löydettyjen yleisimpien ongelmakenttien avulla. Löydetyt ongelmakentät olivat: Kommunikaatio, Projektin koordinointi, Resurssien allokointi ja työn jakaminen ja Asiantuntemuksen hallinta. Tämän jälkeen etsittiin kirjallisuudesta niihin liittyviä arkkitehtuurisia haasteita, joiden pohjalta muodostettiin arviointikriteerit. Arviointikriteereitä muodostettiin neljä kappaletta: Arkkitehtuurimalli, Dokumentointi, Alustariippumattomuus, Suunnittelumenetelmät ja Design patternit. Valitut teknologiat arvioitiin näiden kriteerien suhteen. Arvioinnin tuloksena todettiin, että nämä teknologiat ovat tässä suhteessa hyvin samanlaisia, molemmilla on hyvä arkkitehtuurituki hajautettujen järjestelmien hajautettuun kehittämiseen ja molempia teknologioita voidaan käyttää useissa erilaisissa ympäristöissä. Tutkimuksessa löytyi kuitenkin joukko pienempiä eroavaisuuksia, jotka tietyissä olosuhteissa tulevat hyvinkin ratkaiseviksi, esimerkiksi asennukset ja dokumentointi. Avainsanat Hajautettu kehittäminen, hajautetut järjestelmät, CORBA, Web Services A. Tausta I. JOHDANTO Nykyaikaiset komponenttiteknologiat mahdollistavat järjestelmien tehokkaan hajauttamisen ja järjestelmien hajauttaminen on myös hyvin yleistä. Järjestelmien kehittäminen tapahtuu usein hajautetusti organisaation sisäisesti, yhteistyökumppaneiden tai tytäryhtiöiden kanssa. Alalla vallitseva tilanne, joka ajaa pieniä yhtiöitä yhteen ja ulkoistamaan kehittämisen, lisää hajautetun kehittämisen tarvetta entisestään. Tutkimuksen tarkoituksena on selvittää, miten erilaisten teknologioiden arkkitehtuurimallit ja näihin liittyvät tunnetut suunnittelumenetelmät vastaavat tähän kasvavaan tarpeeseen. B. Tutkimusongelma Tutkimusongelma voidaan ilmaista seuraavan kysymyksen muodossa: Miten hajautettujen järjestelmien toteutusteknologiat ja niiden arkkitehtuurit soveltuvat hajautettuun kehittämiseen? Tutkimusongelman ratkaisemiseksi työssä pyritään etsimään vastauksia myös seuraaviin kysymyksiin: Minkälaisia vaatimuksia hajautettu kehittäminen asettaa järjestelmäarkkitehtuureille? Minkälaisia ovat hajautettujen järjestelmien kehittämisessä käytettävien teknologioiden arkkitehtuuriratkaisut? C. Tavoitteet Tutkimuksen tavoitteena on selvittää, kuinka hyvin hajautetut järjestelmät soveltuvat hajautettuun kehittämiseen. Tutkimuksessa käsiteltävät toteutusteknologiat mahdollistavat järjestelmien tehokkaan hajauttamisen, mutta näiden samaisten arkkitehtuurien soveltuminen hajautettuun kehitykseen on asia, johon tämä tutkimus yrittää vastata. D. Rajaukset Tutkimuksessa käsitellään yleisimpiä hajautettujen järjestelmien kehittämiseen soveltuvia toteutusteknologioita. Muut toteutusteknologiat rajataan tämän tutkimuksen piiristä. Mielenkiintoisia näistä toteutusteknologioista tekee se, että ne ovat yleisesti melko tunnettuja, paljon käytettyjä, kilpailevat keskenään samoista markkinoista ja ovat usein mukana yritysten teknologiavalinnoissa. Tutkimuksessa keskitytään valittujen toteutusteknologioiden arkkitehtuurien ja niiden suunnittelumenetelmien kartoittamiseen ja analysointiin hajautetuissa järjestelmissä, muut toteutusteknologiat ja arkkitehtuurit ja niiden soveltuvuus hajautettuun kehittämiseen eivät kuulu tämän tutkimuksen piiriin. E. Käytettävät tutkimusmenetelmät Tutkimus suoritetaan kirjallisuuskatsauksena ja empiirisenä tutkimuksena. Aluksi tutkitaan hajautetun kehittämisen ongelmia ja niiden arkkitehtuureille asettamia vaatimuksia kirjallisuuskatsauksen avulla. Tämän jälkeen empiirisessä osassa muodostetaan katsauksen pohjalta arviointikriteerit, joiden avulla arvioidaan seuraavassa osiossa esitettävien toteutusteknologioiden ja suunnittelumenetelmien soveltuvuutta hajautettuun kehittämiseen. Näiden kahden osan perusteella analysoidaan teknologioiden sopivuutta hajautettuun kehittämiseen vertaamalla valittujen toteutusteknologioiden arkkitehtuuriratkaisuja ja suunnittelumenetelmiä muodostettuihin arviointikriteereihin. Lopuksi kerätään saadut tulokset yhteen.

2 2 II. HAJAUTETTU KEHITTÄMINEN JA ARKKITEHTUURI A. Hajautettu kehittäminen Puhuttaessa hajautetusta kehittämisestä tarkoitetaan usein varsin eri asioita, eikä termin yksiselitteinen määrittely ei ole helppo tehtävä. Hajautetulla kehittämisellä voidaan yksinkertaisimmillaan tarkoittaa sitä, että kehittämisorganisaatio on maantieteellisesti hajautettu (Herbsleb et al., 2001). Toinen, hieman kattavampi määrittely on, että kehittämisen ei tarvitse olla maantieteellisesti hajautettua, vaan myös saman talon eri kerroksissa tai jopa saman käytävän eri päissä tapahtuvaa kehittämistä voidaan ajatella tietyllä tavalla hajautetuksi kehittämiseksi(herbsleb et al., 2001). Yksi määrittely, ohjelmiston kehittämistavasta riippuva, käsittää hajautettuna kehittämisenä kehitystyön, jossa järjestelmä kehitetään hajautetussa ympäristössä. (Sugiyama, 2000). Tässä kirjallisuuskatsauksessa tarkoitetaan hajautetulla kehittämisellä kehittämistä, joka tapahtuu sellaisessa ympäristössä ja olosuhteissa, että kehittäjät eivät voi työskennellä samassa paikassa samaan aikaan. B. Hajautetun kehittämisen haasteet Hajautettua kehittämistä käsittelevästä kirjallisuudesta löytyy suuri joukko erilaisia haasteita. Tässä tutkimuksessa otettiin tarkasteltavaksi neljä yleistä ongelmakenttää ja niihin liittyvät haasteet. Kirjallisuudesta (Herbsleb et al., 2000; Mockus et al., 2001; Herbsleb et al., 2001; Battin et al., 2001) löydettyjen yleisten hajautetun kehittämisen ongelmien joukosta valittiin nämä neljä ongelmakenttää sillä perusteella, että näihin liittyviin haasteisiin voidaan oletettavasti vaikuttaa teknologiavalinnoilla, arkkitehtuuriratkaisuilla ja suunnittelumenetelmillä. Tarkasteltavaksi valitut ongelmakentät: 1. Kommunikaatio 2. Projektin koordinointi 3. Resurssien allokointi ja työn jakaminen 4. Asiantuntemuksen hallinta Seuraavissa kappaleissa käsitellään näitä ongelmakenttiä ja niistä löytyviä haasteita. 1) Kommunikaatio Useat lähteet kuvaavat kommunikaation yhdeksi suurimmaksi ja eniten vaikeuksia tuottavaksi haasteeksi hajautetussa kehittämisessä (Ebert, 2001; Herbsleb et al., 2001; Paasivaara, 2003). Paasivaara (2003) esittää neljä luokkaa, joihin kommunikaatio voidaan jakaa, 1) ongelmien ratkaisu, 2) tiedotus ja valvonta, 3) suhteiden luonti ja 4) päätösten tekeminen ja koordinointi. Näistä neljästä luokasta yritetään luokkiin 1, 2 ja 4 etsiä arkkitehtuurisia vaikutustapoja. Kommunikaatioon liittyvät haasteet aiheuttavat hajautetuissa projekteissa monia ongelmia, joista tässä esitetään näihin kolmeen valittuun luokkaan liittyvät yleisimmät ongelmat. Luokkaan 1, ongelmien ratkaisu, liittyy oikean henkilön löytäminen (Herbsleb et al., 2001; Paasivaara, 2003). Tämä on erityisen yleistä hajautetuissa projekteissa, koska hajautetuista projekteista puuttuu epävirallinen kommunikaatio, jonka avulla tieto projektiin osallistuvien henkilöiden erityisosaamisista leviää organisaatiossa (Herbsleb et al., 2001). Tämän kanavan puuttuminen aiheuttaa viivettä oikean henkilön löytämiseen ja ongelman ratkaisuun. Toinen ongelma on vastauksen saamiseen kuluva aika. Koska hajautetussa kehittämisessä oikea henkilö voi olla hyvinkin kaukana ja työskennellä eri vuorokauden aikaan, aiheutuu tästä vastauksen saamiseen merkittävä lisäviive (Herbsleb et al., 2000). Luokkaan 2, tiedotus ja valvonta, liittyy muutoksista ja projektin etenemisestä tiedottaminen ja etenemisen valvonta (Herbsleb et al., 2001). Varsinkin muutoksista tiedottamista pidetään erityisen ongelmallisena, koska niiden tiedottaminen formaalien dokumenttien kautta on vaikeaa (Mockus et al., 2001). Epävirallisen kommunikaation puute vaikuttaa vahvasti myös tähän ongelmaan, koska tiedot muutoksista yms. Projektiin liittyvistä asioista leviävät usein juuri tällaisten käytäväkeskustelujen kautta (Herbsleb et al., 2000). Myös projektin etenemisen seuranta ja projektin eri jäsenten tietous projektin tilasta vaikeutuu epävirallisen kommunikaation puuttuessa, koska suuri osa tällaisesta informaatiosta välittyy juuri tämän kanavan kautta lokaalisti tapahtuvissa projekteissa, varsinkin silloin kun on kyseessä nopeasti muuttuvat olosuhteet ja epästabiilit projektit (Kraut et al., 1995). Viimeiseen tässä käsiteltävään luokkaan, luokkaan 4, liittyy haasteina vastuiden jakaminen hajautettujen resurssien ja organisaatiotasojen kesken, oikeiden henkilöiden löytäminen päätöksiä tehtäessä ja näistä päätöksistä tiedottaminen (Herbsleb et al., 2000; Herbsleb et al., 2001b; Paasivaara, 2003). 2) Projektin koordinointi Koordinointiin liittyy kolme projektin tuotteeseen vahvasti liittyvää ongelmaa, arkkitehtuuri, integrointi ja konfiguraatioiden hallinta (Battin et al., 2001). Varsinkin silloin, kun tehdään monimutkaisia projekteja tai osa projektiin kuuluvista resursseista ei tunne projektin käsitteitä ennestään, arkkitehtuurin tekeminen ymmärrettäväksi ja tiedon jakaminen on suuri haaste (Battin et al., 2001). Projektin tuloksena tulevan ohjelmiston integrointiin liittyy ongelmia silloin, kun tuotteen kehittäminen tapahtuu hajautetusti. Kun tuotetta kehitetään samanaikaisesti useassa paikassa, kasvaa integrointityön suorittamiseen tarvittava työmäärä (Battin et al., 2001). Myös konfiguraatioiden hallinta muuttuu monimutkaisemmaksi silloin, kun projektin tuotteen osista on useita eri paikoissa olevien ihmisten tekemiä versioita (Battin et al., 2001). Projektiin liittyy myös joukko muita koordinointiin liittyviä ongelmia. Yksi näistä on eri kehityspaikkojen prosessien eroavaisuudet. Ongelmia syntyy, jos esimerkiksi eri yksiköt ovat määritelleet yksikkötestauksen eri tavalla (Mockus et al., 2001). Kun tuotetta kehitetään hajautetusti, tulee ongelmaksi

3 3 eri tuotosten riippuvuuksien hallinta. Kun yksi yksikkö on myöhässä, saattaa se vaikuttaa muiden yksiköiden työn etenemiseen tai tuotteen integrointiin haitallisesti (Mockus et al., 2001). 3) Resurssien allokointi ja työn jakaminen Vaikka resurssien ja työn jakamisen voi sisällyttää myös osaksi koordinointia, käsitellään sitä tässä erillisenä ongelmana sen vakavuuden vuoksi ja siksi, että oletettavasti projektin tuotteen arkkitehtuuri vaikuttaa tähän asiaan mielenkiintoisella tavalla. Suurimpia haasteita tässä kohdassa on projektin tuotteen jakaminen itsenäisiin osajärjestelmiin, työtehtävien allokointi tiimeille, tiimien välisten riippuvuuksien hallinta ja projektin tuotteen laadun ja yhtenäisyyden varmistaminen (Ebert et al., 2001; Battin et al., 2001; Mockus et al., 2001b). Projektin tuotteen järkevää jakamista itsenäisiin osajärjestelmiin pidetään haastavana ja keskeisenä asiana (Repenning et al., 2001; Mockus et al., 2001b) hajautetussa kehittämisessä. Jos tätä ei onnistuta tekemään, johtaa se ylimääräiseen kommunikaation ja koordinoinnin tarpeeseen (Repenning et al., 2001). Työtehtävien allokoinnissa tiimeille haasteena on saada työtehtävät jaettuna tiimeille siten, että ne vastaavat kyseisen tiimin taitotasoa (Battin et al., 2001) ja että niillä on mahdollisimman vähän riippuvuuksia muiden tiimien työn etenemisestä. Onnistunut työtehtävien allokointi tiimien kesken vähentää tiimien välisen kommunikaation tarvetta ja siitä projektiin aiheutuvia viiveitä (Herbsleb et al., 2001b). Hajautetussa kehittämisessä tiimien väliset riippuvuudet tulisi pyrkiä minimoimaan turhan tiimien välisen kommunikaation ja siitä aiheutuvan viiveen takia (Herbsleb et al., 2001b). Riippuvuuksia tiimien välille aiheuttavat edellisten kohtien lisäksi vastuiden ja tietotaidon jakautuminen (Herbsleb et al., 2001). Myös tuotteen laadun ja yhtenäisyyden hallinta on eräs hajautetun kehityksen haasteista. Koska kehitys tapahtuu hajautetusti, tulee projektin tuotteen eri osajärjestelmien arkkitehtuureista helposti erilaisia. Tämä vaikuttaa tuotteen arkkitehtuurin yhtenäisyyteen, laatuun ja uudelleenkäytettävyyteen (Battin, 2001). 4) Asiantuntemuksen hallinta Myös asiantuntemuksen hallintaan liittyy paljon haasteita, kun kehitys hajautetaan. Aikaisemmat tutkimukset osoittavat yleisimmiksi ongelmiksi tiimien välisen luottamuksen rakentaminen ja säilyttämisen (Kiel, 2003), riittävän suunnitteludokumentaation tuottamisen ja sen jakamisen, integrointiin liittyvät kysymykset ja tiimien välisen asiantuntemuksen välittämisen ja asiantuntemuksen löytämisen (Nakamura, 1997; Battin, 2001; Herbsleb et al., 2001b). Asiantuntemuksen hallintaan liittyy myös strateginen puoli, eli asiantuntemuksen hallintaan vaikuttavat vahvasti myös yrityksen strategiset tekijät varsinkin silloin, kun projekti toteutusvaihe ulkoistetaan kokonaan tai osittain toiselle yritykselle (Muller et al., 2000). Tiimien välisen luottamuksen rakentaminen ja säilyttäminen on tärkeää kaikenlaisissa projekteissa, ja hajautetuissa projekteissa tämän luottamuksen muodostaminen ja säilyttäminen on erityisen vaikeaa aikaerojen, kielierojen, kulttuuristen eroavaisuuksien ja eriarvoisuuden johdosta (Kiel, 2003). Luottamuksen puute vaikuttaa erittäin haitallisesti tiimeissä tehtyjen päätösten ja suunnitelmien siirtämiseen toisiin tiimeihin, koska ilman luottamusta toisen tiimin jäsenten tietotaitoon on erittäin vaikea hyväksyä sieltä tulevia päätöksiä ilman kattavaa taustatietoa (Kiel, 2003). Tuote- ja suunnitteludokumentaation tuottaminen ja sen saavutettavuus hajautetussa kehittämisessä voidaan jakaa kolmeen päähaasteeseen(nakamura, 1997): 1. suunnittelutiedon jakaminen kehittämisyksiköiden ja kehittäjien kesken 2. suunnittelutiedon uudelleenkäyttö seuraavissa projekteissa 3. tuotteen laadun varmistaminen suunnittelutiedon avulla Tärkeää näissä kaikissa kohdissa on erityisesti se, että saatavilla oleva tieto on ajan tasalla. Suunnittelu- ja tuotedokumentaation jakaminen eri paikoissa sijaitsevien tiimien kesken on usein vaikeaa ja aikaa vievää toimintaa. Aikaa käytetään paljon pelkästään siihen, että yritetään päättää keskustellaanko tiimien kesken edes samasta asiasta (Mockus et al., 2001). Tuotteen laadun varmistamiseen suunnittelutiedon avulla taas vaikuttaa eri tiimien tuottaman dokumentaation yhteneväisyys ja tarkkuus. Integrointiin liittyvät kysymykset ovat hajautetussa kehittämisessä haastavia, koska tuotteen osien integrointi vaatii usein eri tiimien kehittäjien erityisosaamista. Tämä erityisosaaminen on jakautunut ja siitä aiheutuu ylimääräistä kommunikaatiotarvetta ja viiveitä integrointia tehtäessä (Herbsleb et al., 2001b). Erityisen epämiellyttäväksi tämän tilanteen tekee se, että aikaisemman tutkimuksen mukaan hajautetuissa projekteissa integrointiin tarvittava työmäärä on selkeästi suurempi kuin lokaalisti tapahtuvissa projekteissa (Battin et al., 2001). Asiantuntemuksen välittäminen ja oikeanlaisen asiantuntemuksen löytäminen vaikeutuu hajautuksen mukana varsinkin epävirallisen kommunikaation puutteen vuoksi. Kun ei tiedetä, keneen täytyy missäkin asiassa ottaa yhteyttä, syntyy projektiin turhia viiveitä ja tehdään vääriä olettamuksia (Herbsleb et al., 2001; Herbsleb et al., 2001b). Lokaalisti tapahtuvissa projekteissa tiimien jäsenet voivat oppia tarvittavaa asiantuntemusta suoraan kyseisen asiantuntemuksen omaavalta henkilöltä, mutta hajautetuissa projekteissa asiantuntemus on myös hajaantunut ja kommunikaation vähyydestä ja viiveistä johtuen asiantuntemuksen tehokas siirtäminen on vaikeaa (Battin, 2001). C. Yhteenveto haasteista Kuten edelliset kappaleet osoittavat, kirjallisuudesta löytyy

4 4 suuri joukko erilaisia hajautetun kehittämisen ongelmakohtia ja niihin liittyviä haasteita. Tässä tutkimuksessa ei yritetty kerätä kattavaa joukkoa erilaisista haasteista, vaan tarkoituksena oli kerätä joukko yleisimpiä ongelmia ja haasteita, joihin oletettavasti pystytään vaikuttamaan ainakin jonkin verran projektin tuotteeseen liittyvillä teknologia- ja arkkitehtuurivalinnoilla sekä kirjallisuudesta löytyvillä suunnittelumenetelmillä. Taulukko 1 esitetään yhteenveto edellisissä kappaleissa kuvatuista ongelmakohdista johdettu yhteenveto niihin liittyvistä haasteista. Tätä joukkoa käytetään jatkossa pohjana etsittäessä teknologian, arkkitehtuuriratkaisujen sekä suunnittelumenetelmien mahdollisuuksia tukea hajautettua kehittämistä. Taulukko 1 Hajautetun kehittämisen ongelmia ja niihin liittyviä haasteita Ongelmakenttä Ongelmakenttään liittyvät haasteet Kommunikaatio Ongelmien ratkaisu, oikean henkilön löytäminen ja kommunikaation viive Tiedotus ja valvonta, erityisesti muutoksista tiedottaminen Päätösten tekeminen ja koordinointi, vastuiden jakaminen ja päätöksistä tiedottaminen Projektin Arkkitehtuuri, arkkitehtuurin koordinointi saaminen yleisesti ymmärrettäväksi Integrointi, integrointiin kuluvan ajan ja resurssitarpeen minimointi Konfiguraatioiden hallinta, varsinkin useiden itsenäisten komponenttien versioiden, muutosten ja yhteensopivuusasioiden hallinta Prosessien eroavaisuudet Tiimien tuotosten riippuvuudet, työn suunnittelu siten, että eri tiimien tuotokset ja niiden Resurssien ja työn jakaminen aikataulumuutokset vaikuttavat mahdollisimman vähän muiden tiimien työn etenemiseen Tuotteen jakaminen itsenäisiin osajärjestelmiin Työtehtävien allokointi tiimeille, taitotason ja työtehtävien riippuvuuksien hallinta Tiimien väliset riippuvuudet Tuotteen laatu ja yhteneväisyys, arkkitehtuurin tekninen yhteneväisyys, uudelleenkäytettävyys Asiantuntemuksen hallinta Tiimien välisen luottamuksen kehittäminen ja ylläpito, tiimien välinen päätösten ja muiden tuotosten siirto Tuote- ja suunnitteludokumentaation tuottaminen ja saatavuus, ajantasaisuus ja yhteneväisyys Tuotteen integrointi, varsinkin integroinnin työmäärä ja kommunikaatio Asiantuntemuksen välittäminen ja tiimien välillä ja oikeanlaisen asiantuntemuksen löytäminen D. Hajautetun kehittämisen tukeminen teknologiavalinnoilla, arkkitehtuuriratkaisuilla ja suunnittelumenetelmillä Kun aloitetaan projektin suunnittelu, jossa käytetään hajautettua kehittämistä, on projektin johdolla edessään paljon avoimia asioita. Näitä ovat esimerkiksi (Muller, 2000): Hajautusstrategiasta päättäminen Projektin seurantamenetelmistä päättäminen Kommunikaatiotavoista päättäminen Vastuiden ja vastuuhenkilöiden päättäminen Toteutusteknologian valinta Tässä tutkimuksessa keskitytään valitun toteutusteknologian, arkkitehtuuriratkaisujen ja suunnittelumenetelmien mahdollisuuksiin vaikuttaa edellä esitettyihin hajautetun projektin ongelmakohtiin. Nämä kolme asiaa liittyvät toisiinsa kiinteästi, koska valittu teknologia rajoittaa mahdollisia arkkitehtuuriratkaisuja ja suositeltuja suunnittelumenetelmiä. Tästä syystä tutkimuksessa pyritään ensin määrittelemään hajautettua kehittämistä tukevan arkkitehtuurin ominaisuudet, jonka jälkeen voidaan tutkia valittujen teknologioiden soveltuvuutta hajautettuun kehittämiseen. Seuraavissa kappaleissa käsitellään Taulukko 1 Hajautetun kehittämisen ongelmia ja niihin liittyviä haasteita esitettyjä ongelmakenttiä ja etsitään arkkitehtuuriin ja suunnittelumenetelmiin liittyviä tapoja vaikuttaa näihin ongelmiin. Yksi asia, johon tulevissa kappaleissa kiinnitetään huomiota, on eri teknologioille ja arkkitehtuurimalleille löytyvät design patternit, eli yleisesti tunnetut, dokumentoidut ja todistettavasti toimivat arkkitehtuuriratkaisut (Gamma et al., 1997). 1) Kommunikaatio Kommunikaatio on ongelmakenttä, johon löytyy useita erilaisia tapoja vaikuttaa teknologian, arkkitehtuuriratkaisujen ja suunnittelumenetelmien avulla. Tehokkaimmin kommunikaatiosta hajautetussa kehittämisessä aiheutuvia ongelmia voidaan estää minimoimalla tiimien välinen

5 5 kommunikointi suunnittelemalla tuotteen arkkitehtuuri siten, että se koostuu mahdollisimman itsenäisistä alijärjestelmistä ja että näiden väliset rajapinnat ovat mahdollisimman tarkasti, yksiselitteisesti ja yhtenäisesti kuvattu ja dokumentoitu (Repenning, 2001; Herbsleb, 2001b) Näistä ominaisuuksista voidaan johtaa teknologialta ja arkkitehtuurilta kaivattuja ominaisuuksia/vaatimuksia: Teknologian tarjoamat arkkitehtuurimallit mahdollistavat tuotteen koostamisen useista erillisistä komponenteista, jotka voivat sijaita eri paikoissa. Teknologia ja taustalla olevat arkkitehtuurimallit mahdollistavat tehokkaita tapoja luoda rajapintoja komponenttien välille. On olemassa sellaisia design patterneita, joiden avulla voidaan toteuttaa komponenttien välisten riippuvuuksien vähentämistä ja rajapintoja tehokkaasti. Teknologia tarjoaa suunnitelmien ja toteutuksen dokumentointiin valmiit ratkaisut, joita on helppo käyttää ja jotka mahdollistavat yhtenäisen dokumentaation tuottamisen ja nopean jakamisen tiimien välillä. Dokumentoinnin yhteydessä on erityisen tärkeää, että toteutuksen aikana tuotettava dokumentaatio, esim. ohjelmakoodin kommentit, voidaan mahdollisimman helposti koostaa yhtenäiseksi, luettavaksi dokumentiksi. Toinen tärkeä tekijä on se, että toteutusvaiheessa tulevat muutokset voidaan mahdollisimman helposti päivittää suunnitelmadokumentaatioon. 2) Projektin koordinointi Projektin koordinoinnin ongelmiin löytyy myös teknologiaan ja arkkitehtuuriin liittyviä ratkaisuita, varsinkin aikaisemmin kuvattuihin projektin tuotteeseen liittyviin ongelmiin: arkkitehtuuri, integrointi ja konfiguraatioiden hallinta (Battin et al., 2001). Arkkitehtuurin ymmärrettävyysongelmiin voidaan vaikuttaa kommunikoimalla arkkitehtuurista yleisten design patterien ja yleisesti tunnettujen kuvauskielien avulla (Gamma et al., 1997). Integroinnin ongelmiin voidaan vaikuttaa rakentamalla tuote keskittymällä komponenttien riippumattomuuteen ja hajautuksen helppouteen, eli eri paikoissa tehtyjen moduulien helppoon integrointiin toimivaksi kokonaisuudeksi. Suunnittelemalla järjestelmä siten, että se koostuu mahdollisimman itsenäisistä komponenteista, voidaan vähentää myös tiimien aikataulujen riippuvuuksia toisistaan ja niistä johtuvia viiveitä (Mockus et al., 2001). Konfiguraatioiden hallinnan kannalta on tärkeää se, miten hyvin arkkitehtuurin/teknologian avulla voidaan määritellä tietyssä installaatiossa käytettävä versio ja voiko komponentin versioita olla samanaikaisesti useampia asennettuna. Näistä asioista voidaan johtaa seuraavat toteutusteknologialta ja arkkitehtuurilta kaivatut ominaisuudet/vaatimukset, jotka vaikuttavat projektin koordinointiin: On olemassa joukko yleisiä design patterneita ja jokin yleisesti tunnettu kuvauskieli. Eri paikoissa toteutettujen komponenttien asentaminen ja yhdistäminen toisiinsa on oltava helppoa, ja on mahdollista hallita useita versioita samoista komponenteista yhtä aikaa. Teknologia tarjoaa suunnitelmien ja toteutuksen dokumentointiin valmiit ratkaisut, joita on helppo käyttää ja jotka mahdollistavat yhtenäisen dokumentaation tuottamisen ja nopean jakamisen tiimien välillä. Teknologia ei ole alustariippuvainen, ts. Eri tiimit voivat käyttää eri työkaluja ja toteutusympäristöjä. 3) Resurssien ja työn jakaminen Tästäkin ongelmakentästä löytyy paljon aikaisempaa tutkimustietoa. Aikaisemmin esitettyihin resurssien ja työn jakamiseen liittyviin haasteisiin, eli projektin tuotteen jakamiseen itsenäisiin osajärjestelmiin, työtehtävien allokointiin tiimeille, tiimien välisten riippuvuuksien hallintaan ja projektin tuotteen laadun ja yhtenäisyyden varmistamiseen löytyy myös muutama teknologiaan ja arkkitehtuuriin liittyvä vaikutusmahdollisuus. Projektin tuotteen osajärjestelmiin jakamiseen ja tiimien välisten riippuvuuksien hallintaan liittyvät asiat käsiteltiin jo edellisissä kappaleissa, joten niihin ei tässä oteta enää kantaa. Tietylle tiimille annettujen työtehtävien tulisi olla mahdollisimman itsenäisiä muiden tiimien työtehtävistä, joten tässäkin kohdassa vaatimuksena on mahdollisuus luoda itsenäisiä komponentteja tehokkaasti. Toinen, tässä kohdassa mielenkiintoisempi asia on tuotosten siirtäminen tiimien välillä. Tällä siirtämisellä tarkoitetaan: (Mockus et al., 2001) Toiminnallisuuden siirtämistä tiimiltä toiselle, eli siirretään jonkin tietyn komponentin tai osajärjestelmän vastuu toiselle tiimille Siirtäminen lokalisaation vuoksi, eli siirretään tuotos lokalisoitavaksi tietylle alueelle Siirtäminen tuotteen kehitysvaiheen mukaan, eli tuotteen kehittämisen eri vaiheet tapahtuvat eri paikoissa. Siirtäminen ylläpitovaiheeseen, eli siirretään esim. tuotteen vanhemmat versiot toiseen paikkaan ylläpidettäväksi. Näissä tapauksissa tulee erityisen tärkeäksi tuotteen dokumentointiin ja työkaluihin liittyvät asiat. Itse tuotteen siirtämiseen liittyy erityisesti alusta- ja työkaluriippumattomuus. Tästä ongelmakentästä voidaan siis johtaa seuraavia ominaisuuksia/vaatimuksia, jotka toteutusteknologian ja arkkitehtuurin tulisi täyttää: Dokumentoinnin tekeminen, työkalut ja menetelmät löytyvät valmiina. Tietotaidon jakaminen tehokkaan dokumentaation avulla ja yleisten ja yleisesti tunnettujen kuvaus ja dokumentointimenetelmien avulla on mahdollista.

6 6 Dokumentaation ajan tasalla pitäminen on helppoa. Projektin tuotetta voidaan käyttää ja kehittää erilaisissa ympäristöissä eikä sen osien siirtäminen ympäristöstä toiseen ole vaikeaa. 4) Asiantuntemuksen hallinta Asiantuntemuksen hallintaan ei kirjallisuudesta löytynyt juurikaan toteutusteknologiaan ja arkkitehtuuriin liittyviä tapoja vaikuttaa. Yleisimpiin edellä esitettyihin ongelmiin, kuten tiimien välisen luottamuksen rakentaminen ja säilyttäminen, riittävän suunnitteludokumentaation tuottaminen ja sen jakaminen ja tiimien välisen asiantuntemuksen välittäminen ja asiantuntemuksen löytäminen löytyi kuitenkin muutamia vaikutusmahdollisuuksia. Suunnitteludokumentaation jakamiseen liittyvät asiat johtavat edelleen dokumentaation tuottamisen ja päivittämisen työkaluihin ja menetelmiin, joka käsiteltiin jo tuotteen siirtämistä tiimien välillä tarkasteltaessa. Dokumentaatioon liittyvä asia on myös tuotteen laadun varmistaminen suunnittelutiedon avulla. Tämä on koko ajan enemmän käytetty tekniikka tuotteen laadun varmistamiseen ja vaatii tuotteen dokumentaatiolta yhtenäisen muodon, dokumentaatiota useista kehitysvaiheista ja yhteensopivuuden standardien kanssa (Nakamura et al., 1997). Asiantuntemuksen välittämiseen ja oikeanlaisen asiantuntemuksen löytämiseen ei teknologia/arkkitehtuuri juurikaan tarjoa apuvälineitä. Aikaisempien tutkimusten mukaan keino vaikuttaa tähän liittyy osajärjestelmien jakamiseen toiminnallisuuden perusteella itsenäisiin kokonaisuuksiin ja näiden osajärjestelmien vastuiden antaminen tiimeille/henkilöille(mockus et al., 2001; Ebert et al., 2001). Tällöin tiedetään ainakin, millä tiimillä pitäisi olla tietyn osajärjestelmän tietotaito hallussa ja osataan ottaa yhteyttä oikeaan tiimiin ongelman ilmetessä. Tiimien välisen luottamuksen rakentamiseen ei kirjallisuudesta löytynyt teknologiaan ja arkkitehtuuriin liittyviä vaikutustapoja. Toteutusteknologian/arkkitehtuurin vaikutusmahdollisuudet asiantuntemuksen hallintaan ovat varsin rajalliset. Tähän ongelmakenttään liittyy edellä esitettyjen asioiden perusteella seuraavat toteutusteknologian ja arkkitehtuurin ominaisuudet/vaatimukset: Dokumentaation tuottamiseen, ylläpitoon ja esittämiseen liittyvät vaatimukset, kuten kuvattu edellä kohdassa 3) Resurssien ja työn jakaminen. III. ARVIOINTIKRITEERIT Edellisen kappaleen perusteella voidaan huomata, että toteutusteknologialla on mahdollista vaikuttaa moniin yleisimpiin hajautetun kehittämisen ongelmiin. Vielä yllättävämpää on kuitenkin huomata, että tietty toteutusteknologian ja arkkitehtuurin ominaisuus voi vaikuttaa useisiin ongelmakenttiin samanaikaisesti, kuten esimerkiksi tuotteen jakaminen itsenäisiin osajärjestelmiin tai tuotteen dokumentointi. Nämä ominaisuudet toistuivatkin lähes jokaisen ongelmakentän tarkastelun yhteydessä. Taulukko 2 Arviointikriteerit on esitetty tässä tutkimuksessa käytettävät arviointikriteerit ja niiden yhteydessä huomioitavat ominaisuudet, jotka on kerätty edellä esitetyistä ongelmakenttäanalyyseista. Taulukko 2 Arviointikriteerit Arviointikriteeri Arkkitehtuurimalli Dokumentointi Painoarvo 4 Alustariippumattomuus Suunnittelumenetelmät, Design patternit Arvioinnissa huomioitavat ominaisuudet Komponenttien hajauttaminen Komponenttien väliset riippuvuudet, niiden minimointi, rajapintojen toteutusmahdollisuudet Komponenttien asentaminen ja yhdistäminen toisiinsa Komponenttien versioiden hallinta Komponenttien siirtäminen Dokumentaation tuottamisen menetelmät yhtenäisen dokumentaation tuottamiseen Dokumentaation jakamisen menetelmät Kuvauskielten soveltuvuus Dokumentaation päivittäminen Erilaiset kehittämistyökalut ja ympäristöt Tuotteen tai osien käyttäminen erilaisia ympäristöissä Yleisten suunnittelumenetelmien määrä Riippuvuuksien poistaminen Rajapintojen toteutus Seuraavissa kappaleissa arvioidaan valittuja teknologioiden ja niiden sovellusarkkitehtuurien soveltuvuutta hajautettuun kehittämiseen näiden arviointikriteerien avulla. Taulukko 2 Arviointikriteerit painoarvo sarake kuvaa kunkin ominaisuuden tärkeyttä arviointia tehtäessä. Tämä painoarvo on muodostettu sen perusteella, miten moneen ongelmakenttään kyseinen ominaisuus liittyy

7 7 IV. ARVIOITAVAT TEKNOLOGIAT A. Hajautettu järjestelmä Hajautetulle järjestelmälle on olemassa useita määrittelyjä, tässä muutama (Hitchens, 2003): Hajautettu järjestelmä on joukko itsenäisiä tietokoneita, jotka näkyvät järjestelmän käyttäjälle yhtenä tietokoneena Hajautetussa järjestelmässä verkossa olevilla tietokoneilla sijaitsevat komponentit kommunikoivat ja koordinoivat toimiaan lähettämällä toisilleen viestejä Järjestelmä, joka koostuu useista tietokoneista Tämä voi siis tarkoittaa tilannetta, että järjestelmä on jakaantunut eri palvelimille ympäri maailman, tai sitten tilannetta, jossa järjestelmän osat sijaitsevat samalla palvelimella, mutta toimivat itsenäisinä sovelluksina. Myös tällöin on kyse hajautetusta järjestelmästä, koska komponentit ovat itsenäisiä kokonaisuuksia ja keskustelevat ja koordinoivat toimiaan välittämällä viestejä. Tässä tutkimuksessa keskitytään nimenomaan hajautettuihin järjestelmiin, joissa verkossa olevilla tietokoneilla sijaitsevat komponentit kommunikoivat ja koordinoivat toimiaan viestien avulla. B. Teknologioiden esittely Tarkasteltavat teknologiat jakautuvat kahteen pääjoukkoon: hajautettuihin olioihin perustuvat ja palvelulähtöiset teknologiat. Hajautettuihin olioihin perustuvat teknologioiden, kuten CORBA (Common Object Request Broker Architecture), perusideana on: (Plasil et al., 1999) Asiakas-olio(Client), joka haluaa saada jonkin asian tehtyä, kutsuu kauko-oliota (remote object, server object), joka tarjoaa tämän palvelun rajapintansa kautta. Palvelun käyttäminen tapahtuu luomalla palvelua tarjoavasta oliosta viite (remote reference) ORB-palvelun (Object Request Broker) avulla, jonka kautta asiakasolio voi kutsua tämän metodeja. Kutsuttavasta oliosta muodostetaan rajapinnat, jonka kautta tähän olioon viitataan, asiakkaan päässä se on stub ja palvelua tarjoavan objektin päässä skeleton. Kuva 1 CORBAn arkkitehtuuri Toinen pääjoukko, palvelulähtöiset (service oriented) teknologiat, Web Servicet, toimivat siten, että: (Booth et al., 2003) Palvelun tarjoava ja palvelua käyttävä sovellus sopivat keskenään palvelun kuvauksesta ja semantiikasta. Tämä tapahtuu käyttämällä Discovery agency palvelua. Kuvauksella tässä tarkoitetaan koneellisesti tuotettavaa kuvausta palvelun rajapinnasta ja semantiikalla sopimusta siitä, mitä mahdollisen interaktion tarkoitus. Eli palvelulähtöisen arkkitehtuurin pääosat ovat järjestelmässä kulkevat viestit, palveluja pyytävät ja niitä tarjoavat agentit ja yhteinen viestien kuljetukseen tarkoitettu kuljetusmekanismi. Tässä kappaleessa esitellään kolme hajautettuihin olioihin keskittyvää teknologiaa ja yksi palvelulähtöinen teknologia. 1) Hajautettujen olioiden teknologiat a) CORBA CORBA, eli Common Object Request Broker Architecture, on OMG:n (Object Management Group) kehittämä standardi hajautettujen järjestelmien tekemiseen. CORBAn perusideana on, että se on alustariippumaton ja että sen avulla voivat eri teknologioilla tehdyt järjestelmät toimia yhdessä. Tämä on erityisen tärkeää vanhojen ja uusin järjestelmien integroinnissa. (Plasil et al., 1999; Saiedian et al., 2002) b) DCOM DCOM (Eli Distributed Component Object Model) on Microsoftin kehittämä teknologia. Tämän teknologian perusideana on, että eri tietokoneilla olevat oliot voivat keskustella keskenään. Tämä teknologia kehitettiin Microsoftin COM (Component Object Model) pohjalta, jonka avulla välitettiin viestejä Windows ohjelmien välillä. (Plasil et al., 1999; Saiedian et al., 2002) c) Java RMI Java RMI, eli Remote Method Invocation, on Sun Microsystemsin kehittämä hajautettujen olioiden malli. Sen perusideana on mahdollistaa hajautettujen Java-olioiden kommunikointi keskenään. RMI käyttää tällöin hyväksi Javan ominaisuuksia. Verkossa olevat koneet, joissa on JVM (Java Virtual Machine), voivat kommunikoida keskenään hajautettujen olioiden kautta. JVM tarkoittaa Sun kehittämää virtuaalikonetta, joka osaa ajaa Javalla tehtyjä sovelluksia. (Plasil et al., 1999; Saiedian et al., 2002) 2) Palvelulähtöiset teknologiat Palvelulähtöisistä teknologioista tässä siis tarkastellaan Web Services teknologiaa. Tämä toimii hyvin pitkälle kuten teknologioiden esittelyssä kuvattiin. Perusajatus on, että palvelua tarvitseva agentti pyytää palvelukuvauksen erityisesti tätä tarkoitusta varten olevalta agentilta (discovery agency). Agentti saa vastauksena palvelun rajapintakuvauksen, jonka palvelua tarjoava agentti on discovery agencylle julkaissut.

8 8 Nyt palvelua tarvitseva agentti voi alkaa käyttämään palvelun tarjoajan palveluja tämä rajapinnan avulla (Booth et al., 2003; Patil et al., 2003). Kuva 2 Web Services arkkitehtuuri C. Vertailu Jokaista neljästä valitusta arviointikriteeristä arvioidaan erikseen. Arvioinnissa painotetaan ongelmakenttien valinnan yhteydessä määritettyjä ominaisuuksia.(taulukko 2 Arviointikriteerit). Arvioinnin yhteydessä teknologioille ei anneta absoluuttisia arvoja eikä teknologioita laiteta millään tavalla paremmuusjärjestykseen, vaan esitetään hyvät ja huonot ratkaisut tai ratkaisujen puuttuminen. Lopuksi esitetään yhteenveto arvioinnin tuloksista. Tähän tarkasteluun otetaan mukaan CORBA ja Web Services. DCOM ja Java RMI jätetään pois tämän tarkastelun piiristä, koska ne ovat toiminnaltaan hyvin samankaltaiset CORBAn kanssa. Kuitenkin, jos jonkin arviointikriteerin kohdalla huomataan näiden ja CORBAn välillä jotain oleellista eroa, tuodaan se esille. 1) Arkkitehtuurimalli 2) Dokumentointi a) Hajautettujen olioiden teknologia: CORBA a) CORBA CORBA ei rajoita komponenttien sijaintia mitenkään, komponentti voi sijaita samassa osoiteavaruudessa, eri osoiteavaruudessa samalla serverillä, tai sitten kokonaan eri serverillä omassa osoiteavaruudessaan. Täten komponenttien hajauttaminen on mahdollista monella eri tavalla. Komponenttien väliset rajapinnat toteutetaan IDL-kielen (Interface Description Language) avulla, joka on CORBAn standardoitu kuvauskieli. Tästä IDL-kuvauksesta generoidaan viittauksiin tarvittava koodi. Kutsut ja vastaukset välitetään IIOP protokollan avulla, joka on standardoitu, joten komponenttinen yhdistäminen onnistuu helposti myös eri organisaatioiden välillä (Plasil et al., 1999). Komponenttien siirto tapahtuu siirtämällä komponentti paikasta toiseen ja rekisteröimällä uudessa paikassa oleva komponentti uudestaan Object Adapteriin, joka esittää komponentin tarjoamaa palvelua. Siirrossa on kuitenkin huomioitava, että komponentin tulee olla toteutettu sellaisessa ympäristössä, joka on yhteensopiva kohdeympäristön kanssa. Komponentit löytävät toisensa niiden rekisteröinnin jälkeen käyttämällä nimipalvelua (Plasil et al., 1999). Yhteenvetona CORBAn arkkitehtuurimallin sopivuudesta hajautettuun kehittämiseen voisi sanoa, että se sopii siihen hyvin. Komponenttien hajauttaminen ja rajapintojen luonti on helppoa, yhdistäminen toimii suoraviivaisesti ja siirtäminenkin on mahdollista tietyin varauksin. Erityisesti hyvää CORBAssa on se, että sen oleellisimmat osat nojaavat standardeihin. Huono puoli CORBAssa on se, että sen asentaminen on työlästä. ORB-ydin, joka yhdistää kutsujan ja kutsuttavan pitää asentaa jokaiseen koneeseen, myös asiakaskoneeseen. Tämä lisää asennukseen tarvittavaa työtä (Saiedian et al., 2002). DCOM eroaa CORBAsta siinä, että sillä ei ole olemassa yleistä palvelun hakua eikä se nojaa yleisiin standardeihin yhtä vahvasti kuin CORBA. DCOM-komponenttien Siirrettävyys toimii vain Windows alustoilla ja asennuksen yhteydessä ei tarvita erillisen ajoympäristön asennusta, koska se on mukana windows-alustoissa (Saiedian et al., 2002). Java RMI eroaa siinä, että se tarvitsee JVM:n toimiakseen ja se on ohjelmointikieliriippuvainen (pääasiassa Java). b) Palvelulähtöinen teknologia: Web Services Web Servicet tukevat hajauttamista yhtä hyvin kuin CORBA. Komponenttien väliset riippuvuudet ja niiden yhdistäminen toisiinsa tapahtuu WSDL-kielellä määritettyjen rajapintojen kautta. Tähän yhdistämiseen tarvittava koodi saadaan generoitua automaattisesti. Palvelujen linkittäminen tapahtuu pyytämällä discovery agencyltä (palvelujen tiedot sisältävä palvelu) tietyn palvelun kuvausta tai sitten kutsumalla suoraan ennalta tiedettyä osoitetta. Siirtäminen on helppoa, mutta ympäristöjen tulee olla yhteensopivia. Myös Web Services nojaa vahvasti standardeihin ja sopii hyvin vanhojen ja uusien järjestelmien yhdistämiseen. CORBA ei tarjoa valmista tapaa dokumentoida suunnitelmia ja tuotetta, mutta kuvauskielistä ainakin UML sopii hyvin tähän. Automaattinen dokumentaation tuottaminen, jakaminen, päivittäminen ja dokumentaation formaatti jää kehitysympäristöjen huoleksi. Java RMI tarjoaa hyvän tavan automaattisen dokumentaation tuottamiseen, JavaDoc. Tämän työkalun avulla voidaan tuottaa yhtenäistä dokumentaatiota toteutetusta tuotteesta. JavaDocin avulla generoidaan dokumentaatio ohjelmakoodin sekaan laitetuista kommenteista, joilla kuvataan luokkien ja niiden metodien toimintaa, parametrejä, paluuarvoja yms.(sun Microsystems, 2003) b) Web Services Web Services ei itsessään määrittele mitään yhtenäistä kattavaa dokumentointitapaa, se on jäänyt Web Servicejä hyödyntävien kehitysympäristöjen huoleksi. Täten kovin heterogeenisessa ympäristössä on vaikeata saada aikaiseksi yhtenäinen dokumentointiprosessi. Web Servicet tarjoavat yhtenäisen tavan tehdä palvelun kuvaus (Patil et al., 2003),

9 9 jonka avulla voidaan välittää tietoa palvelun käyttötarkoituksesta ja käyttötavoista yms. Sekin auttaa hajautetussa kehittämisessä rajapintaongelmien ratkaisussa, koska tämä kuvaus on tietynlainen rajapintakuvaus palvelusta. Tämän kanavan kautta myös dokumentaation jakaminen tapahtuu automaattisesti ja tämä dokumentaatio pysy ajan tasalla. Kuten CORBA, myös Web Servicesien kuvaaminen onnistuu hyvin UML:n avulla. 3) Alustariippumattomuus a) CORBA CORBAn käyttäminen erilaisissa ympäristöistä riippuu näiden ympäristöjen tuesta CORBAlle. CORBA on kuitenkin laajasti tuettu ja näin ollen sillä tehtyjä tuotteita tai tuotteen osia on mahdollista toteuttaa useilla ohjelmointikielillä ja useissa ympäristöissä (Saiedian et al., 2002). Java RMI käyttäminen onnistuu missä tahansa ympäristössä, jossa on JVM. Eri ympäristöjen JVM:ien toiminnassa on kuitenkin havaittu eroavaisuuksia, mikä saattaa lisätä kustannuksia (Plasil et al., 1999). b) Web Services Myös Web Services on riippuvainen eri ympäristöjen tuesta sille. Web Services tuki löytyy jo useimmista kehitysympäristöistä ja Web Services Architecture Working Groupissa, joka vastaa Web Services standardien eteenpäin viennistä, on mukana lähes kaikki merkittävät ohjelmistoyritykset.(w3c, 2003). Tietyssä ympäristössä tehdyn tuotteen siirtäminen toiseen ympäristöön ei onnistu suoraan, kuten Java RMI:llä, vaan ympäristöjen pitää olla yhteensopivat tai sitten pitää toteutusta muuttaa. 4) Suunnittelumenetelmät, Design patternit a) CORBA Koska CORBA on oliopohjainen teknologia, voidaan toteutuksessa käyttää hyväksi yleisiä olio-ohjelmoinnin design patterneita. Näitä design patterneita ja niihin liittyvää tietoa on paljon (Gamma et al., 1997). Rajapintojen toteutus tapahtuu standardoidun IDL-kielen avulla ja riippuvuuksien poistamiseen löytyy olio-ohjelmoinnin design patterneista paljon vaihtoehtoja. b) Web Services Web Services design patterneista ei kirjallisuudesta löytynyt juurikaan tietoa. Design patterneista kertovat kirjallisuuslähteet liittyivät aina tiettyyn kehitysympäristöön, yleisiä design patterneita ei löytynyt. Koska design patternien käyttömahdollisuudet riippuvat kehitysympäristöstä, voi yleisten design patternien määrittäminen hajautettuun projektiin olla mahdotonta tai ainakin hankalaa. 5) Yhteenveto Taulukko 3 on esitetty CORBA ja Web Services vertailun tulokset. Taulukko 3 Vertailun tulokset Arviointikriteeri CORBA Web Services Arkkitehtuurimalli, painoarvo 4 Dokumentointi, painoarvo 4 Alustariippumattomuus, painoarvo 3 Suunnittelumenetelmät, design patternit, painoarvo 2 Standardoidut ratkaisut, komponenttien yhdistäminen helppoa. Asennus työlästä. Sopii hyvin uusien ja vanhojen järjestelmien yhdistämiseen Ei omaa dokumentointikäytäntöä, UML sopii kuvauskieleksi Eri ympäristöjen tuki tarpeen, löytyy kuitenkin useimmista ympäristöistä Suuri joukko valmiina, Olioohjelmoinnin design patternit sopivat, rajapintojen kuvauksessa standardoitu IDLkieli Standardoidut ratkaisut, siirtäminen helppoa tietyin varauksin, sopii hyvin uusien ja vanhojen järjestelmien yhdistämiseen, asennus helppoa Palvelujen kuvauskieli löytyy, muuta yleistä dokumentointikäytäntöä ei ole, kuvauskieli esim. UML Eri ympäristöjen tuki tarpeen, löytyy kuitenkin useimmista ympäristöistä Ei juurikaan kirjallisuutta, liittyvät aina johonkin kehitysympäristöön. Kuten Taulukko 3 Vertailun tulokset huomataan, ovat vertailtavat teknologiat valittujen arviointikriteerien suhteen varsin samanlaiset. Eroja syntyy lähinnä pienissä asioissa, kuten asennukset, tietyt dokumentoinnin osat yms. Suurempia eroja näiden teknologioiden käyttöön kehittämisessä saataisiin, jos otettaisiin kehitysympäristöt mukaan vertailuun. Näin ei kuitenkaan tässä tapauksessa voida tehdä, koska hajautetussa kehittämisessä täytyy varautua heterogeenisiin ympäristöihin. Tehtäessä päätöksiä valinnoista näiden teknologioiden välillä, täytyy ottaa huomioon pikkuasiat. Esimerkiksi, jos järjestelmä koostuu suuresta määrästä erillisiä komponentteja, voi CORBAn asennustyöstä tulla merkitsevä tekijä. Web Services teknologian ongelmana taas on yleisten design patternien puute. Yksi suuri tekijä teknologiaa valittaessa on myös se, että mikä on kyseisen teknologian tila sen elämänkaaressa. CORBA on stabiloitunut teknologia, kun taas Web Servicet ovat vielä melko uusi teknologia. Toisaalta taas Web Serviceitä kuvataan seuraavaksi hajautettujen järjestelmien läpimurtoteknologiaksi (Martin et al., 2003). Yhteenvetona tästä tutkimuksesta voidaan sanoa, että tarkistellut teknologiat soveltuvat hyvin hajautettujen

10 10 järjestelmien hajautettuun kehittämiseen ja valinta niiden välillä on tehtävä tapauskohtaisesti. Parantamisen varaa kuitenkin löytyy, varsinkin dokumentointikäytäntöjen puolelta. V. JOHTOPÄÄTÖKSET Tässä tutkimuksessa esitettiin hajautetun kehittämisen toteutusteknologialle ja arkkitehtuuriratkaisulle asettamia haasteita, muodostettiin niiden avulla arviointikriteerit ja vertailtiin kahta yleisesti tunnettua hajautettujen järjestelmien toteutusteknologiaa, CORBA ja Web Services, näitä arviointikriteerejä vastaan. Arviointikriteerit muodostettiin hajautetun kehittämisen kirjallisuudesta löydettyjen yleisimpien ongelmakenttien avulla. Löydetyt ongelmakentät olivat: 1. Kommunikaatio 2. Projektin koordinointi 3. Resurssien allokointi ja työn jakaminen 4. Asiantuntemuksen hallinta. Tämän jälkeen etsittiin kirjallisuudesta niihin liittyviä arkkitehtuurisia haasteita, joiden pohjalta muodostettiin arviointikriteerit. Arviointikriteerejä muodostettiin neljä kappaletta: 1. Arkkitehtuurimalli 2. Dokumentointi 3. Alustariippumattomuus 4. Suunnittelumenetelmät ja Design patternit Valittuja teknologioita vertailtiin näiden kriteerien suhteen. Arvioinnin tuloksena todettiin, että nämä teknologiat ovat tässä suhteessa hyvin samanlaisia, molemmilla on hyvä arkkitehtuurituki hajautettujen järjestelmien hajautettuun kehittämiseen ja molempia teknologioita voidaan käyttää useissa erilaisissa ympäristöissä. Tutkimuksessa löytyi kuitenkin joukko pienempiä eroavaisuuksia, jotka tietyissä olosuhteissa tulevat hyvinkin ratkaiseviksi, esimerkiksi asennukset ja dokumentointi. Tutkimuksessa ei käsitelty ollenkaan valittujen teknologioiden kehitysympäristöjä ja niihin liittyviä työkaluja. Tämä rajaus tehtiin työn laajuuden vuoksi. Eri kehitysympäristöjen ja työkalujen tuki hajautetulle kehittämiselle on kuitenkin erittäin mielenkiintoinen tutkimusalue ja on oletettavaa, että suuri osa tutkimuksessa löydetyistä esimerkiksi dokumentointiin liittyvistä puutteista voidaan korvata oikeanlaisilla kehitysympäristöillä ja työkaluilla.

11 11 VIITTEET Battin, R.D., Crocker, R., Kreidler, J., Subramanian, K., 2001, Leveraging resources in global software development, IEEE Booth, D., Haas, H., McCabe, F., Newcomer, E., Web Services Architecture, , available at /#whatis Ebert, C., De Neve, P., 2001, Surviving global software development, IEEE SOFTWARE Gamma, R., Helm, R., Johnsson, R. Vlissides, J., 1997, Design patterns Elements of reusable object-oriented software, Addison Wesley professional computing series Herbsleb, J. D., Mockus, A., Finholt, T. A., Grinter, R. E., 2000, Distance, Dependencies, and Delay in a Global Collaboration, ACM Press Herbsleb, J.D., Moitra, D, 2001, Global software development, IEEE Herbsleb, J. D., Mockus, A., Finholt, T., Grinter, R. E., 2001b, An Empirical Study of Global : distance and speed, IEEE, pp Herbsleb, J. D., Mockus, A., 2003, An Empirical Study of Speed and Communication in Globally Distributed, IEEE, pp Hitchens, M., 2003, itec801, Introduction to distributed systems, Macquarie University, Sydney Australia Kiel, L., 2003, Experiences in distributed development: a case study, University of Alberta, Canada Kraut, R.E., Streeter, L. A., 1995, Coordination in software development, ACM Martin, J., Arsanjani, A., Tarr, P., Hailpern, B., 2003, Web Services: Promises and Compromises, ACM Press, pp Mockus, A., Herbsleb, J. D., 2001, Challenges of global software development, IEEE, pp Mockus, A., Weiss, D. M., 2001b, Globalization by chunking a quantitative approach, IEEE, pp Muller, R., Ruland, D., Hoch, D. Klosterkemper, B., 2000, Offshore software development in emerging countries, McKinsey & Company, Articles volume one IT management Nakamura, K., Fujii, Y., Kiyokane, Y., Nakamura, M., Hinenoya, K., Peck, Y. H., Choon-Lian, S., 1997, Distributed and concurrent development environment via sharing design information, IEEE OMG, Object Management Group, , available at Paasivaara, M., 2003, Communication needs, practices and supporting structures in global inter-organizational software development projects, Helsinki University of Technology Patil, S., Newcomer, E., 2003, ebxml and Web Services, IEEE Plasil, F., Stal, M., 1999, An Architectural view of distributed objects and components in CORBA, Java RMI, and COM/DCOM, Repenning, A.,Loannidou, A., Payton, M., Wenning, Y., Roschelle. J., 2001, Using components for rapid distributed software development, IEEE Saiedian, H., Ghanem, N., Natarajan, J., 2002, A framework for evaluating distributed object models and its application to web engineering, Kluwer academic publishers Sugiyama,Y., 2000, Distributed development of complex software systems with Object Make, IEEE Sun Microsystems, JavaDoc tool, , available at W3C, Web Services Architecture working group, , available at

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

Lisätiedot

Ohjelmistojen suunnittelu

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

Lisätiedot

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

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Tietojärjestelmäarkkitehtuurit

Tietojärjestelmäarkkitehtuurit Tietojärjestelmäarkkitehtuurit ITK130 Johdatus ohjelmistotekniikkaan Syksy 2003 Sami Kollanus 1 Aluksi Tietojärjestelmäarkkitehtuurit vs. ohjelmistoarkkitehtuurit Pohjana Tietojärjestelmäarkkitehtuurit

Lisätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Lisätiedot

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

T SEPA - päiväkirja: Design Patterns. ETL työkalu

T SEPA - päiväkirja: Design Patterns. ETL työkalu T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty

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

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä Hajautettujen järjestelmien rakentaminen - Jini Ohjelmistotuotantovälineet-seminaarin esitelmä Anu K. Leponiemi (anu@lepo.net) Helsingin yliopisto Tietojenkäsittelytieteen laitos Helsinki 2000 SISÄLLYSLUETTELO

Lisätiedot

Hajautettu Ohjelmistokehitys

Hajautettu Ohjelmistokehitys Hajautettu Ohjelmistokehitys Maria Paasivaara Hajautuksen muotoja Yrityksen sisäinen hajautus Maan sisällä Maiden välillä, esim. offshore Yritysten välinen hajautus Alihankinta Lisenssointi Partnershipit

Lisätiedot

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

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

T SEPA - päiväkirja: Design Patterns. ETL työkalu

T SEPA - päiväkirja: Design Patterns. ETL työkalu T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty

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

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA, Järjestelmäarkkitehtuuri (TK081702) SOA SOA-arkkitehtuuri perustuu xml:ään ja Web Services teknologioihin Mahdollistaa joustavan mukautumisen tuleviin muutoksiin Kustannustehokas Toteutukset perustuvat

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

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

Visma Software Oy

Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun materiaalin kopiointi on kielletty ilman :n

Lisätiedot

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

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

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite 2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet Järjestelmäarkkitehtuuri (TK081702) Integraation tavoitteita Lähtökohta Web-palvelut Asiakasrekisteri ERP, Tuotannon ohjaus Tuotanto Myynti Intranet Extranet? CRM Johdon tuki Henkilöstö Kirjanpito Palkanlaskenta

Lisätiedot

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013 Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi

Lisätiedot

The OWL-S are not what they seem

The OWL-S are not what they seem The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita

Lisätiedot

Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja

Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja 1 Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja kommunikointi toteutetaan SOAPin avulla. Näihin kieliin

Lisätiedot

Visma Nova Webservice Versio 1.1 /

Visma Nova Webservice Versio 1.1 / Visma Nova Webservice Versio 1.1 / 31.10.2018 pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,

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

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

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

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,

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

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Tämän esityksen sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan

Lisätiedot

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistoarkkitehtuurit Kevät käytäntöjä Ohjelmistoarkkitehtuurit Kevät 2014 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintamalli

Avoimen ja yhteisen rajapinnan hallintamalli Avoimen ja yhteisen rajapinnan hallintamalli 1.10.2015 Sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan hallitsemat rajapinnat)

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Luento 12: XML ja metatieto

Luento 12: XML ja metatieto Luento 12: XML ja metatieto AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XML ja metatieto Metatieto rakenne sanasto Resource Description Framework graafikuvaus XML Semanttinen Web agentit 2 1 Metatieto

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

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1. Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Mikä on IT arkkitehtuuri? Liiketoimintamalli määrittelee IT arkkitehtuurin IT arkkitehtuuri ottaa kantaa sovelluksen laadullisiin vaatimuksiin

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

Projektin suunnittelu

Projektin suunnittelu Projektin suunnittelu Sami Kollanus TJTA330 Ohjelmistotuotanto 15.3. Projektin suunnittelu - CMMIkäytänteet Projektin estimaatit: Määritellään projektin laajuus (scope) Määritellään tehtävien ja tuotosten

Lisätiedot

Tiedonsiirto- ja rajapintastandardit

Tiedonsiirto- ja rajapintastandardit Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen

Lisätiedot

in condition monitoring

in condition monitoring Etäteknologioiden automaatiosovellukset Using e-speak e in condition monitoring tutkija professori Hannu Koivisto Sisältö Tausta Globaali kunnonvalvontajärjestelmä E-speak globaalissa kunnonvalvontajärjestelmässä

Lisätiedot

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ aaro.leikari@hotmail.com TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ 25.01.2016 SISÄLLYS 1. Käyttöjärjestelmän asentaminen... 1 1.1 Windowsin asettamia laitteistovaatimuksia... 1 1.2 Windowsin asentaminen...

Lisätiedot

SOA SIG SOA Tuotetoimittajan näkökulma

SOA SIG SOA Tuotetoimittajan näkökulma SOA SIG SOA Tuotetoimittajan näkökulma 12.11.2007 Kimmo Kaskikallio IT Architect Sisältö IBM SOA Palveluiden elinkaarimalli IBM Tuotteet elinkaarimallin tukena Palvelukeskeinen arkkitehtuuri (SOA) Eri

Lisätiedot

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Aram Abdulla Hassan Windows Server 2012 asentaminen ja käyttö 1 Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Hyper-V ohjelma. Riipu minkälaista Serveria yritämme

Lisätiedot

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien

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

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,

Lisätiedot

Xerox Device Agent, XDA-Lite. Pika-asennusopas

Xerox Device Agent, XDA-Lite. Pika-asennusopas Xerox Device Agent, XDA-Lite Pika-asennusopas XDA-Liten esittely XDA-Lite on ohjelmisto, jolla kerätään laitetietoja ja sen päätehtävänä on lähettää automaattisia mittarilukemia laskutuksen tarkkuuden

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

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,

Lisätiedot

Valppaan asennus- ja käyttöohje

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

Lisätiedot

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Oracle10 g Web Services Sisältö Service Oriented Architecture (SOA) Web Services Service Oriented Architecture Service Oriented

Lisätiedot

Big Room -toiminta tutkimuksen näkökulmasta. Sari Koskelo, Vison Oy

Big Room -toiminta tutkimuksen näkökulmasta. Sari Koskelo, Vison Oy ? Big Room -toiminta tutkimuksen näkökulmasta Sari Koskelo, Vison Oy 16.3.2018 Sisältö Big Room konseptin moniulotteisuus Tavoitteet Johtaminen Big Room toiminta kehitys- ja toteutusvaiheissa Big Room

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

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

Teknologia-arkkitehtuuriperiaatteet

Teknologia-arkkitehtuuriperiaatteet Teknologia-arkkitehtuuriperiaatteet Teknologia-arkkitehtuurin periaatteiden kuvaamisesta Seuraavassa taulukossa on esitetty Helsingin yliopiston tietotekniikkakeskuksen johtokunnan hyväksymät teknologia-arkkitehtuurin

Lisätiedot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Sisäänrakennettu tietosuoja ja ohjelmistokehitys Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology

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

Kajaanin ammattikorkeakoulu Opinnäytetyösuunnitelman ohje

Kajaanin ammattikorkeakoulu Opinnäytetyösuunnitelman ohje Kajaanin ammattikorkeakoulu Opinnäytetyösuunnitelman ohje Tutkintonimike Koulutus Syksy / Kevät 201X Opinnäytetyön aiheen valinnan ja aiheanalyysin hyväksynnän jälkeen tehdään opinnäytetyösuunnitelma.

Lisätiedot

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta Palveluita ja sisältöä portaaliin - XML:n mahdollisuuksista XML-tietokannat ja julkishallinnon XML-sovellukset, 28.05.2002 Lasse Akselin, TietoEnator Oyj Sisällys Valtion tietotekniikan rajapintasuosituksia

Lisätiedot

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

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

Lisätiedot

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

T Loppukatselmus

T Loppukatselmus T-76.115 Loppukatselmus REILU 16.3.2005 Agenda Johdanto (5min) Tuotteen esittely (10 min) Käyttötarkoitus Vaatimukset Ohjelmiston rakenne Demosovellus Projektin arviointi (15 min) Iteraatiot Tavoitteiden

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

Specifying user requirements for corporate intranet with user centered design methods. Espoo Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki

Specifying user requirements for corporate intranet with user centered design methods. Espoo Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki Specifying user requirements for corporate intranet with user centered design methods Espoo 29.9.2016 Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki Sisältö Työn tausta Ongelman asettelu Metodiikka Kehitysprojekti

Lisätiedot

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus Teknologia-arkkitehtuuri ja rajapinnat/integraatiot 21.3.2019 Sisältö Alustojen asemoituminen ja pilvivalmius Arkkitehtuuriperiaatteet

Lisätiedot

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina - Käytännön esimerkkejä ITIL ja ITSM mukaisista IT palveluhallinnan toteutuksista ja mahdollisuuksista Ville Koskinen Sales Specialist, HP Software

Lisätiedot

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio 1 Loppuraportti Virtuaali-Frami, CAVE-ohjelmisto Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu Versio 1.0 15.1.2006 2 Sisällys Tiivistelmä... 3 1 Johdanto... 4 1.1 Dokumentin tarkoitus...

Lisätiedot

Mistä on kyse ja mitä hyötyä ne tuovat?

Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut - Mistä on kyse ja mitä hyötyä ne tuovat? Suurin osa kaikista uusista it-sovelluksista ja -ohjelmistoista toteutetaan pilvipalveluna.

Lisätiedot

Liiketoimintajärjestelmien integrointi

Liiketoimintajärjestelmien integrointi Liiketoimintajärjestelmien integrointi Vierailuluento 2.3.2015 Esa Heikkinen Mystes Oy Agenda Liiketoimintajärjestelmien integrointi EAI: Enterprise Application Integration EAS: Enterprise Application

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

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.1/15 HSMT (Java-kielellä) Aineopintotasoinen kurssi, 5op. Luennot:

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

Lisätiedot

Hankinnan problematiikka

Hankinnan problematiikka Antti Kirmanen Hankinnan problematiikka Toimittajan näkökulma Asiakkaan näkökulma www.sulava.com www.facebook.com/sulavaoy 2 1. Ristiriita www.sulava.com www.facebook.com/sulavaoy 3 Asiakas haluaa Onnistuneen

Lisätiedot

Wopti ja Tuutti - hajautetun sisällönhallinnan kehittäminen

Wopti ja Tuutti - hajautetun sisällönhallinnan kehittäminen Wopti ja Tuutti - hajautetun sisällönhallinnan kehittäminen Valtakunnallinen opetustarjonta halutuilla kriteereillä WSrajapinta Yliopiston X WS-rajapinta Yliopiston Y WS-rajapinta Yliopiston Z Yliopiston

Lisätiedot

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus LAADUNVARMISTUS 135 Projektinhallinnan laadunvarmistus Projektinhallinnan laadunvarmistus tukee ohjelmistoprojektien ohjaus- ja ylläpitotehtäviä. Projektinhallinnan laadunvarmistustehtäviin kuuluvat seuraavat:

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

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

Lisätiedot

Matematiikan oppifoorumi Projektisuunnitelma

Matematiikan oppifoorumi Projektisuunnitelma Matematiikan oppifoorumi Projektisuunnitelma Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Asiakas Mikko Mäkelä Ohjelmistotuotantoprojekti 29.10.1999

Lisätiedot

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistoarkkitehtuurit. Syksy 2007 Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1 Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto 2 Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien

Lisätiedot

FuturaPlan. Järjestelmävaatimukset

FuturaPlan. Järjestelmävaatimukset FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0

Lisätiedot

erasmartcardkortinlukijaohjelmiston

erasmartcardkortinlukijaohjelmiston erasmartcardkortinlukijaohjelmiston asennusohje Sisällysluettelo 1. erasmartcard... 2 2. erasmartcard-ohjelmiston normaali asennus... 3 2.1. Ennen asennusta... 3 2.2. Asennus... 3 3. Muut asennustavat...

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

UCOT-Sovellusprojekti. Asennusohje

UCOT-Sovellusprojekti. Asennusohje UCOT-Sovellusprojekti Asennusohje Ilari Liukko Tuomo Pieniluoma Vesa Pikki Panu Suominen Versio: 1.00 Julkinen 15. joulukuuta 2006 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä Päivämäärä

Lisätiedot

MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy

MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy janne.metsolahti@yit.fi MITÄ ON GEMBA-WALK? Sana gemba tulee japanin kielestä ja tarkoittaa todellista paikkaa, paikkaa jossa arvo tuotetaan

Lisätiedot

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3 Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2

Lisätiedot