Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Koko: px
Aloita esitys sivulta:

Download "Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)"

Transkriptio

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

2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Matemaattilsuonnontieteellinen tiedekunta Tietojenkäsittelytieteen laitos Tekijä Författare Author Pasi Lehtimäki Työn nimi Arbetets titel Title Malliperustainen ohjelmistokehitys(model-driven Engineering, MDE) Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Seminaari pages Tiivistelmä Referat Abstract Ohjelmistosuunnittelussa abstraktiotason nostaminen mahdollistaa keskittymisen varsinaisen toiminnallisuuden suunnitteluun pienien yksityiskohtien sijaan. Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) tarjoaa seuraavan askeleen kohti tehokkaampaa ohjelmistojen suunnittelua ja kehitystä. Kantavana ideana on mallintaa sovellusten toiminnallisuus abstrakteilla toimialakohtaisilla malleilla. Näistä tomialakohtaisista malleista siirrytään automaattisten tai osittain automaattisten mallimuunnosten avulla kohti yksityiskohtaisempia malleja ja lopulta varsinaiseen ohjelmakoodiin. MDE:n toimintamallien kehitys ja siirtäminen käytäntöön on vielä alkuvaiheissa, mutta työkaluja MDE:n toteuttamiseen on jo tarjolla ja tieteellinen yhteisö pursuaa MDE-aiheisia artikkeleita. ACM Computing Classification System (CCS): D.2 [Software Engineering] Avainsanat Nyckelord Keywords MDE MDA Säilytyspaikka Förvaringsställe Where deposited Muita tietoja övriga uppgifter Additional information

3 Sisältö ii 1 Johdanto 1 2 Termit ja käsitteet Lyhenteitä Malli Motivaatio MDE:n kehittämiseen 3 4 Mitä on MDE? MDA MDA:n mallit Mallimuunnokset Muut lähestymistavat MDE työkaluja Eclipse modeling project MetaEdit Ongelmia 11 7 Lisää tietoa 12 Lähteet 13

4 1 Johdanto 1 Järjestelmien suunnittelu- ja toteutusvaiheessa korkeampi abstraktiotaso mahdollistaa keskittymisen varsinaisten toiminnallisuuden suunnitteluun ja toteuttamiseen. Kolmannen sukupolven ohjelmointikielet, kuten Java ja C++, piilottavat ohjelmoijalta varsin suuren osan pinnan alla tapahtuvista toiminnoista. Näitä kieliä käytettäessä suunnitteluvaiheessa voidaan keskittyä olioiden välisten suhteiden määrittellyyn eikä ohjelmointivaiheessakaan ohjelmoijan tarvitse olla tietoinen esimerkiksi prosessorin rekistereistä tai muistipaikkojen osoitteista. Olio-ohjelmointikielet ovat myös mahdollistaneet helposti uudelleenkäytettävien ohjelmakomponenttikirjastojen rakentamisen. Nykyaikaisten järjestelmien kompleksisuus on kuitenkin nousemassa jo niin suureksi, että edellä mainituilla tekniikoilla kokonaisuuksien hallinta on muodostunut erittäin työlääksi. Järjestelmien kehittäjät joutuvat painimaan pienien yksityiskohtien parissa sen sijaan, että keskittyisivät tärkeisiin arkkitehtuurisiin rakaisuihin [Sch06]. Luonnollinen seuraava kehitysaskel olisi abstraktiotason nostaminen edelleen. Mallipohjainen ohjelmistokehitys pyrkii vastaamaan tähän haasteeseen. Varsinkin liiketomintavaatimuksiltaan joustamattomat toimialat sopivat erittäin hyvin mallipohjaiseen ohjelmistokehitykseen. MDE onkin lyömässä itseään läpi varsinkin finanssi- ja matkailusektoreilla.

5 2 Termit ja käsitteet 2 Malliperustaiseen ohjelmistokehitykseen liittyvä kirjallisuus sisältää valtavan määrän eri akronyymejä. Tässä luvussa tehdään välttämätön katsaus MDE -aihepiirissä käytettäviin lyhenteisiin sekä mallin määritelmään. Tämän luvun tarkoitus on helpottaa alan julkaisuiden ymmärtämistä. Useissa julkaisuissa termistö käydään läpi varsin pintapuolisesti tai ei ollenkaan. 2.1 Lyhenteitä MDD, MDE, MDSD Model-Driven Development, Model-Driven Engineering, Model- Driven Software Development. Nämä lähes samaa tarkoittavat lyhenteet esiintyvät kirjallisuudessa viitaten malliperustaiseen ohjelmistokehitykseen [Wikf]. MDA Model-Driven Architecture. MDA on OMG:n (Object Management Group, standardi [OMG03] [Wike] [OMGa]. UML, UML Profiles Unified Modeling Language. UML on OMG:n standardi järjestelmien kuvauskieli, joka sisältää sekä abstraktin syntaksin, että graaffisen syntaksin. UML Profiles on standardoitu UML -laajennos, jolla UML:n voi räätälöidä tiettyyn käyttötarkoitukseen [OMGc] [Wikl]. MOF Meta-Object Facility. OMG:n standardi metatiedon hallintaan [OMGb] [Wikd]. XMI XML Metadata Interchange OMG:n standardi metatiedon välittämiseen käyttäen XML:ää [OMG03] [Wikm]. OCL Object Constraint Language [Wikh] CIM Computation-Independent Model. MDA:n korkein mallitaso. [Sim04] PIM Platform-independent model. Alustariippumaton malli MDA standardissa [Wiki]. PSM Platform-specific model. Tietyn sovellusalustalle tehty järjestelmän malli MDA:ssa [Wikj]. PDM Platform Description Model. DSM Domain-Specific Modeling. [Wika] DSL, DSML Domain Specific (Modeling) Language. Tietyn sovellusalueen mallintamista tukeva mallinnuskieli [Wikb].

6 3 MTL Model Transformation Language [Wikg] M2M Model-to-model. Mallimuunnos kahden mallin välillä. M2T Model-to-text. Mallimuunnos mallista tekstiksi tai ohjelmakoodiksi. 2.2 Malli Malliperustaisen ohjelmistokehityksen keskeisin käsite on malli. Onkin hyödyllistä ensin havainnoida, että mallilla on hyvin erilaisia merkityksiä eri lähteissä. Joissain lähteissä malli määritellään väljästi, jolloin mallin sanotaan olevan systeemin yksinkertaistus [BG01]. Joissain lähteissä taas mallille asetetaan tiukempia vaatimuksia ja se rajataan tarkemmin: Malli on systeemin (tai sen osan) kuvaus kirjoitettuna tarkasti määritellyllä kielellä. Tarkasti määritelty kieli on kieli, jolla on tarkasti määritetty muoto (syntaksi) ja merkitys (semantiikka), ja joka soveltuu automaattisesti tulkittavaksi tietokonneella [KWB03]. 3 Motivaatio MDE:n kehittämiseen Perinteisillä rakennusaloilla, kuten talojen, siltojen ja autojen rakentamisessa, aina ennen varsinaisen valmistamisen aloittamista tehdään malli, jonka avulla lopputulosta voidaan arvioida ennen, kuin valmistamiseen on käytetty valtava määrä resursseja. Rakennettavan asian malli pakottaa suunnittelijat ajattelemaan isompia kokonaisuuksia sekä rakennettavien kokonaisuuksien välisiä vuorovaikutuksia. Oman kokemukseni perusteella IT-allalla hyödyllisiä malleja rakennetaan vain harvoin. Malleja kyllä käytetään, mutta ne ovat valitettavan harvoin koodista generoituja luokkakaavioita, joilla projektin dokumentaatio koitetaan saada näyttämään uskottavammalta tuomatta kuitenkaan siihen mitään todellista lisäarvoa. Projektisuunnitelman yhteydessä luodut mallit ovat usein jo vanhentuneita siinä vaiheessa, kun ohjelmoijan pitäisi niihin tutustua ja projekteissa turvaudutaankin muihin kommunikoinnin välineisiin halutun lopputuloksen saavuttamiseksi. Mallien tehokas käyttö ohjelmistokehityksessä vaatii malleista saatavan hyödyn parempaa realisoitumista. Malleista saatava hyöty on oltava isompi, kuin mallintamiseen käytettävät resurssit. MDE pyrkii tähän tavoitteeseen automatisoimalla osan kehitysprosessia ja liittämällä mallinnuksen kiinteäksi osaksi ohjelmistokehitystä. [WUG03].

7 4 Kun malleista tuotetaan automaattisten tai osittain automaattisten välivaiheiden avulla lopullista suoritettavaa ohjelmakoodia, muodostuu mallinnuksesta kaikille sidosryhmille houkuttelevampi työkalu. Sovellusalueen asiantuntijat voivat osallistua ylemmän tason mallien kehittämiseen ja liiketoimintaratkaisuiden mallintamiseen ilman syvällisiä teknisiä taitoja ja sovellusalueen tuntemus siirtyy mallien mukana myös aluetta vähemmän tunteville sidosryhmille. 4 Mitä on MDE? Malliperustainen ohjelmistokehitys on käsitteenä varsin laaja ja useat tahot lähestyvätkin sitä eri suunnista. Kaikilla on kuitenkin yhteinen tavoite: ohjelmistokehityksen nopeuttaminen ja laadun parantaminen käyttäen formaaleja malleja kehitystyön lähtökohtana. Malliperustaisessa ohjelmistokehityksessä on kaksi selvästi erottuvaa kokonaisuutta. Ensimmäinen on mallintaminen ja mallien kehitys. Toinen osa on mallimuunnosten kehittäminen ja automatisointi. Joissain MDE -tekniikoissa myös mallimuunnokset luokitellaan malleiksi, jolloin nämä rajat saattavat hämärtyä. 4.1 MDA Object Management Group (OMG) on nimennyt oman MDE standardinsa MDA:ksi (Model-Driven Architecture). Koska MDA on hyvin määritelty, käytän sitä tässä työssä yleisenä esimerkkinä. On kuitenkin syytä pitää mielessä, että MDA on herättänyt kritiikkiä liian yleisestä lähestymistavastaan. Käyn jäljempänä läpi lyhyesti ja pintapuolisesti muutaman muunkin lähestymistavan. MDA ja siihen liittyvät standardit muodostavat valtavan kokonaisuuden. Tämän kokonaisuden käsittely syvällisesti tämän työn piirissä ei ole mahdollista. Tässä luvussa pyrin esittelemään MDA:n tärkeimmät komponentit sekä niihin liittyvä muut OMG:n standardit, pureutumatta kuitenkaan yksityiskohtiin. Muita lähestymistapoja pyrin arvioimaan lähinnä eroavaisuuksina MDA:han. MDA määrittelee eri tasoisia malleja, mallien välisiä liitoksia ja mallimuunnoksia. MDA -mallin mukainen ohjelmistokehitys alkaa abstraktin mallin kehityksestä ja siirtyy asteittain kohti suoritettavaa ohjelmakoodia. MDA:han liittyy kiinteästi seuraavat OMG:n standardit: Unified Modeling Language (UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Common Warehouse Metamodel

8 5 (CWM) ja MOF Query / Views / Transformations (MOF QVT) [Poo01] MDA:n mallit MOF eli Meta-Object Facility on OMG:n standardoima metamallien ja metatiedon hallinta järjestelmä [OMG04]. MOF määrittelee monitasoisen tavan määritellä malleja. MOF:n tasot on nimetty M1, M2 ja M3 -kerroksiksi. M3 -kerros määrittelee metametamallin M2 -kerroksen metamallien määrittelyyn. Yksi tunnetuimmista M2 -tason MOF metamallista on UML:n määrittelevä metamalli. MOF muodostaa täsmällisesti määritellyn suljetun metamallinnus arkkitehtuurin. Kaikkien kerroksien mallien elementit vastaavat täsmällisesti ylemmän kerroksen metamallin määritystä. Ylimmän M3 -kerroksen malli määrittelee itse itsensä. Periaatteessa ohjelmointikoodia voidaan pitää M0 -tason mallina [Wikd]. Kuva 1 kiteyttää MOF mallien tasot. Tämän täsmällisesti määritellyn mallihierarkian ansiosta malleja voidaan tulkita automaattisilla työkaluilla. Kuva 1: MOF malllitasot [Béz05]. Computation-Independent Model (CIM) on ylimmän tason malli, jossa mallinnettaan järjestelmän vaatimuksia. CIM:ssä ei yleensä esitetä järjestelmän toteutukseen

9 6 liittyviä asioita. CIM on siis myös alustariippumaton [OMG03]. CIM:n kaltainen yleinen malli auttaa järjestelmän sovellusaluetta huonosti tuntevia sidosryhmiä ymmärtämään järjestelmän liiketoimintavaatimuksia, sekä luo sidosryhmille yhteisen sanaston[sim04]. Platform-independent model (PIM) kuvaa toteutettavan järjestelmän toteutusalustasta riippumattomalla tasolla. PIM mallit saattavat olla esimerkiksi UML malleja [Poo01]. Platform-specific model (PSM) on PIM:stä mallimuutoksilla tuotettu malli, joka kuvaa saman järjestelmän toteutuksen tietylle alustalle. Alusta voi olla esimerkiksi J2EE tai CORBA. Kuva 2 kuvaa MDA:n mallit ja niiden suhteet toisiinsa. Ylemmän tason PIM - malleista kootaan mallimuunnosten avulla kohdealustalle sopiva PSM -malli. PSM -malleista generoidaan ajettavaa ohjelmakoodia Mallimuunnokset Projektin kehityskaaren aikana lähestytään lopullista ohjelmakoodia ylemmän tason malleista alemman tason malleihin siirtyen. OMG on määritellyt näihinkin vaiheisiin oman standardin: MOF Query/Views/Transformations (QVT) määrittelee MOF metamalleihin perustuvan mallimuutos arkkitehtuurin [OMG05]. MDA mallimuutoksia määriteltäessä malleihin liitetään tietoa muunnosta varten. Malliin lisätään metatietoa, jotta mallimuunnos voidaan tehdä ainakin osittain automaattisesti. Kuva 3 kuvaa MDA:n mallimuunnoksen eri osien suhteita toisiinsa. 4.2 Muut lähestymistavat Locheed Martin Advanced Technology Laboratories on kehittäny oman versionsa MDE:stä. He ovat nimenneet sen Model-Centric Software Development (MCSD). Positiivisia tuloksia on saatu poikkeamalla MDA:n toimintamalleista. MCSD rakentaa vahvasti DSML:ien varaan yhden yhtenäisen mallinnuskielen sijaan. Tarjolla on työkaluja mallien validointiin ja verifiointiin esimerkiksi prototypoinnin muodossa. Malleista generoidaan automaattisesti ohjelmarunkoja ja toimminnallisia komponentteja. Nämä komponentit yhdistyvät takaisin mallinnuksen avulla jo olemassa oleviin järjestelmiin [apl06]. Myös Microsoft omassa lähestymisessään MDE:hen on hylännyt MDA:n tarjoamat

10 7 Kuva 2: MDA mallit ja niiden suhteet. Kuva FAMILIES Project hieman muokattuna [FAM].

11 8 Kuva 3: MDA mallimuunnos [OMG03] standardit. Microsoftin MDE arkkitehtuurimalli on nimeltään EFx Factory [Wikc]. Tämä arkkitehtuuriratkaisu perustuu Software Factory arkkitehtuuriin [Wikk]. 5 MDE työkaluja Työkaluja malliperustaiseen ohjelmistokehitykeen on jo nyt saatavilla. Tässä luvussa esittelen hyvin pintapuolisesti kaksi työkalua tai työkaluryhmää. Varskinkin Eclipsen mallinnusprojektin aliprojektit muodostavat niin valtavan kokonaisuuden, että sen perusteellinen läpikäynti ei tässä yhteydessä ole järkevää. 5.1 Eclipse modeling project Eclipse modeling project ( pitää sisällään useita käyttökelpoisia komponentteja. Aliprojekteja on kymmeniä, joiden joukosta löyttyy työkaluja muunmuassa graaffisten mallieditoreiden tekemiseen, UML mallinnukseen sekä mallimuunnoksiin. Ehkäpä tärkeimmän osakokonaisuuden muodostaa Eclipse

12 9 Modeling Framework (EMF), joka pyrkii tarjoamaan työkaluja mallien kehittämiseen ja koodin generointiin. Kuvassa 4 EMF:n mallieditori. Kuva 4: EMF mallieditori Paljon huomiota kerännyt osaprojekti on openarchitectureware (oaw), jonka tavoitteena on tukea malliperustaista ohjelmistokehitystä. Kuva 5 kuvaa oaw:n arkkitehtuurin yleisellä tasolla. oaw on työkalu MDE työkalujen kehitykseen. Sinäänsä kovin sekavasta kuvasta on helppo ymmärtää, että kuinka monen asian sekamelskasta on kyse. Toisaalta kuvasta selviää myös hyvin malliperustaisen ohjemistokehityksen perusidea. Keskimmäinen laatikko ylhäällä on EMF:n metametamallinnuskieli Ecore. Ecorea käyttäen muodostetaan metamalli ja tämän metamallin määrittelemää mallinnuskieltä käyttäen taas järjestelmän malli, josta voidaan generoida ajettavaa ohjelmakoodia. Prosessin lopputuloksena generoidusta ohjelelmakoodista käsin muokattu lopullinen ohjelmakoodi, laatikko oikealla alhaalla. 5.2 MetaEdit+ Suomalaisen MetaCase -yhtiön ( MetaEdit+ tarjoaa työkalut käyttäjilleen omien mallinnuskielien kehittämiseen. Tarkoituksena on hylätä yksi yleinen mallinnuskieli ja kehittää kullekkin sovellusalueelle parhaiten sopiva

13 Kuva 5: oaw arkkitehtuurin yleiskuvaus [oaw] 10

14 11 mallinnuskieli. Yhtiön omien julkaisuiden mukaan sovellusalakohtaisen kielen käyttö nopeuttaa kehitystyötä moninkertaisesti UML:ään verrattuna. On kuitenkin syytä muistaa, että myös UML:ään on kehitetty tapoja toimialakohtaisten mallien määrittelyyn UML Profiles -tekniikalla. Kuvassa 6 MetaEditin toimintaperiaate. Vasemmanpuoleisissa näyttökuvissa MetaEditillä luodaan sovellusalueeseen sopiva mallinnuskieli ja oikeanpuoleisessa näyttökuvassa tätä luotua mallinnuskieltä käytetään sovelluksen mallintamiseen. Kuva 6: MetaEdit ( 6 Ongelmia Malliperustainen ohjelmistokehitys on selvästikkin askel oikeaan suuntaan ohjelmistokehityksen edistämisessä. Matkassa on kuitenkin mutkia. Luottamus OMG:hen standardoinnin veturina on saanut kolauksen menneissä epäonnisumisissa. Esimerkiksi CORBA ei ole ollut sellainen menestys, jota siitä toivottiin. OMG:tä onkin kritisoitu liian aikaisessa vaiheessa standardien kehittämisessä ja referenssitoteutuksien puuttumisesta [Fav04].

15 12 Kuten tästäkin paperista on jo käynyt ilmi, on MDE toimintatavoiltaan varsin vieras perinteiseen ohjelmointiin tottuneelle. Teollisuudessa hyppy tuntemattomaan voikin olla liian suuri ja riskit vaikeasti kartoitettavissa. 7 Lisää tietoa Kuten yllä mainittu, on MDE valtava kokonaisuus erilaisia standardeja, ohjelmistoja ja ideoita. Tässä paperissa on vain raapaistu pintaa kaikesta mitä MDE pitää sisällään. Wikipedian artikkelit ovat osoittautuneet varsin hyviksi ja helpostiymmärrettäviksi lähteiksi aivan perusasioihin tutustumisessa. OMG:n akronyymiviidakkoon hukkumista sen sijaan kannattanee välttää, mikäli asiat eivät ole jo ennestään tuttuja. Eclipsen modeling projektissa on paljon luettavaa dokumentaatiota ( joihin tutustumalla käytännön työn alkuun pääsee suhteellisen helposti. oaw -projekti on liittänyt sivustolle myös videoita oaw työkalun käytön esittelemiseksi. Software Engineering Radion podcast sarjan osat viisi, kuusi ja 67 ovat mallipohjaiselle ohjelmistokehitykselle omistettuja jaksoja. Nämä jaksot kuuntelemalla saa jo varsin kattavan käsityksen MDE:hen liittyvistä käytännön haasteista.

16 Lähteet 13 apl06 BG01 BGK + 06 BGMR03 Béz05 Ecl FAM Fav04 FGDTS06 FS04 KWB03 Mal04 adn Patrick Lardieri, D. W., Model-centric software development. Computer. Bezivin, J. ja Gerbe, O., Towards a precise definition of the omg/mda framework. ASE 01, November Balasubramanian, K., Gokhale, A., Karsai, G., Sztipanovits, J. ja Neema, S., Developing applications using model-driven design environments. Computer. Bezivin, J., Gerard, S., Muller, P.-A. ja Rioux, L., Mda components: Challenges and opportunities. Metamodelling for MDA. Bézivin, J., On the unification power of models. Journal Software and Systems Modeling. Eclipse, Eclipse modeling framework project (emf), eclipse.org/modeling/emf/ (viitattu ). FAMILIES, Families project, (viitattu ). Favre, J.-M., Towards a basic theory to model model driven engineering. 3rd Workshop in Software Model Engineering UML 2004), France, R., Ghosh, S., Dinh-Trong, T. ja Solberg, A., Model-driven development using uml 2.0: promises and pitfalls. Computer. Fondement, F. ja Silaghi, R., Model driven engineering processes. 3rd Workshop in Software Model Engineering UML 2004), Kleppe, A., Warmer, S. ja Bast, W., MDA Explained. The Model Driven Architecture: Practice and Promise. Addison-Wesley, April Mallia, T., Enterprise change methodology with mda. Second European Workshop on Model Driven Architecture (MDA) with an emphasis on Methodologies and Transformations, Kent CT2 7NF, UK, 2004, Computing Laboratory, University of Kent, Canterbury.

17 14 oaw OMGa OMGb oaw, openarchitectureware, org/ (viitattu ). OMG, Omg model driven architecture, (viitattu ). OMG, Omg s metaobject facility, (viitattu ). OMGc OMG, Uml R resource page, (viitattu ). OMG03 OMG04 OMG, MDA Guide Version OMG, ensimmäinen painos, June OMG, Meta Object Facility (MOF) 2.0 Core Specification. OMG, October OMG05 OMG, MOF QVT Final Adopted Specification. OMG, November Poo01 Sch06 Sim04 Wika Wikb Wikc Wikd Poole, J. D., Model-driven architecture: Vision, standards and emerging technologies. Workshop on Metamodeling and Adaptive Object Models, April Schmidt, D., Model-driven engineering. Computer. Sims, O., Enterprise mda R or how enterprise systems will be built. Second European Workshop on Model Driven Architecture (MDA) with an emphasis on Methodologies and Transformations, Kent CT2 7NF, UK, 2004, Computing Laboratory, University of Kent, Canterbury. Wikipedia, Domain-specific modeling, wiki/domain-specific_modeling (viitattu ). Wikipedia, Domain-specific programming language, wikipedia.org/wiki/domain-specific_programming_language (viitattu ). Wikipedia, The efx architectural-guidance software factory, en.wikipedia.org/wiki/software_factory (viitattu ) (viitattu ). Wikipedia, Meta-object facility, Meta-Object_Facility (viitattu ).

18 15 Wike Wikf Wikg Wikh Wiki Wikipedia, Model-driven architecture, wiki/model-driven_architecture (viitattu ). Wikipedia, Model-driven engineering, wiki/model-driven_engineering (viitattu ). Wikipedia, Model transformation language, org/wiki/model_transformation_language (viitattu ). Wikipedia, Object constraint language, wiki/object_constraint_language (viitattu ). Wikipedia, Platform-independent model, wiki/platform-independent_model (viitattu ). Wikj Wikipedia, Platform-specific model, wiki/platform-specific_model (viitattu ). Wikk Wikipedia, Software factory, Software_factory (viitattu ). Wikl Wikm Wikipedia, Unified modeling language, wiki/unified_modeling_language (viitattu ). Wikipedia, Xml metadata interchange, wiki/xmi (viitattu ). WUG03 Weis, T., Ulbrich, A. ja Geihs, K., Model metamorphosis. IEEE SSoftware.

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

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

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

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

Selainpelien pelimoottorit

Selainpelien pelimoottorit Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

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

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

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

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

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

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

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month

Lisätiedot

Oppimateriaalin kokoaminen ja paketointi

Oppimateriaalin kokoaminen ja paketointi Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

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

Aika/Datum Month and year Kesäkuu 2012

Aika/Datum Month and year Kesäkuu 2012 Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen

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

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen

Lisätiedot

OpenUP ohjelmistokehitysprosessi

OpenUP ohjelmistokehitysprosessi OpenUP ohjelmistokehitysprosessi Sami Männistö Helsinki 14.11.2008 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET Tiedekunta/Osasto Matemaattis-luonnontieteellinen

Lisätiedot

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos

Lisätiedot

MALLIPERUSTAISTA ARKKITEHTUURIA TUKEVIEN CASE-VÄLINEIDEN ARVIOINTI- JA VALINTAMENETELMÄ

MALLIPERUSTAISTA ARKKITEHTUURIA TUKEVIEN CASE-VÄLINEIDEN ARVIOINTI- JA VALINTAMENETELMÄ Torsti Töllinen MALLIPERUSTAISTA ARKKITEHTUURIA TUKEVIEN CASE-VÄLINEIDEN ARVIOINTI- JA VALINTAMENETELMÄ Tietojärjestelmätieteen pro gradu -tutkielma 4.12.2002 Jyväskylän yliopisto Tietojenkäsittelytieteiden

Lisätiedot

! #! %! & #!!!!! ()) +

! #! %! & #!!!!! ()) + ! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets

Lisätiedot

Luonnontieteiden popularisointi ja sen ideologia

Luonnontieteiden popularisointi ja sen ideologia Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro

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

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,

Lisätiedot

MDA malliperustainen arkkitehtuuri

MDA malliperustainen arkkitehtuuri MDA malliperustainen arkkitehtuuri Hannu Kavakka 8.12.2004 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma Tiivistelmä Ohjelmistojen laadukkaaseen kehittämiseen tähdätään erilaisten ohjelmistotuotantoprosessien

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

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

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

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

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta

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

Mallien ja järjestelmien oikeellisuuden toteaminen

Mallien ja järjestelmien oikeellisuuden toteaminen Mallien ja järjestelmien oikeellisuuden toteaminen Elena Pirinen Helsinki 2.11.2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI

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

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

10 Kohti ketterää ohjelmistokehitystä

10 Kohti ketterää ohjelmistokehitystä 10 Kohti ketterää ohjelmistokehitystä Perinteinen ohjelmistokehitys perustuu vesiputousmalliin, jossa tavoitteena on ensisijaisesti projektin vieminen läpi tietyssä ajassa. Sovelluksen määrittelytyö tehdään

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

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

7. Tuoterunkoarkkitehtuurit

7. Tuoterunkoarkkitehtuurit 7. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen Kerrostyyli tuoterunkoarkkitehtuureille Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö opportunistinen:

Lisätiedot

Paikkatietotuotteen määrittely

Paikkatietotuotteen määrittely Paikkatietotuotteen määrittely Työpaja tietotuotteista 24.11.2010 Panu Muhli Maanmittauslaitos Inspire-sihteeristö etunimi.sukunimi@maanmittauslaitos.fi Sisällys Mikä on paikkatietotuote? Mitä paikkatietotuotteen

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

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

MetaEdit+ -ohjelmiston soveltuvuuden arviointi

MetaEdit+ -ohjelmiston soveltuvuuden arviointi Miika Nurminen ja Tiina Penttinen MetaEdit+ -ohjelmiston soveltuvuuden arviointi ProLaatuPro-projekti 3.8.2005 Informaatioteknologian tiedekunta Jyväskylän yliopisto ProLaatuPro-projekti 2(28) Miika Nurminen

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

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa

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

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

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

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009 VHDL/Verilog/SystemC Jukka Jokelainen 20.10.2009 Sisältö Mitä ihmettä on hardwaren ohjelmointi? VHDL Verilog SystemC Analogiaelektroniikan yhdistäminen digitaaliseen maailmaan Yhteenveto ja pohdintaa Hardwaren

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

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

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

Lisätiedot

Malliperustainen ohjelmistokehitys webympäristössä

Malliperustainen ohjelmistokehitys webympäristössä 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ä

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

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

Visual Basic -sovelluskehitin Juha Vitikka

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

Lisätiedot

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets

Lisätiedot

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7

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

Lisätiedot

Laskennallinen yhteiskuntatiede

Laskennallinen yhteiskuntatiede Laskennallinen yhteiskuntatiede Matti Nelimarkka Helsinki 5.5.2011 LuK tutkielma HELSINGIN YLIOPISTO Tietojenkasittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

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

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

UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Seminaariesitelmä 26.9.2000 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisällys 1 Johdanto 1 2 UML:n perusteet 2 2.1 Kaaviot 2 2.1.1 Yleiskäsitteet ja käyttötapauskaavio 2 2.1.2 Luokkakaavio 3

Lisätiedot

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

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

Lisätiedot

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

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

.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

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

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

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

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

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

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

Ohjelmistotekniikan menetelmät, UML

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

Lisätiedot

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010. 3.

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010. 3. Takki Nyt se sopii, tai sitten ei Jussi Vänskä Espotel Oy vierailuluentosarja OTM kurssi 2010 3. luento: tuote Lisää ot sik k o osoit t am alla Jussi Vänskä OTM kevät 2010 Tuote Mitä tuote voi olla? Tuote

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

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

Kasvua ja kilpailukykyä standardeilla. Riskit hallintaan SFS-ISO 31000

Kasvua ja kilpailukykyä standardeilla. Riskit hallintaan SFS-ISO 31000 Kasvua ja kilpailukykyä standardeilla Riskit hallintaan SFS-ISO 31000 Riskit hallintaan SFS-ISO 31000 Elämme jatkuvasti muuttuvassa maailmassa, jossa joudumme käsittelemään epävarmuutta joka päivä. Se,

Lisätiedot

A Service-Oriented Architecture (SOA) View of IHE Profiles

A Service-Oriented Architecture (SOA) View of IHE Profiles A Service-Oriented Architecture (SOA) View of IHE Profiles HL7 IHE meeting 20.8.2009 Timo Itälä SoberIT, TKK Juha Mykkänen, KuY 2 SoberIT IHE ja SOA (palveluarkkitehtuuri) SOA (service-oriented architecture)

Lisätiedot

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö

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

Hajautettujen työvoiden hallinta

Hajautettujen työvoiden hallinta hyväksymispäivä arvosana arvostelija Hajautettujen työvoiden hallinta Simo Moilanen Helsinki 11.05.2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

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

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

Lisätiedot

Paikkatietotuotteet ja niiden määrittely

Paikkatietotuotteet ja niiden määrittely Paikkatietotuotteet ja niiden määrittely Inspire-koulutuspäivä 30.3.2011 Panu Muhli Maanmittauslaitos Inspire-sihteeristö etunimi.sukunimi@maanmittauslaitos.fi Sisällys Mikä on paikkatietotuote? Mitä paikkatietotuotteen

Lisätiedot

T Ohjelmistotekniikan seminaari

T Ohjelmistotekniikan seminaari T-106.5800 Ohjelmistotekniikan seminaari Scala-lukupiiri, kevät 2013 Teemu Sirkiä teemu.sirkia@aalto.fi 31.1.2013 Kenelle tämä lukupiiri on suunnattu? Scalasta kiinnostuneille Erityisesti heille, joita

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

Kurssin sisältö. Kurssin sisältö. Luentoaikataulu karkeasti. Esseiden aikataulu. Aihe-ehdotuksia esseille. Aihe-ehdotuksia esseille

Kurssin sisältö. Kurssin sisältö. Luentoaikataulu karkeasti. Esseiden aikataulu. Aihe-ehdotuksia esseille. Aihe-ehdotuksia esseille Väliohjelmistot Kurssin hallinnolliset tiedot Lea Kutvonen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 Kurssin tavoite tutustua väliohjelmistoratkaisujen periaatteisiin mitkä ovat väliohjelmistojen

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

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

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

Lisätiedot

Turvakriittisen projektin menetelmät ja työkalut

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

Lisätiedot

Metatiedon siirto (XMI) Martti Söderlund

Metatiedon siirto (XMI) Martti Söderlund Metatiedon siirto (XMI) Martti Söderlund 12.11.2000 Seminaarialustus, Ohjelmistotuotantovälineet Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO Sisältö 1. Johdanto...1 2. Kuvauskielet...2 2.1 XML...

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

Palvelusuuntautunut ohjelmistotuotanto Laskuharjoitus 1: Ryhmätöiden alustaminen Toni Ruokolainen,

Palvelusuuntautunut ohjelmistotuotanto Laskuharjoitus 1: Ryhmätöiden alustaminen Toni Ruokolainen, CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Laskuharjoitus 1: Ryhmätöiden alustaminen Toni Ruokolainen, 29.1.2010 Laskuharjoitustilaisuuden sisältö Harjoitustyön

Lisätiedot

TSSH-HEnet : Kansainvälistyvä opetussuunnitelma. CASE4: International Master s Degree Programme in Information Technology

TSSH-HEnet : Kansainvälistyvä opetussuunnitelma. CASE4: International Master s Degree Programme in Information Technology TSSH-HEnet 9.2.2006: Kansainvälistyvä opetussuunnitelma CASE4: International Master s Degree Programme in Information Technology Elina Orava Kv-asiain suunnittelija Tietotekniikan osasto Lähtökohtia Kansainvälistymisen

Lisätiedot

Tietojärjestelmäarkkitehtuurit

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

Lisätiedot

Software product lines

Software product lines Thomas Gustafsson, Henrik Heikkilä Software product lines Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Asiantuntijateksti 17.11.2013 Sisällys 1 Johdanto 1 2 Software product

Lisätiedot

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen Unified Modeling Language (UML) 582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..

Lisätiedot