Malliperustainen ohjelmistokehitys webympäristössä

Koko: px
Aloita esitys sivulta:

Download "Malliperustainen ohjelmistokehitys webympäristössä"

Transkriptio

1 Malliperustainen ohjelmistokehitys webympäristössä Oulun yliopisto Tietojenkäsittelytieteiden laitos LuK-tutkielma Niklas Pasila

2 2 Tiivistelmä Tämän kandidaatin tutkielman tarkoituksena oli esitellä malliperustainen ohjelmistokehitys vaihtoehtona web-sovellusten suunnittelussa ja kehityksessä. Tutkielmaan etsittiin aineistoa ACM Digital Library ja IEEE Xplore IEEE/IEE Electronic Library -kokotekstitietokannoista sekä manuaalista hakua käyttäen. Nykyisten kompleksien web-pohjaisten sovellusten suunnittelu, kehittäminen ja ylläpito on hankalaa, sillä laajalti hyväksytyn teoreettisen pohjan tai mallin sijaan käytössä on vain vaihteleva kokoelma työkaluja. Malliperustainen kehitystapa tuo selkeän pohjan ohjelmiston suunnittelu-, kehitys-, sekä ylläpitovaiheeseen. Sen käyttöönoton päätavoitteiksi on lueteltu tuottavuuden parantaminen standardisoitujen mallien uudelleenkäytöllä, suunnitteluprosessin yksinkertaistaminen hyödyntämällä toistuvia suunnittelumalleja sekä kehittäjien välisen kommunikaation edistäminen. Käyttöönoton vaikutuksiksi kehitysprosessiin lukeutui niin ohjelmiston parantunut laatu ja parempi uudelleenkäytettävyys kuin kehittäjien tehokkuus ja tyytyväisyys. Abstraktiotason noustessa kompleksisuus pienenee ja ohjelmiston muutosherkkyys vähenee. Käyttöönotossa huomio siirtyy enemmän ohjelmiston kehitysprosessin alkuvaiheeseen. Järjestelmän tarkka suunnittelu on edellytyksenä sille, että kaikki malliperustaisen ohjelmistokehityksen hyödyt saadaan esille. Arkkitehtonisen prosessin tulee olla entistä täsmällisempi ja jäsennellympi, mikä tarkoittaa sitä, että ohjelmistoarkkitehdin rooli on entistä vaativampi. Avainsanat malliperustainen ohjelmistokehitys, MDA, RIA Ohjaaja yliopisto-opettaja, Jouni Lappalainen

3 3 Sisällysluettelo Tiivistelmä... 2 Sisällysluettelo Johdanto Web-sovellukset Perinteiset Internet-sovellukset Rikkaat Internet-sovellukset Web-kehitys metodologiat Malliperustainen ohjelmistokehitys Malliperustaisen ohjelmistokehityksen keskeiset käsitteet Malliperustainen arkkitehtuuri Mallitasot Meta-Object Facility Mallimuunnokset Malliperustainen web-kehitys Malliperustaisen ohjelmistokehityksen käyttöönoton vaikutukset kehitysprosessiin Pohdinta ja johtopäätökset Validiteetti ja jatkotutkimusaiheet Lähteet... 22

4 4 1. Johdanto Ohjelmistoalalla on parhaillaan meneillään muutos kohti web-pohjaisia sovelluksia (Mikkonen & Taivalsaari, 2010; Taivalsaari & Mikkonen, 2008; Taivalsaari & Mikkonen, 2011). Modernit rikkaat Internet-sovellukset (Rich Internet Applications, RIA) tarjoavat entistä parempaa käytettävyyttä, sekä kilpailevat jo natiivien ohjelmistojen kanssa toiminnallisuuksiltaan (Brambilla ym., 2008; Farrell & Nezlek, 2007; Fraternali ym., 2010b). Nämä uudet ja vaativat web-sovellukset tarjoavat niin paljon ominaisuuksia, että niiden mallintaminen on hankalaa nykyisillä suunnittelu- ja kehitysmetodologioilla (Bozzon ym., 2006; Martínez ym. 2010; Preciado ym., 2005). Vaikka erilaiset työkalut ovatkin keskeisessä roolissa web-sovellusten kehityksessä, niin käytettyjen työkalujen generoima koodi sekä alla piilevät teknologiat määrittelevät lopulta sovellusten semantiikan. Web-kehitys on edelleen vain vaihteleva kokoelma teknologioita ja työkaluja, eikä laajalti hyväksyttyä teoreettista pohjaa tai mallia ole olemassa. (Mikkonen & Taivalsaari, 2008.) Malliperustainen ohjelmistokehitys on laajalti hyväksytty lähestymistapa monimutkaisten ja hajautettujen järjestelmien kehittämiseen (Moreno ym., 2008). Se perustuu mallien ja mallimuunnosten käyttämiseen läpi koko ohjelmiston elinkaaren, järjestelmän määrittelystä aina implementaatioon sekä testaukseen saakka (Vallecillo ym., 2007). Web-ohjelmistotekniikka on alue, johon malliperustaista ohjelmistokehitystapaa voidaan onnistuneesti soveltaa (Aragón ym., 2013; Bernardi ym., 2011; de Sousa Saraiva & da Silva, 2009; Escott ym., 2011; Fraternali ym., 2010a; Gitzel ym., 2007; Herrero, 2015; Kateros ym., 2008; Moreno ym., 2008; Mukhtar ym., 2014). Tämän tutkimuksen tutkimuskysymyksenä on mitä vaikutuksia malliperustaisella ohjelmistokehityksellä on web-ohjelmiston kehitysprosessiin? Kirjallisuudessa malliperustaisesta kehityksestä käytetään termejä MDD (Model Driven Development), MDE (Model Driven Engineering), MDSD (Model Driven Software Development) sekä MD (Model Engineering). Näillä termeillä yleisesti tarkoitetaan samaa asiaa. MDWE (Model Driven Web Engineering) ja MDWA (Model Driven Web Application) tarkoittavat nimenomaan web-ympäristössä tapahtuvaa malliperustaista kehitystä. Tutkielmaan haettiin aineistoa ACM Digital Library ja IEEE Xplore IEEE/IEE Electronic Library -kokotekstitietokannoista sekä manuaalista hakua käyttäen. Tutkimusalue rajoittuu malliperustaisen ohjelmistokehityksen sovellettavuuteen webohjelmistotekniikassa sekä sen vaikutuksista kehitysprosessiin. Malliperustaisesta ohjelmistokehityksestä tehty yleinen selonteko pätee myös perinteisessä ohjelmistotuotannossa. Tutkielma toteutetaan kirjallisuuskatsauksena. Tämän kandidaatin tutkielman tarkoituksena on esitellä malliperustainen ohjelmistokehitys vaihtoehtona web-sovellusten suunnittelussa ja kehityksessä. Alussa selvitetään web-sovellusten luonne sekä kehitysmetodologioiden evoluutio. Sen jälkeen tehdään selonteko malliperustaisesta ohjelmistokehityksestä, sen soveltuvuudesta web-

5 kehitykseen sekä sen vaikutuksista ohjelmiston kehitysprosessiin. Tutkielman lopussa on pohdinta sekä johtopäätökset. 5

6 6 2. Web-sovellukset 2.1 Perinteiset Internet-sovellukset HTML-kieltä ei koskaan tarkoitettu rikkaiden käyttöliittymien luomiseen, vaan ainoastaan keinoksi esittää tietoa (Farrell & Nezlek, 2007). Perinteisissä synkronisissa asiakas-palvelin-mallin web-sovelluksissa jokainen käyttäjän toiminto lähettää palvelinpyynnön ja datan käsittely tapahtuu kokonaan palvelimella, jolloin asiakasohjelman tehtävänä on vain näyttää staattinen sisältö käyttäjälle (Amalfitano ym., 2010; Bernardi ym., 2014). Tämä niin sanottu ohut asiakas-arkkitehtuuri oli yksinkertainen, mutta rajoitti Internetin yli toimitettavien sovellusten laatua (Fraternali ym., 2010b). Nykypäivän käyttäjät ovat entistä vaativampia ja odottavat enemmän myös websovelluksilta (Farrell & Nezlek, 2007), eivätkä perinteiset ohuen asiakas-mallin websovellukset eivät pysty kilpailemaan työpöytäsovellusten tarjoamien ominaisuuksien ja toiminnallisuuksien kanssa (Bozzon ym., 2006). 2.2 Rikkaat Internet-sovellukset Nykypäivänä World Wide Web on olennainen osa ihmisten elämää. Se ei kuitenkaan enää rajoitu pelkästään dokumenttien jakamiseen, vaan nykypäivänä jaetaan myös kuvia, musiikkia ja videoita, sekä hoidetaan laskut verkkopankissa. Nämä uudet mahdollisuudet tuovat mukanaan uusia haasteita, ja niiden ratkaisemiseksi on syntynyt käsite rikkaista Internet-sovelluksista. (Taivalsaari & Mikkonen, 2011.) Rikas Internet-sovellus yhdistetään yleensä web-sovellukseen joka vastaa ominaisuuksilta ja toiminnallisuuksilta perinteistä työpöytäsovellusta (Farrell & Nezlek, 2007; Fraternali, 2010b; Lawton, 2008). Sovelluksen tulee täten tarjota perinteisiin websovelluksiin verrattuna rikkaampi käyttökokemus sekä parempaa vastetta käyttäjän tekemille toiminnoille. Tämän saavuttamiseksi tyypilliset rikkaat internet-sovellukset käyttävät kolmen keinon yhdistelmää: asynkronista kommunikointia asiakkaan ja palvelimen välillä (Amalfitano ym., 2010; Benjamin ym., 2010; Bernardi ym., 2014; Brambilla ym., 2008; Casteleyn ym., 2014; Farrell & Nezlek, 2007; Fraternali ym., 2010b; Kuuskeri & Mikkonen, 2009; Lawton, 2008; Melia ym., 2010; Preciado ym., 2007; Taivalsaari & Mikkonen, 2011), datan ja operaatioiden jakamista asiakkaan ja palvelimen kesken (Amalfitano ym., 2010; Benjamin, 2010; Bernardi ym., 2014; Bozzon ym., 2006; Brambilla ym., 2008; Casteleyn ym., 2014; Fraternali ym., 2010a; Fraternali ym., 2010b; Fukuda & Yamamoto, 2008; Lawton, 2008; Preciado ym., 2007) sekä rikasta asiakaspuolen käyttöliittymää (Fraternali ym., 2010a; Casteleyn ym., 2014). Rikkaiden Internet-sovellusten kehitysprosessi voidaan Toffettin ym. (2011) mukaan jakaa kolmeen kategoriaan: 1) Koodiperustainen kehitys, jossa kehittäjät itse valitsevat käytettävät asiakassekä palvelinpuolen teknologiat ja ohjelmoivat käyttäen teknologiakohtaisia ohjelmointikieliä.

7 2) Ohjelmistokehyksiin perustuva kehitys, jossa kehittäjät hyödyntävät joukkoa työkaluja, kirjastoja, sekä koodin generointiin tarkoitettuja tekniikoita, joiden avulla he voivat automatisoida toistuvimmat tehtävät sekä asiakkaan että palvelimen puolella. 3) Malliperustainen kehitys, jossa sovelluksen suunnittelija määrittelee ohjelmiston toiminnallisuuden luomalla korkean abstraktiotason malleja, joiden pohjalta voidaan generoida suoritettavaa koodia. Näistä kategorioista koodiperustainen kehitys ei ole kovin käytännöllistä sovelluksen kasvaessa monimutkaisemmaksi. Silloin tarvitaan systemaattisempia lähestymistapoja koko kehitysprosessin parantamiseksi, aina suunnitteluvaiheesta käyttöönottoon ja ylläpitoon. (Toffetti ym., 2011.) Web-kehitys metodologiat Kun web-sovellukset olivat vasta linkeillä yhdistettyjä dokumentteja, ei niiden kehityksessä ei ollut tarvetta käyttää vakiintuneita ohjelmistotuotannon periaatteita. Viime vuosina web-pohjaiset sovellukset ovat kuitenkin yleistyneet ja kehittyneet kovalla vauhdilla, josta johtuen kehitysympäristöt ja työkalut eivät ole pysyneet kehityksessä mukana. Tästä johtuen web-kehityksessä ilmenee ongelmia kuten haasteiden eriyttäminen (separation of concerns), jolloin ohjelman kulkua saattaa olla vaikea seurata, kun siihen on yhdistelty deklaratiivisia sekä proseduraalisia määrittelyitä ilman selkeää järjestystä. Monia vakiintuneita ohjelmistotuotannon periaatteita rikotaan, ja vanhat jo ratkaistut ongelmat ovat nousseet taas esille. (Mikkonen & Taivalsaari, 2008.) Kuvio 1. Web-kehitys metodologioiden kattavuus ja kehittyminen (Aragón ym., 2013)

8 8 On olemassa monia web-kehitys metodologioita, jotka käyttävät erilaisia malleja, notaatioita ja tekniikoita. Tämä homogeenisyyden ja standardisoinnin puute aiheuttaa turhaa hämmennystä ja laskee kehitystehokkuutta. Yksikään kehitysmetodologia ei kata sovelluksen koko elinkaarta, jolloin ainoa vaihtoehto on yhdistellä erilaisia lähestymistapoja. (Aragón ym., 2013.) Tähän ongelmaan on esitetty ratkaisuksi malliperustaista ohjelmistokehitystä.

9 9 3. Malliperustainen ohjelmistokehitys Rikkaita Internet-sovelluksia varten on luotu useita ohjelmistokehyksiä, joiden tarkoituksena on helpottaa kehitysprosessia. Nämä ohjelmistokehykset tarjoavat usein automaattista koodin generointia, valmiita kirjastoja sekä tarjoavat uudelleenkäytettäviä malleja sovelluksen suunnittelun nopeuttamiseksi. (Fraternali ym., 2010b.) Kehittämisprosessin tueksi ja myöhemmin ylläpidon helpottamiseksi on ehdotettu useita erilaisia metodologioita ja työkaluja (Bernardi ym., 2014; Fraternali, 2010a; Herrero, 2015; Preciado, 2005), jotka jakavat idean malliperustaisen ohjelmistokehityksen (model-driven engineering, MDE) käyttämisestä web-sovellusten määrittelyssä, suunnittelussa sekä implementoinnissa (Fraternali ym., 2010a). Idea malliperustaisesta ohjelmistokehityksestä ei ole uusi (Gitzel ym., 2007; Heijstek & Chaudron, 2010), vaan sitä on tutkittu ja sovellettu vuosikymmenten ajan, mutta sen käyttöönoton vaikutus ohjelmistokehitysprosessiin ei ole vielä täysin selvä. Sovellusten mallintaminen mahdollistaa monimutkaisten toiminnallisuuksien kuvaamisen puuttumatta implementoinnin yksityiskohtiin (Rossi, 2013) sekä ratkaisee web-kehitykselle ominaisia ongelmia (Gitzel ym., 2007). Vaikka malliperustainen ohjelmistokehitys tarjoaakin systemaattisen lähestymistavan rikkaiden Internetsovelluksien kehittämiseen, ei sen käyttö ole kuitenkaan kovin yleistä (Toffetti ym., 2011). Malliperustainen ohjelmistokehitys viittaa mallien systemaattiseen käyttöön ensisijaisina artefakteina koko kehitysprosessin ja ohjelmiston elinkaaren ajan. Mallit korvaavat jopa koodin ensisijaisina artefakteina. Kehittäjät joutuvat keskittymään ongelma-alueeseen eli malleihin, alustariippuvaisen ratkaisualueen sijaan. (Kraus, 2007, Mukhtar ym., 2014.) 3.1 Malliperustaisen ohjelmistokehityksen keskeiset käsitteet Keskeisin käsite malliperustaisessa ohjelmistokehityksessä on malli. Malli niin sanotusti esittää järjestelmää (represents a system) sekä noudattaa metamallia (conforms to a metamodel). Sekä mallit että metamallit koostuvat elementeistä. (Bezivin ym., 2005.) Yleisesti voidaan ajatella, että malli kuvaa osaa järjestelmästä, kun taas metamalli antaa säännöt kuvaukselle.

10 10 Kuvio 2. Olioparadigma ja MDE Olio-ohjelmoinnissa perus periaatteena on ajatella kaikki olioina, kun taas malliperustainen ohjelmistokehitys perustuu kaikki ovat malleja -ajattelutapaan. (Bézivin, 2005) Malliperustaisen sovelluksen peruskomponentteja ovat: Mallien tallennusvarasto (model repository) Sovellusaluekohtainen kieli (Domain Specific Language, DSL) Mallinnustyökalu (modeling tool) Sovellustyökalu (workbench environment) Mallimuuntimet (model transformer) tai koodinluontigeneraattorit (code generators) (Uhl, 2008; Hendolin, 2008.) Mallit kuvataan niin tarkasti, että niiden pohjalta voidaan generoida suoritettavaa koodia. Malleihin tehdyt muutokset heijastuvat suoraan järjestelmään mallimuunnosten (model transformation) avulla, ja tämän avulla varmistutaan siitä, että kaaviot vastaavat aina järjestelmää, kun muutoksia ei erikseen tarvitse tehdä käsin. 3.2 Malliperustainen arkkitehtuuri Malliperustainen arkkitehtuuri (Model Driven Architecture, MDA) on OMG:n (Object Management Group) esittämä malliperustaisen ohjelmistokehityksen aloite. Siinä on kolme abstraktiotasoa: laskentariippumaton malli (Computation Independent Model, CIM), alustariippumaton malli (Platform Independent Model, PIM) ja alustariippuvainen malli (Platform Specific Model, PSM). (Mukhtar ym., 2014; OMG, 2014) Mallitasot CIM kuvaa järjestelmän vaatimuksia ja toimintaa ympäristössä ilman rakenteen tai implementaation yksityiskohtia (Mukhtar ym., 2014; OMG, 2014). Se on ylimmän

11 tason malli joka helpottaa liiketoimintavaatimuksien ymmärtämistä (Hendolin, 2008). PIM kuvaa järjestelmää ottamatta kantaa toteutusalustaan (Mukhtar ym., 2014; OMG, 2014). PIM-malleja voidaan kuvata esimerkiksi UML-kielellä (Poole, 2001). PSM on mallimuunnoksen avulla PIM:stä jalostettu malli, joka kuvaa järjestelmää tietyllä määritellyllä alustalla (Mukhtar ym., 2014; OMG, 2014), kuten J2EE tai COBRA (Hendolin, 2008). Kehitysprosessin alkuvaiheessa kehitetään alustariippumattomia malleja, joista myöhemmin jalostetaan alustariippuvaisia malleja. Alustariippumattomista malleista voidaan tehdä automaattisesti muunnokset alustariippuvaisiksi malleiksi. (Comai & Mazza, 2012; Mukhtar ym., 2013.) Tätä varten on oltava muunnosmääritelmät, jotka kertovat kuinka tämä tapahtuu (OMG, 2014). QVT (Query/View/Transformation) on OMG:n standardi mallimuunnosten määrittelemiseen MDA:n kontekstissa (Mukhtar ym., 2011) ja avaintekijä MDA:n toimintaan (OMG, 2014). 11 Kuvio 3. MDA-pohjaisen järjestelmän kehitysvaiheet (Mukhtar ym., 2011) Metamallien väliseen kommunikointiin tarvitaan kieli, jolla voidaan kuvata metamalli. Metamallien kuvaamiseen käytetään metametamallia. Kuten mallit, myös metamallit sekä metametamallit koostuvat elementeistä. Metamalli noudattaa metametamallia, jos ja vain jos sen jokainen elementti on määritelty metametamallissa. (Bézivin ym., 2005.) Metametamalli on yleensä viimeinen taso tästä rekursiivisesta määritelmästä, sillä metametamallit noudattavat itseään. Toisin sanoen metametamalli on konformantti itsensä kanssa. (Moreno ym., 2008.)

12 12 Kuvio 4. MDA:n 3+1 rakenne Meta-Object Facility MOF (Meta-Object Facility) on MDA:n oma uniikki metametamalli. MOF käyttää UML-mallinnuksella määriteltyjä metamalleja kuvatakseen mallinnuskieliä toisiinsa kytköksissä olevina objekteina. (OMG, 2015c.) MOF pitää sisällään määrittelyt monitasoisille malleille sekä riippuvuuksille niiden välillä. M0-taso vastaa järjestelmää, eli ajettavaa ohjelmakoodia. M1-taso noudattaa M2-tason määrittelyitä, ja M2-taso noudattaa M3-tasoa. (Hendolin, 2008.)

13 13 Kuvio 5. Object Management Groupin malliperustainen arkkitehtuuri (OMG, 2015b) OMG suosittelee, että MDA:n mallit kuvataan jollakin MOF yhteensopivalla kielellä kuten UML:lla. Mallit voidaan kuitenkin määrittää käyttäen mitä tahansa mallinnuskieltä. (Moreno ym., 2008.) MDA:n perimmäisenä tavoitteena on automatisoida muutos käsitteellisestä mallista tavoitemalliksi. Tästä syystä se perustuu joukkoon OMG:n teknologioita, kuten UML, MOF, QVT sekä XMI. (Mukhtar ym., 2013.) 3.3 Mallimuunnokset Mallimuunnoksilla tarkoitetaan sitä kohtaa kehitysprosessissa, jossa malli muutetaan lähdekoodiksi (model-to-text, M2T) tai toiseksi malliksi (model-to-model, M2M) (Sterritt & Cahill, 2008). Toisin sanoen siinä kuvataan, miten lähdemallin elementit muunnetaan kohdemallin elementeiksi. Mallimuunnokset itsessään ovat myös malleja, ja täten ne noudattavat metamallia. (Moreno ym., 2008.) Kuvio 6. Suhteet mallien, metamallien ja muunnosten välillä (Kraus, 2007).

14 Mallimuunnokset voidaan laajalti luokitella kahteen kategoriaan lähtö- ja kohdemallien abstraktiotason perusteella: horisontaaliset ja vertikaaliset. Horisontaaliset muunnokset koskevat malleja järjestelmän eri osa-alueilta, mutta käyttäen samaa abstraktiotasoa. Horisontaaliset muunnokset ylläpitävät tasojen välistä johdonmukaisuutta, varmistaen että entiteetti on johdonmukainen sen kanssa mitä siitä on kuvattu missä tahansa muussa määrittelyssä, samalla abstraktiotasolla. Vertikaaliset muunnokset koskevat malleja eri abstraktiotasoilla, kuten kuvaus alustariippumattomasta mallista alustariippuvaiseen malliin. (Moreno ym., 2008.) Malliperustainen web-kehitys Malliperustainen ohjelmistokehitys web-ympäristössä (Model-Driven Web Engineering, MDWE) keskittyy esitystavasta irrallaan oleviin konsepteihin. Konseptien esittämiseen ehdotetaan käytettäväksi metamalleja jotka ovat alustariippumattomia. Kehitysprosessia tukee muunnokset ja relaatiot jotka takaavat mallien välisen johdonmukaisuuden. (Aragón ym., 2013.) Rikkaiden Internet-sovellusten ilmestyttyä on syntynyt monia erilaisia malliperustaiseen kehitykseen pohjautuvia metodologioita niiden kuvaamiseen, kuten OOHDMDA (Schwabe & Rossi, 1995), WebML (Ceri ym., 2000), UWE (Koch, 2001), NDT (Escalona & Aragon, 2008), OOWS (Pastor ym., 2006). Nämä ehdotukset ovat malliperäisiä, sillä ne pyrkivät ratkaisemaan web-sovelluksen suunnittelun ja kehityksen aikana ilmeneviä ongelmia käyttäen erillisiä malleja, ja tämän jälkeen jalostavat niistä toimintalogiikan ja rakenteen mallimuuntimien avulla. (Moreno ym., 2008.) Mistään näistä ei ole kuitenkaan syntynyt standardia, vaan käytetyn mallinnuskielen ja metodologian valinta on jäänyt kehittäjien harteille (Aragón ym., 2013; Rossi, 2013). Kuvio 7. MDA:n rakenne Web-ympäristössä (Mukhtar ym., 2014) MDWE on selvästi herättänyt mielenkiintoa, sillä useat tahot työskentelevät yhdessä kehittääkseen standardin ja tukeakseen tämänlaista tyyliä kehittää web-sovelluksia (Rossi, 2013). Metamallien käyttö ja MDE ovat ohjelmistotuotannon osa-alueita jotka

15 ovat kehittymässä laajalti hyväksytyiksi ratkaisuiksi web-ohjelmistotekniikan klassisten ongelmien ratkaisemiseksi (Aragón ym., 2013). Web-sovellusten kompleksisuuden kasvaessa ja uusien vaatimusten syntyessä löytyy aikaisemmin esitellyistä metodologioista kuitenkin puutteita. Ne ovat tyypillisesti sidottuja tiettyyn arkkitehtuuriin ja teknologioihin, rajoitettu ainoastaan asiakas-palvelin sovelluksiin, sekä ne usein pohjautuvat hyvin spesifiin alustateknologiaan kuten PHP tai JSP. Ongelmaksi luetaan myös standardien ja työkalujen kypsymättömyys. (Moreno ym., 2008.) 15

16 16 4. Malliperustaisen ohjelmistokehityksen käyttöönoton vaikutukset kehitysprosessiin Käyttöönoton päätavoitteina on tuottavuuden parantaminen standardisoitujen mallien uudelleenkäytöllä, suunnitteluprosessin yksinkertaistaminen toistuvia suunnittelumalleja hyödyntämällä (Bernardi ym., 2014), kehittäjien välisen kommunikaation edistäminen (Bernardi ym., 2014; Heijstek & Chaudron, 2010) sekä käsitteelliseen yksinkertaisuuteen pyrkiminen, joka puolestaan johtaa korkeaan skaalautuvuuteen, tehokkaaseen implementaatioon, joustavuuteen sekä selkeään arkkitehtuuriin (Bézivin, 2005). MDE:n käyttöönotossa huomio siirtyy selvästi enemmän ohjelmiston kehitysprosessin alkuvaiheeseen. Järjestelmän tarkka suunnittelu on edellytyksenä sille, että kaikki malliperustaisen ohjelmistokehityksen hyödyt saadaan esille. Käyttöönoton seurauksena arkkitehtoninen prosessi on täsmällisempi ja jäsennellympi, ja tämän myötä ohjelmistoarkkitehdin rooli on entistä vaativampi. Myös mallintajien rooli korostuu huomattavasti. (Heijstek & Chaudron, 2010.) Taulukossa 1 nähdään Heijstek & Chaudronin (2010) tunnistamat ja kategorioimat MDE:n käyttöönoton vaikutukset sovelluksen arkkitehtuurisuunnittelussa, kun he toteuttivat kahden vuoden pituisen tutkimuksen malliperustaisen ohjelmistokehityksen käytöstä suurimittaisessa teollisessa ohjelmistokehitysprosessissa. Taulukko 1. MDD:n käyttöönoton vaikutus sovelluksen arkkitehtuurisuunnitteluun (Heijstek & Chaudron, 2010) I. Muutokset II. III. IV. A. Projektin laajuuden vähittäinen lipsuminen (scope creep) on todennäköisempää muutosten helppouden vuoksi. B. Projektin laajuuden ulkopuolelle jäävillä myöhäisillä muutoksilla on perustavanlaatuisempi vaikutus DSL yhteisenä kielenä C. Malleista tulee yhteinen kieli D. Mallit helpottavat kommunikointia eri tiedonalojen asiantuntijoiden välillä E. Ylläpitäjiä tulee kouluttaa kehityksen aikana jotta he ymmärtävät mallintamis- ja generointiprosesseja Mallintajat ovat keskeisempiä F. Mallintajien tulee aidosti ymmärtää sovellusaluekohtaista kieltä G. Mallintajien tarvitsee kehittää yksiselitteisempiä malleja Ohjelmoijat ovat vähemmän keskeisiä H. Suuremmalta osalta ohjelmoijia vaaditaan vähemmän taitoa, osalta vaaditaan parempaa osaamista I. Kollektiivinen koodin omistus on tärkeämpää V. Lisääntynyt vaivannäkö J. Koodinluontigeneraattori on erillinen sovellus jota tulee kehittää ja ylläpitää

17 17 varsinaisen sovelluksen rinnalla VI. K. Epäsuhdat metamallin sovellusalueessa sekä asiakkaan välillä tulee tiedostaa Entistä formaalimpi kehitys L. MDD prosessin tukemiseksi tarvitaan entistä enemmän työkaluja M. Mallintajat voivat valvoa että mallintamisen yleisohjeista pidetään kiinni N. Arkkitehtonisten kuvausten tulee olla laajempia, formaalimpeja ja jäsennellympiä Martínez ym. (2012) mittasivat ja vertailivat kehittäjien tuottavuutta ja tyytyväisyyttä, heidän käyttäessä koodiperustaista, ja malliperustaista kehitystapaa. Tuottavuus mitattiin ja ilmoitettiin koodiriveinä tunnissa (SLOC/H, source lines of code/hour). Tyytyväisyyden mittaamista varten he kehittivät tyytyväisyysasteikon, jossa oli seitsemän kohtaa, joista jokainen pohjautui 7 pisteen Likert-asteikkoon. Tulokset kertovat, että malliperustainen ohjelmistokehitys paransi huomattavasti sekä kehittäjien tehokkuutta että tyytyväisyyttä, sovellusalueesta riippumatta. Nämä toteutuvat kuitenkin vain, jos käytössä on vahva ja toimiva koodingenerointiympäristö. (Martínez ym., 2012.) Hebig & Bendraou (2014) tekivät systemaattisen kirjallisuuskatsauksen selvittääkseen kuinka normaalit käytössä olevat prosessit kuten V-Model XT tai SCRUM, voidaan yhdistää malliperustaisen kehityksen kanssa. Kuvio 8. MDE ja prosesseja, yleisluontoinen kuvaus (Hebig & Bendraou, 2014) Hebig & Bendraou (2014) tulivat tulokseen, että on olemassa lähestymistapoja jotka onnistuneesti uudelleenkäyttävät prosesseja ilman ylimääräistä sovittamista. He myös totesivat, ettei ole olemassa tarpeeksi opastusta siihen kuinka vaikutuksen alle päätyvien prosessien kanssa tulisi toimia, kun malliperustainen ohjelmistokehitys otetaan käyttöön. (Hebig & Bendraou, 2014.) Matala uudelleenkäytettävyys ja korkeat kehityskulut ovat suuri ongelma webohjelmistotekniikan alalla. Malliperustaisen arkkitehtuurin tuomista eduista ohjelmistokehityksessä vallitsee yksimielisyys: ohjelmiston muutosherkkyys vähenee, abstraktiotaso nousee ja kompleksisuus pienenee. (Herrero, 2015.) Web-

18 ohjelmistotekniikan ongelmaksi luetellaan myös kehitysympäristöä tukevien työkalujen puute, johon MDWE vastaa metamallien ja profiilien käytöllä (Aragón ym., 2013). Hutchinson ym. (2011) esittävät Heijstek & Chaudronia (2010) pragmaattisemman taulukon, jossa käydään läpi MDE:n käyttöönoton positiivisia sekä negatiivisia vaikutuksia. He kartoittivat 250 ammattilaisen kokemuksia ja käsityksiä malliperustaisen ohjelmistokehityksen vaikutuksista kehitysprosessin eri osa-alueilla (Hutchinson ym., 2011). 18 Taulukko 2. MDE:n vaikutukset (Hutchinson ym., 2011) Positiiviset vaikutukset Negatiiviset vaikutukset Tuottavuus Kehittämiseen kuluva aika Testaamiseen kuluva aika Tuotto mallintamisen vaivasta Siirrettävyys Uudelle alustalle siirtymiseen kuluva aika Ylläpidettävyys Aika kunnes sidosryhmät ymmärtävät toisiaan Ylläpitoon tarvittava aika Vähenee automaattisen koodin generoinnin ansiosta Vähenee kun koodiin tulee vähemmän triviaaleja virheitä Entistä luovampia ratkaisuja, sekä kokonaisuuden hahmottaminen helpottuu Vähenee mallimuunnosten avulla Vähenee koska olemassa olevia järjestelmiä on helppo ymmärtää ja koodi on itsedokumentoivaa Vähenee koska ylläpito tehdään mallinnustasolla Kasvaa muun muassa mallien ja muunnosmääritelmien kehittämisen takia Kasvaa mallimuunnosten testauksen ja mallien validoinnin takia Mallien häiritsevä vaikutus Kasvaa uusien mallimuunnosten kehittämisen tai vanhojen mallimuunnosten muokkaamisen myötä Kasvaa koska generoitua koodia voi olla vaikea ymmärtää Kasvaa koska malli ja koodit tulee pitää toisiaan vastaavina Yhteenvetona voidaan todeta että malliperustaisen kehitystavan käyttöönoton etuja ovat kommunikaation helpottuminen (Heijstek & Chaudron, 2010), parempi johdonmukaisuus suunnittelun ja koodin välillä (Heijstek & Chaudron, 2010), parempi yhteentoimivuus (Herrero, 2015), parempi siirrettävyys (Herrero, 2015; Hutchinson ym., 2011), parempi ylläpidettävyys (Hutchinson ym., 2011; Torchiano ym., 2013), parempi uudelleenkäytettävyys (Escott ym., 2011; Herrero, 2015), arkkitehtonisen haasteiden eriyttämisen kautta noussut kustannustehokkuus (Herrero, 2015), parempi kehitystehokkuus itseään toistavien ohjelmointitehtävien eliminoimisella (Comai & Mazza, 2012; Escott ym., 2011; Hutchinson ym., 2011), paremman käsitteellisen selkeyden kautta parantunut ohjelmiston laatu (Escott ym., 2011; Torchiano ym., 2013), parempi suunnittelun määrittelyn tuki ja parempi dokumentointi (Torchiano ym., 2013), sekä kehittäjien huomattavasti nouseva tehokkuus ja tyytyväisyys (Martínez ym., 2012).

19 Käyttöönoton haittapuoliksi mainitaan tarve opetella paljon uutta sekä tarvittavien erikoistyökalujen hinta (Hutchinson ym., 2011). Myös on mainittu, että mallien kehittäminen vaatii liikaa työtä eivätkä ne ole tarpeeksi hyödyllisiä (Torchiano ym., 2013). Rivero ym. (2011) sanovat että malliperustaista kehitystapaa käyttäessä konkreettista tulosta saadaan liian myöhään, jolloin ketterä vuorovaikutus asiakkaan kanssa ei ole mahdollista. MDE:n käyttöönoton tulee perustua siihen, että sen avulla saadaan ratkaistua organisatorisia ja kaupallisia haasteita. Sen käyttöönotto ilman sitoutumista, motivaatiota, perehtymistä tai tarpeenmukaista integrointia johtaa yleensä huonoon lopputulokseen. (Hutchinson ym., 2011.) 19

20 20 5. Pohdinta ja johtopäätökset Web-sovellukset, jotka perustuvat tavanomaiseen kolmen tason arkkitehtuuriin (esitystaso, logiikkataso, datataso), ovat usein tehty käyttäen useaa eri ohjelmointikieltä (Mikkonen & Taivalsaari, 2008). Käyttämällä vain yhtä ohjelmointikieltä ja paradigmaa jokaisella tasolla voidaan yksinkertaistaa kehitysprosessia (Laine ym., 2011). Malliperustainen ohjelmistokehitys mahdollistaa järjestelmän sitoutumattomuuden johonkin tiettyyn ohjelmointikieleen, ja vapauttaa järjestelmän jonkin tietyn toteutusalustan rajoituksista. Sitä on sanottu loogiseksi evoluutioksi perinteisestä ohjelmointitavasta, jatkaen tärkeää tavoittelua kohti riittävää abstraktiotasoa (Uhl, 2008). Tämä mahdollistaa kehittäjien keskittymisen varsinaisten kehittämiseen liittyvien ongelmien selvittämiseen, alusta- ja teknologiakohtaisten ongelmien sijaan. Edellisessä luvussa käytiin läpi malliperustaisen ohjelmistokehityksen käyttöönoton vaikutukset ohjelmiston kehitysprosessiin. Luetun kirjallisuuden pohjalta voidaan todeta, että malliperustainen ohjelmistokehitys on nykyään käyttökelpoinen ja käytännöllinen tapa rakentaa web-sovelluksia, sekä sen avulla voidaan ratkaista useita web-ohjelmistotekniikassa yleisesti esiintyviä ongelmia ja haasteita. Malliperustaisuus kuitenkin soveltuu selkeästi parhaiten suuriin sovelluksiin, jolloin mallien kehittämiseen kuluva aika ja vaiva maksavat itsensä monikertaisesti takaisin. Yhteisen standardin puute kuitenkin hidastaa kyseisen kehitystavan yleistymistä, eivätkä nykyiset mallinnuskielet ole riittävän laajoja kattaakseen kaikkia rikkaiden Internet-sovellusten vaatimuksia. Tämän toteaa myös Rossi (2013). MDD:n toimintaperiaatteen ymmärtäminen ei vie kovin kauaa, ja sen tuomat hyödyt voidaan monessa tapauksessa päätellä toimintaperiaatteiden pohjalta. Esimerkiksi kuluissa voidaan todeta suuri säästö mallien muunnosvaiheessa, sillä koodinluontigeneraattorit hoitavat muunnosprosessin, vapauttaen kehittäjät tästä työstä. Malliperustainen kehitys on suhteellisen uusi paradigma web-ohjelmistotekniikan alueella. Lähteistä löytyi useita erilaisia ehdotuksia malliperustaisten web-sovellusten kehitykseen, ja niitä myös vertailtiin keskenään. Luetun perusteella yksikään ei nouse ylitse muiden, ja monesta ehdotetusta metodologiasta puuttuu mahdollisuus mallintaa kaikkia rikkaiden Internet-sovellusten ominaisuuksia. Vaikka yhtä yleistä standardia ei ole löytynyt, niin web-sovellusten luonteiden yhtäläisyys antaisi syyn jonkinlaisen standardin synnylle, tai ainakin erilaisten toteutusten saumattoman integroinnin mahdollisuudelle. 5.1 Validiteetti ja jatkotutkimusaiheet Validiteettitarkastelussa pyritään välittämään lukijalle riittävästi tietoa valinnoista, sekä kuvata aineisto täsmällisesti ja analyysi selkeästi. Kaikissa tutkimuksissa pätevät tutkimuksen tekemisen yleiset kriteerit, joita ovat kriittisyys, objektiivisuus ja kommunikoitavuus. (Ronkainen ym., 2011.) Tutkielmassa haettiin aineistoa pääosin kahdesta kokotekstitietokannasta sekä manuaalista hakua käyttäen. Löydetyt tulokset ollaan esitetty kielen käännöksestä huolimatta mahdollisimman totuudenmukaisesti. Aineiston etsiminen vielä laajemmin

21 ja systemaattisemmin olisi mahdollisesti lisännyt sen luotettavuutta. Tutkielmassa ollaan pyritty johdonmukaisuuteen, ja käyttämään runsaasti kuvioita kompleksien mallien selkeyttämiseksi. Tutkielmassa on myös pyritty käsittelemään vain valittua aihetta määriteltyjen rajojen puitteissa, sekä ollaan tavoiteltu mahdollisimman objektiivista näkökulmaa. Aineiston keruu ja tutkielman eteneminen on kuvattu selkeästi, jotta lukijoiden on mahdollista seurata tutkielman toteuttamista sekä halutessaan toistaa se. Hebig & Bendraou (2014) totesivat lisätutkimuksen tarpeen vaikutuksen alle päätyvien prosessien räätälöinnille malliperustaisen ohjelmistokehityksen käyttöönoton kanssa. Sitä pidetään esiehtona analysointitekniikoiden kehittämiselle, jotka mahdollistavat vaikutuksen alle päätyvien prosessien räätälöinnin tarpeen ennustamisen ja arvioinnin. Mallinnuskielistä uusimpana mielenkiinnon kohteena tuntuu olevan OMG:n standardisoima IFML (Interaction Flow Modeling Language), joka mahdollistaa graafisten käyttöliittymien kuvaksen alustasta riippumatta, tukien niin web-sovelluksia, mobiilisovelluksia kuin työpöytäsovelluksia (OMG, 2015a). Tätä ei tässä tutkielmassa käsitelty, sillä IFML on suhteellisen uusi mallinnuskieli, eikä siitä löydy tarpeeksi materiaalia. Esimerkiksi Acerbis ym. (2015) ovat kuitenkin käsitelleet aihetta ja heidän löydökset vaikuttavat hyvin lupaavilta. Tämä on mielenkiintoinen jatkotutkimusaihe, joka keskittyy nimenomaan malliperustaisen ohjelmistokehityksen soveltamiseen webympäristössä. Myös mahdollisten tulevien standardien muodostuminen, niiden taaksepäin yhteensopivuus ja niihin siirtyminen tarjoaa runsaasti tutkittavaa jatkossa. 21

22 22 Lähteet Acerbis, R., Bongio, A., Brambilla, M., & Butti, S. (2015). Model-driven development of cross-platform mobile applications with web ratio and IFML. Mobile Software Engineering and Systems (MOBILESoft), nd ACM International Conference on, pp Amalfitano, D., Fasolino, A. R., & Tramontana, P. (2010). Techniques and tools for rich internet applications testing. Web Systems Evolution (WSE), th IEEE International Symposium on, pp Aragón, G., Escalona, M., Lang, M., & Hilera, J. R. (2013). An analysis of modeldriven web engineering methodologies. International Journal of Innovative Computing, Information and Control, 9(1), Benjamin, K., Bochmann, G. V., Jourdan, G. -., & Onut, I. -. (2010). Some modeling challenges when testing rich internet applications for security. Software Testing, Verification, and Validation Workshops (ICSTW), 2010 Third International Conference on, pp Bernardi, M. L., Di Lucca, G. A., & Distante, D. (2011). A model-driven approach for the fast prototyping of web applications. Web Systems Evolution (WSE), th IEEE International Symposium on, pp Bernardi, M. L., Di Lucca, G. A., & Distante, D. (2014). Model-driven fast prototyping of RIAs: From conceptual models to running applications. Advances in Computing, Communications and Informatics (ICACCI, 2014 International Conference on, pp Bézivin, J. (2005). On the unification power of models.4(software and System Modeling), Bezivin, J., Jouault, F., & Touzet, D. (2005). Principles, standards and tools for model engineering. Engineering of Complex Computer Systems, ICECCS Proceedings. 10th IEEE International Conference on, pp Bozzon, A., Comai, S., Fraternali, P., & Carughi, G. T. (2006). Conceptual modeling and code generation for rich internet applications. Proceedings of the 6th International Conference on Web Engineering, Palo Alto, California, USA. pp Brambilla, M., Preciado, J. C., Linaje, M., & Sanchez-Figueroa, F. (2008). Business process-based conceptual design of rich internet applications. Web Engineering, ICWE '08. Eighth International Conference on, pp Casteleyn, S., Garrig'os, I., & Maz'on, J. (2014). Ten years of rich internet applications: A systematic mapping study, and beyond. ACM Trans.Web, 8(3), 18:1-18:46. Ceri, S., Fraternali, P., & Bongio, A. (2000). Web modeling language (WebML): A modeling language for designing web sites. Proceedings of the 9th International World

23 Wide Web Conference on Computer Networks : The International Journal of Computer and Telecommunications Netowrking, Amsterdam, The Netherlands. pp Comai, S., & Mazza, D. (2012). A model-driven methodology to the content layout problem in web applications. ACM Trans.Web, 6(3), 10:1-10:38. de Koch, N. P. (2001). Software engineering for adaptive hypermedia systems. PhD Thesis, Verlag Uni-Druck, Munich). de Sousa Saraiva, J., & da Silva, A. R. (2009). Development of CMS-based webapplications using a model-driven approach. Software Engineering Advances, ICSEA '09. Fourth International Conference on, pp Escott, E., Strooper, P., Suß, J. G., & King, P. (2011). Architecture-centric modeldriven web engineering. Software Engineering Conference (APSEC), th Asia Pacific, pp Farrell, J., & Nezlek, G. S. (2007). Rich internet applications the next stage of application development. Information Technology Interfaces, ITI th International Conference on, pp Fraternali, P., Comai, S., Bozzon, A., & Carughi, G. T. (2010a). Engineering rich internet applications with a model-driven approach. ACM Trans.Web, 4(2), 7:1-7:47. Fraternali, P., Rossi, G., & Sánchez-Figueroa, F. (2010b). Rich internet applications. Internet Computing, IEEE, 14(3), Fukuda, H., & Yamamoto, Y. (2008). A system for supporting development of large scaled rich internet applications. Automated Software Engineering, ASE rd IEEE/ACM International Conference on, pp Gitzel, R., Korthaus, A., & Schader, M. (2007). Using established web engineering knowledge in model-driven approaches. Science of Computer Programming, 66(2), Hebig, R., & Bendraou, R. (2014). On the need to study the impact of model driven engineering on software processes. Proceedings of the 2014 International Conference on Software and System Process, Nanjing, China. pp Heijstek, W., & Chaudron, M. R. V. (2010). The impact of model driven development on the software architecture process. Software Engineering and Advanced Applications (SEAA), th EUROMICRO Conference on, pp Hendolin, H. (2008). Mallipohjainen kehitys ohjelmistotuotannon automatisoinnissa. Kuopion Yliopisto, Informaatioteknologian Ja Kauppatieteiden Tiedekunta, Herrero Agustin, J. L. (2015). Model-driven web applications. Science and Information Conference (SAI), 2015, pp Hutchinson, J., Rouncefield, M., & Whittle, J. (2011). Model-driven engineering practices in industry. Software Engineering (ICSE), rd International Conference on, pp

24 Hutchinson, J., Whittle, J., Rouncefield, M., & Kristoffersen, S. (2011). Empirical assessment of MDE in industry. Proceedings of the 33rd International Conference on Software Engineering, Waikiki, Honolulu, HI, USA. pp Jose Escalona, M., & Aragon, G. (2008). NDT. A model-driven approach for web requirements. Software Engineering, IEEE Transactions on, 34(3), Kateros, D. A., Kapitsaki, G. M., Tselikas, N. D., & Venieris, I. S. (2008). A methodology for model-driven web application composition. Services Computing, SCC '08. IEEE International Conference on,, 2. pp Kraus, A. (2007). Model driven software engineering for web applications. Unpublished manuscript. Kuuskeri, J., & Mikkonen, T. (2009). Partitioning web applications between the server and the client. Proceedings of the 2009 ACM Symposium on Applied Computing, Honolulu, Hawaii. pp Laine, M., Shestakov, D., Litvinova, E., & Vuorimaa, P. (2011). Toward unified web application development. IT Professional, 13(5), Lawton, G. (2008). New ways to build rich internet applications. Computer, 41(8), Martínez, Y., Cachero, C., & Meliá, S. (2012). Evaluating the impact of a model-driven web engineering approach on the productivity and the satisfaction of software development teams. Proceedings of the 12th International Conference on Web Engineering, Berlin, Germany. pp Martínez-Nieves, L. A., Hernández-Carrillo, V. M., & Alor-Hernandez, G. (2010). An ADV-UWE based phases process for rich internet applications development. Electronics, Robotics and Automotive Mechanics Conference (CERMA), 2010, pp Melia, S., Gomez, J., Perez, S., & Diaz, O. (2010). Facing architectural and technological variability of rich internet applications Mikkonen, T., & Taivalsaari, A. (2008). Web applications spaghetti code for the 21st century. Software Engineering Research, Management and Applications, SERA '08. Sixth International Conference on, pp Mikkonen, T., & Taivalsaari, A. (2010). The mashware challenge: Bridging the gap between web development and software engineering. Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research, Santa Fe, New Mexico, USA. pp Moreno, N., Romero, J. R., & Vallecillo, A. (2008). An overview of model-driven web engineering and the mda., Mukhtar, M. A. O., Abdullah, A., & Downe, A. G. (2011). Preliminary overview about relations QVT: Query/View/Transformation model transformation language. National Postgraduate Conference (NPC), 2011, pp

25 Mukhtar, M. A. O., Fadzil Bin Hassan, M., Bin Jaafar, J., & Ab Rahim, L. (2014). WSDMDA: An enhanced model driven web engineering methodology. Control System, Computing and Engineering (ICCSCE), 2014 IEEE International Conference on, pp Mukhtar, M. A. O., Hassan, M. F. B., Bin Jaafar, J., & Rahim, L. A. (2013). Enhanced approach for developing web applications using model driven architecture. Research and Innovation in Information Systems (ICRIIS), 2013 International Conference on, pp OMG (Object Management Group). (2014). MDA guide revision 2.0. Retrieved 11/13, 2014, from OMG (Object Management Group). (2015a). Interaction flow modeling language (IFML) version 1.0. Retrieved 11/14, 2015, from OMG (Object Management Group). (2015b). "MDA - the architecture of choice for A changing world". Retrieved 11/14, 2015, from OMG (Object Management Group). (2015c). Meta object facility (MOF) version 2.5., 2016, from Pastor, O., Fons, J., Pelechano, V., & Abrahão, S. (2006). Conceptual modelling of web applications: The OOWS approach., Poole, J. D. (2001). Model-driven architecture: Vision, standards and emerging technologies. In in ECOOP 2001, Workshop on Metamodeling and Adaptive Object Models, Preciado, J. C., Linaje, M., Comai, S., & Sanchez-Figueroa, F. (2007). Designing rich internet applications with web engineering methodologies. Web Site Evolution, WSE th IEEE International Workshop on, pp Preciado, J. C., Linaje, M., Sanchez, F., & Comai, S. (2005). Necessity of methodologies to model rich internet applications. Web Site Evolution, (WSE 2005). Seventh IEEE International Symposium on, pp Rivero, J. M., Grigera, J., Rossi, G., Luna, E. R., & Koch, N. (2011). Improving agility in model-driven web engineering. CAiSE Forum,, 734. pp Ronkainen, S., Pehkonen, L., Lindblom-Ylänne, S., & Paavilainen, E. (2011). Tutkimuksen voimasanat (1st ed.). Helsinki: WSOYpro Oy. Rossi, G. (2013). Web modeling languages strike back. Internet Computing, IEEE, 17(4), 4-6. Schwabe, D., & Rossi, G. (1995). The object-oriented hypermedia design model. Commun.ACM, 38(8), Sterritt, A., & Cahill, V. (2008). Customisable model transformations based on nonfunctional requirements. Services - Part I, IEEE Congress on, pp

26 Taivalsaari, A., & Mikkonen, T. (2008). Mashups and modularity: Towards secure and reusable web applications. Automated Software Engineering - Workshops, ASE Workshops rd IEEE/ACM International Conference on, pp Taivalsaari, A., & Mikkonen, T. (2011). The web as an application platform: The saga continues. Software Engineering and Advanced Applications (SEAA), th EUROMICRO Conference on, pp Toffetti, G., Comai, S., Preciado, J. C., & Linaje, M. (2011). State-of-the art and trends in the systematic development of rich internet applications. J.Web Eng., 10(1), Torchiano, M., Tomassetti, F. C. A., Ricca, F., Tiso, A., & Reggio, G. (2013). Relevance, benefits, and problems of software modelling and model driven techniques-- A survey in the italian industry. The Journal of Systems and Software, 86(8), Uhl, A. (2008). Model-driven development in the enterprise. Software, IEEE, 25(1), Vallecillo, A., Koch, N., Cachero Castro, C., Comai, S., Fraternali, P., Garrigós Fernández, I., et al. (2007). MDWEnet: A practical approach to achieving interoperability of model-driven web engineering methods. 26

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

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Pasi Lehtimäki Helsinki 10.9.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

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

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2. CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.2010 Luennon

Lisätiedot

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Pasi Lehtimäki Helsinki 18.9.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri hyväksymispäivä arvosana arvostelija Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri Henri Karhatsu Helsinki 4.2.2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN

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

2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaus 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit

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

7. Product-line architectures

7. Product-line architectures 7. Product-line architectures 7.1 Introduction 7.2 Product-line basics 7.3 Layered style for product-lines 7.4 Variability management 7.5 Benefits and problems with product-lines 1 Short history of software

Lisätiedot

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1 Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development 2.12.2008 Harri Laine 1 Jacobson jakaa ohjelmiston oliot kolmeen tyyppiin liittymäolioiksi (interface objects, boundary objects)

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

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

1.3 Katsaus ohjelmistotuotannon kehittymiseen

1.3 Katsaus ohjelmistotuotannon kehittymiseen Yleisiä asioita Oliokirja:http://www.cs.tut.fi/~kk/Ohjelmistoarkkitehtuuri.pdf Tenttipäivä 7.5. Tallennukset, jospas tänään onnistaisi Viikkoharkat löytyvät IDLEstä (TTY), kurssin kotisivuilta/paikallisilta

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

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri Enterprise Architecture TJTSE25 2009 Yrityksen kokonaisarkkitehtuuri Jukka (Jups) Heikkilä Professor, IS (ebusiness) Faculty of Information Technology University of Jyväskylä e-mail: jups@cc.jyu.fi tel:

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

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

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

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

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

Menetelmäraportti - Konfiguraationhallinta

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

Lisätiedot

DIPLOMITYÖ ARI KORHONEN

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

Lisätiedot

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

Johdantoluento. Ohjelmien ylläpito

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

Lisätiedot

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

.NET 2006 ja sen jälkeen

.NET 2006 ja sen jälkeen .NET 2006 ja sen jälkeen Ahti Haukilehto FC Sovelto Oyj Microsoft Regional Director, Finland Superior tools, niin mitkä? Visual Studio Team System Team Foundation Server DSL Tools 2 Visual Studio Team

Lisätiedot

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.2 Arkkitehtuurikuvaukset eri tasoilla 2.3 Arkkitehtuurinäkökulmat ja kuvaustyypit 2.4 Arkkitehtuuriviipaleiden kuvaus

Lisätiedot

XML-tutkimus Jyväskylän yliopistossa

XML-tutkimus Jyväskylän yliopistossa XML-tutkimus Jyväskylän yliopistossa Airi Salminen Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos airi.salminen@jyu.fi http://www.cs.jyu.fi/~airi/ Airi Salminen, XML-tutkimus Jyväskylän yliopistossa

Lisätiedot

UML-kielen formalisointi Object-Z:lla

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

Lisätiedot

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

Standardi IEC Ohjelmisto

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

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

Lisätiedot

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

7.4 Variability management

7.4 Variability management 7.4 Variability management time... space software product-line should support variability in space (different products) support variability in time (maintenance, evolution) 1 Product variation Product

Lisätiedot

Advanced Test Automation for Complex Software-Intensive Systems

Advanced Test Automation for Complex Software-Intensive Systems Advanced Test Automation for Complex Software-Intensive Systems Aiheena monimutkaisten ohjelmistovaltaisten järjestelmien testauksen automatisointi Mistä on kyse? ITEA2-puiteohjelman projekti: 2011-2014

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

MALLIPOHJAINEN KEHITYS OHJELMISTOTUO- TANNON AUTOMATISOINNISSA

MALLIPOHJAINEN KEHITYS OHJELMISTOTUO- TANNON AUTOMATISOINNISSA MALLIPOHJAINEN KEHITYS OHJELMISTOTUO- TANNON AUTOMATISOINNISSA Henning Hendolin Pro gradu -tutkielma Tietojenkäsittelytiede Kuopion yliopiston tietojenkäsittelytieteen laitos Kesäkuu 2008 KUOPION YLIOPISTO,

Lisätiedot

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

Lisätiedot

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

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

Toimilohkojen turvallisuus tulevaisuudessa

Toimilohkojen turvallisuus tulevaisuudessa Toimilohkojen turvallisuus tulevaisuudessa Turvallisuusseminaari ASAF 30.10-1.11.2006 Mika Strömman Teknillinen korkeakoulu 1 Sisältö Luotettavuuden lisääminen hyvillä tavoilla Toimilohkokirjastot Turvatoimilohkot

Lisätiedot

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

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

Lisätiedot

ADM Arkkitehtuuritason automaatio #tdarc

ADM Arkkitehtuuritason automaatio #tdarc ADM Arkkitehtuuritason automaatio #tdarc Kalle Launiala http://abstractiondev.wordpress.com kalle.launiala@citrus.fi Ohjelmistoteollisuus elää murrosta Ohjelmistoteollisuudesta halutaan perusteollisuutta

Lisätiedot

Opetusteknologian standardoinnin tilanne. Antti Auer

Opetusteknologian standardoinnin tilanne. Antti Auer Opetusteknologian standardoinnin tilanne Antti Auer 24.8.2001 Standardoinnin käsite Yleisesti opetusteknologian standardoinniksi kutsutulla kehitystyöllä viitataan erilaisiin ja eri tasoisiin toimintoihin.

Lisätiedot

Sähkötekniikan tutkintoohjelma. DI-tutkinto ja uranäkymät

Sähkötekniikan tutkintoohjelma. DI-tutkinto ja uranäkymät Sähkötekniikan tutkintoohjelma DI-tutkinto ja uranäkymät Tervetuloa opiskelemaan sähkötekniikkaa Oulun yliopistoon! ITEE RESEARCH UNITS Tutkinto-ohjelman tuottajat CAS CIRCUITS AND SYSTEMS PROF. JUHA KOSTAMOVAARA

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

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

Domain spesifinen mallinnus ja generointi käytännössä. Petri Savolainen

Domain spesifinen mallinnus ja generointi käytännössä. Petri Savolainen Domain spesifinen mallinnus ja generointi käytännössä Petri Savolainen Agenda o Taustaa o DSM yleisesti o Meidän versiomme DSM:ästä o Case Muistaako kukaan? o Helppoa o Tuottavaa o Businessongelman ratkomista

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

Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako?

Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako? Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako? JÄRJESTÄJÄ SAVO Q AIKA 14.11.2018 Kokonaisarkkitehtuurin määrittelyä Tekijä(t) Armour, F. & Kaisler, S. 2017. Introduction to Enterprise

Lisätiedot

Ohjelmistotekniikan menetelmät, kesä 2008

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

Lisätiedot

Palvelusuuntautunut ohjelmistotuotanto Luento 8: Näkökulmien mallinnus ja soveltaminen; Kurssin yhteenveto Toni Ruokolainen

Palvelusuuntautunut ohjelmistotuotanto Luento 8: Näkökulmien mallinnus ja soveltaminen; Kurssin yhteenveto Toni Ruokolainen CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 8: Näkökulmien mallinnus ja soveltaminen; Kurssin yhteenveto Toni Ruokolainen Luennon runko Näkökulmien mallinnuksesta

Lisätiedot

2 Description of Software Architectures

2 Description of Software Architectures 2 Description of Software Architectures 2.1 Significance of architectural descriptions 2.2 Context of architectural descriptions 2.3 Levels of architectural descriptions 2.4 Viewpoints and types in architecture

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

Ohjelmistotekniikan menetelmät, kevät 2008

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

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

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

Lisätiedot

MetaEdit+:n käyttö kehitysmenetelmän mallintamisessa

MetaEdit+:n käyttö kehitysmenetelmän mallintamisessa MetaEdit+:n käyttö kehitysmenetelmän mallintamisessa Miika Nurminen (minurmin@jyu.fi) Annemari Auvinen (annauvi@jyu.fi) Tietojärjestelmien kehittämismenetelmät -seminaarityö 3.11.2008 Sisältö Kehitysmenetelmistä

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

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

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

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2009 582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

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

SOVELLUSALUEMALLINNUS OHJELMISTOTUOTANNON TUKENA

SOVELLUSALUEMALLINNUS OHJELMISTOTUOTANNON TUKENA Risto Moilanen SOVELLUSALUEMALLINNUS OHJELMISTOTUOTANNON TUKENA Tietotekniikan pro gradu -tutkielma Ohjelmistotekniikan linja 28.11.2006 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Risto Moilanen

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

Web-palvelut ja niihin kohdistuneiden poikkeavuuksien tunnistamisen. Harri Mäkelä

Web-palvelut ja niihin kohdistuneiden poikkeavuuksien tunnistamisen. Harri Mäkelä Web-palvelut ja niihin kohdistuneiden poikkeavuuksien tunnistamisen Harri Mäkelä Aiheet Yleiset asiat ja tutkimuskysymys Johdanto Web-palvelun tietoturvaan Sisällysluettelo Teoria Testausympäristö Mitä

Lisätiedot

Standardit osana käyttäjäkeskeistä suunnittelua

Standardit osana käyttäjäkeskeistä suunnittelua Standardit osana käyttäjäkeskeistä suunnittelua 20.4.2006 Mikä on standardi? sovittu tapa tehdä jokin asia saatetaan tarkoittaa asian määrittelevää normatiivista asiakirjaa varmistetaan esim. Euroopassa

Lisätiedot

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen

Lisätiedot

Kielitieteellisten aineistojen käsittely

Kielitieteellisten aineistojen käsittely Kielitieteellisten aineistojen käsittely 1 Johdanto...1 2 Aineistojen kommentointi, metadatan tyypit...1 3 Aineistojen käsittely...2 3.1 Rakenteisten kieliaineistojen kyselykielet...2 3.2 Tiedonlouhinta

Lisätiedot

Ylläpito. Ylläpidon lajeja

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

Lisätiedot

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

Onnistunut ohjelmistoprojekti

Onnistunut ohjelmistoprojekti Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt

Lisätiedot

Standardit IEC 61508 (perustandardi) ja IEC 61511 (prosessit)

Standardit IEC 61508 (perustandardi) ja IEC 61511 (prosessit) Standardit IEC 61508 (perustandardi) ja IEC 61511 (prosessit) DI Jouko Järvi Automation Partners Oy IEC 61508 IEC TC 65 (Industrial Process Measurement and Control), SC 65A (System Aspects) kutsui kokoon

Lisätiedot

Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa

Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa Cleantech gaalan iltapäiväseminaari 20.11.2013 Helena Mälkki & Petri Peltonen Aalto-yliopisto,

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

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

Edtech kestää aikaa!

Edtech kestää aikaa! Edtech kestää aikaa! kokoa.io Saila Juuti @KokoaStandard Ohjelmistojen paisuminen Software bloat Ohjelmistojen paisuminen Software bloat Teknologiakehityksen keskittyminen Ohjelmistojen paisuminen Software

Lisätiedot

Ohjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä

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

Lisätiedot

Collaborative & Co-Creative Design in the Semogen -projects

Collaborative & Co-Creative Design in the Semogen -projects 1 Collaborative & Co-Creative Design in the Semogen -projects Pekka Ranta Project Manager -research group, Intelligent Information Systems Laboratory 2 Semogen -project Supporting design of a machine system

Lisätiedot

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon

Lisätiedot

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1 TietoEnator Pilot Ari Hirvonen Senior Consultant, Ph. D. (Economics) TietoEnator Oyj presentation TietoEnator 2003 Page 1 Sallikaa minun kysyä, mitä tietä minun tulee kulkea? kysyi Liisa. Se riippuu suureksi

Lisätiedot

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset 1.3 Katsaus ohjelmistotuotannon kehittymiseen 1.4 Miksi ohjelmistoarkkitehtuuri on tärkeä 1.5 Ohjelmistoarkkitehtuuri

Lisätiedot

Lyhyesti uusista DI-ohjelmista Isohenkilökoulutus to Opintoasianpäällikkö Mari Knuuttila

Lyhyesti uusista DI-ohjelmista Isohenkilökoulutus to Opintoasianpäällikkö Mari Knuuttila Lyhyesti uusista DI-ohjelmista 2015 Isohenkilökoulutus to 28.8.2014 Opintoasianpäällikkö Mari Knuuttila Master s Programmes at SCI Starting 2015 (in English) Master s Programme in Engineering Physics *

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

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat Teollisuusautomaation tietoturvaseminaari Purchasing Manager, Hydro Lead Buyer, Industrial Control Systems 1 Agenda / esityksen tavoite

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

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

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Terveyden

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

Verkkopalveluiden saavutettavuus

Verkkopalveluiden saavutettavuus Verkkopalveluiden saavutettavuus Puhuja: Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Paikka: Helsinki, Tieteiden talo, 24.3.2011 Johdanto Verkkopalvelun saavutettavuus

Lisätiedot

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1 Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa 14.11.2008 Harri Laine 1 Oliot ohjelmiston mallinnuksessa käyttötapaus käyttää Käyttämämme oliokeskeinen perusmalli ohjelmistojen

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

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset 1.3

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

Ohjelmistotekniikka - Luento 2

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

Lisätiedot

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems Advanced Test Automation for Complex Software-Intensive Systems = Advanced Test Automation for Complex Software- Intensive Systems Pääteemana kompleksisten ja erittäin konfiguroitavien softaintensiivisten

Lisätiedot

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2010 582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot