Malliperustainen ohjelmistokehitys webympäristössä

Samankaltaiset tiedostot
Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

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

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

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Tutkittua tietoa. Tutkittua tietoa 1

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri

Ohjelmistojen mallintaminen, mallintaminen ja UML

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistojen suunnittelu

7. Product-line architectures

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

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

Ohjelmistoarkkitehtuurit. Kevät

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistojen mallintaminen

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistoarkkitehtuurit. Syksy 2010

Software engineering

Menetelmäraportti - Konfiguraationhallinta

DIPLOMITYÖ ARI KORHONEN

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Johdantoluento. Ohjelmien ylläpito

ELM GROUP 04. Teemu Laakso Henrik Talarmo

.NET 2006 ja sen jälkeen

Arkkitehtuurinen reflektio

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

XML-tutkimus Jyväskylän yliopistossa

UML-kielen formalisointi Object-Z:lla

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

Standardi IEC Ohjelmisto

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

7.4 Variability management

Advanced Test Automation for Complex Software-Intensive Systems

Ohjelmistoarkkitehtuurit. Syksy 2008

MALLIPOHJAINEN KEHITYS OHJELMISTOTUO- TANNON AUTOMATISOINNISSA

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Testaaminen ohjelmiston kehitysprosessin aikana

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

Toimilohkojen turvallisuus tulevaisuudessa

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

ADM Arkkitehtuuritason automaatio #tdarc

Opetusteknologian standardoinnin tilanne. Antti Auer

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

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako?

Ohjelmistotekniikan menetelmät, kesä 2008

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

2 Description of Software Architectures

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

Ohjelmistotekniikan menetelmät, kevät 2008

Oleelliset vaikeudet OT:ssa 1/2

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

Tietojärjestelmän osat

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

Tarvitseeko informaatioteknologia matematiikkaa?

Ohjelmistojen mallintaminen, kesä 2009

arvostelija OSDA ja UDDI palveluhakemistoina.

SOVELLUSALUEMALLINNUS OHJELMISTOTUOTANNON TUKENA

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari

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

Standardit osana käyttäjäkeskeistä suunnittelua

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Kielitieteellisten aineistojen käsittely

Ylläpito. Ylläpidon lajeja

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

Onnistunut ohjelmistoprojekti

Standardit IEC (perustandardi) ja IEC (prosessit)

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

Uudelleenkäytön jako kahteen

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

Edtech kestää aikaa!

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

Collaborative & Co-Creative Design in the Semogen -projects

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

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

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

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

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

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

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

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

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

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Verkkopalveluiden saavutettavuus

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

ITK130 Ohjelmistojen luonne

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

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

Ohjelmistotekniikka - Luento 2

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

Ohjelmistojen mallintaminen, kesä 2010

Transkriptio:

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

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 Sisällysluettelo Tiivistelmä... 2 Sisällysluettelo... 3 1. Johdanto... 4 2. Web-sovellukset... 6 2.1 Perinteiset Internet-sovellukset... 6 2.2 Rikkaat Internet-sovellukset... 6 2.3 Web-kehitys metodologiat... 7 3. Malliperustainen ohjelmistokehitys... 9 3.1 Malliperustaisen ohjelmistokehityksen keskeiset käsitteet... 9 3.2 Malliperustainen arkkitehtuuri... 10 3.2.1 Mallitasot... 10 3.2.2 Meta-Object Facility... 12 3.3 Mallimuunnokset... 13 3.4 Malliperustainen web-kehitys... 14 4. Malliperustaisen ohjelmistokehityksen käyttöönoton vaikutukset kehitysprosessiin... 16 5. Pohdinta ja johtopäätökset... 20 5.1 Validiteetti ja jatkotutkimusaiheet... 20 Lähteet... 22

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-

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

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ä.

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.) 7 2.3 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 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 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 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). 3.2.1 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

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 Kuvio 4. MDA:n 3+1 rakenne 3.2.2 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 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).

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.) 14 3.4 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

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

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).

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

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 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), 2015 2nd ACM International Conference on, pp. 170-171. Amalfitano, D., Fasolino, A. R., & Tramontana, P. (2010). Techniques and tools for rich internet applications testing. Web Systems Evolution (WSE), 2010 12th IEEE International Symposium on, pp. 63-72. 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), 413-436. 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. 403-409. 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), 2011 13th IEEE International Symposium on, pp. 65-74. 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. 250-258. Bézivin, J. (2005). On the unification power of models.4(software and System Modeling), 171-188. Bezivin, J., Jouault, F., & Touzet, D. (2005). Principles, standards and tools for model engineering. Engineering of Complex Computer Systems, 2005. ICECCS 2005. Proceedings. 10th IEEE International Conference on, pp. 28-29. 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. 353-360. Brambilla, M., Preciado, J. C., Linaje, M., & Sanchez-Figueroa, F. (2008). Business process-based conceptual design of rich internet applications. Web Engineering, 2008. ICWE '08. Eighth International Conference on, pp. 155-161. 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

Wide Web Conference on Computer Networks : The International Journal of Computer and Telecommunications Netowrking, Amsterdam, The Netherlands. pp. 137-157. 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, 2009. ICSEA '09. Fourth International Conference on, pp. 500-505. Escott, E., Strooper, P., Suß, J. G., & King, P. (2011). Architecture-centric modeldriven web engineering. Software Engineering Conference (APSEC), 2011 18th Asia Pacific, pp. 106-113. Farrell, J., & Nezlek, G. S. (2007). Rich internet applications the next stage of application development. Information Technology Interfaces, 2007. ITI 2007. 29th International Conference on, pp. 413-418. 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), 9-12. Fukuda, H., & Yamamoto, Y. (2008). A system for supporting development of large scaled rich internet applications. Automated Software Engineering, 2008. ASE 2008. 23rd IEEE/ACM International Conference on, pp. 459-462. Gitzel, R., Korthaus, A., & Schader, M. (2007). Using established web engineering knowledge in model-driven approaches. Science of Computer Programming, 66(2), 105-124. 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. 164-168. Heijstek, W., & Chaudron, M. R. V. (2010). The impact of model driven development on the software architecture process. Software Engineering and Advanced Applications (SEAA), 2010 36th EUROMICRO Conference on, pp. 333-341. 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. 954-964. Hutchinson, J., Rouncefield, M., & Whittle, J. (2011). Model-driven engineering practices in industry. Software Engineering (ICSE), 2011 33rd International Conference on, pp. 633-642. 23

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. 471-480. Jose Escalona, M., & Aragon, G. (2008). NDT. A model-driven approach for web requirements. Software Engineering, IEEE Transactions on, 34(3), 377-390. Kateros, D. A., Kapitsaki, G. M., Tselikas, N. D., & Venieris, I. S. (2008). A methodology for model-driven web application composition. Services Computing, 2008. SCC '08. IEEE International Conference on,, 2. pp. 489-492. 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. 647-652. Laine, M., Shestakov, D., Litvinova, E., & Vuorimaa, P. (2011). Toward unified web application development. IT Professional, 13(5), 30-36. Lawton, G. (2008). New ways to build rich internet applications. Computer, 41(8), 10-12. 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. 223-237. 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. 45-50. 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, 2008. SERA '08. Sixth International Conference on, pp. 319-328. 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. 245-250. Moreno, N., Romero, J. R., & Vallecillo, A. (2008). An overview of model-driven web engineering and the mda., 353-382. 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. 1-5. 24

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. 484-489. 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. 145-150. OMG (Object Management Group). (2014). MDA guide revision 2.0. Retrieved 11/13, 2014, from http://www.omg.org/cgi-bin/doc?ormsc/14-06-01.pdf OMG (Object Management Group). (2015a). Interaction flow modeling language (IFML) version 1.0. Retrieved 11/14, 2015, from http://www.omg.org/spec/ifml/1.0/ OMG (Object Management Group). (2015b). "MDA - the architecture of choice for A changing world". Retrieved 11/14, 2015, from http://www.omg.org/mda/ OMG (Object Management Group). (2015c). Meta object facility (MOF) version 2.5., 2016, from http://www.omg.org/spec/mof/2.5/ Pastor, O., Fons, J., Pelechano, V., & Abrahão, S. (2006). Conceptual modelling of web applications: The OOWS approach., 277-302. 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, 2007. WSE 2007. 9th IEEE International Workshop on, pp. 23-30. Preciado, J. C., Linaje, M., Sanchez, F., & Comai, S. (2005). Necessity of methodologies to model rich internet applications. Web Site Evolution, 2005. (WSE 2005). Seventh IEEE International Symposium on, pp. 7-13. Rivero, J. M., Grigera, J., Rossi, G., Luna, E. R., & Koch, N. (2011). Improving agility in model-driven web engineering. CAiSE Forum,, 734. pp. 163-170. 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), 45-46. Sterritt, A., & Cahill, V. (2008). Customisable model transformations based on nonfunctional requirements. Services - Part I, 2008. IEEE Congress on, pp. 329-336. 25

Taivalsaari, A., & Mikkonen, T. (2008). Mashups and modularity: Towards secure and reusable web applications. Automated Software Engineering - Workshops, 2008. ASE Workshops 2008. 23rd IEEE/ACM International Conference on, pp. 25-33. Taivalsaari, A., & Mikkonen, T. (2011). The web as an application platform: The saga continues. Software Engineering and Advanced Applications (SEAA), 2011 37th EUROMICRO Conference on, pp. 170-174. 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), 70-86. 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), 2110-2126. Uhl, A. (2008). Model-driven development in the enterprise. Software, IEEE, 25(1), 46-49. 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