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

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

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen

2 Ohjelmistoarkkitehtuurien kuvaus

Johdantoluento. Ohjelmien ylläpito

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Ohjelmistotekniikan menetelmät, UML

Tietojärjestelmän osat

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

Ohjelmistoarkkitehtuurit, syksy

ADM Arkkitehtuuritason automaatio #tdarc

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

Software product lines

Palvelusuuntautunut ohjelmistotuotanto Luento 1: Kurssin järjestelyt, palveluperustaisten järjestelmien periaatteet Toni Ruokolainen, 8.9.

Oleelliset vaikeudet OT:ssa 1/2

UML-kielen formalisointi Object-Z:lla

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

ITK130 Ohjelmistojen luonne

7. Tuoterunkoarkkitehtuurit

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

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Arkkitehtuurin mallintaminen

Suunnitteluvaihe prosessissa

TeliaSonera Identity and Access Management

HELIA 1 (20) Outi Virkki Tiedonhallinta

1.3 Katsaus ohjelmistotuotannon kehittymiseen

MALLIPOHJAINEN KEHITYS OHJELMISTOTUO- TANNON AUTOMATISOINNISSA

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri

Mallien ja järjestelmien oikeellisuuden toteaminen

Määrittelyvaihe. Projektinhallinta

Ohjelmistoarkkitehtuurit. Syksy 2010

10. Tuoterunkoarkkitehtuurit

Ohjelmistotekniikan menetelmät, kevät 2008

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Kevät

1. Johdanto. Ohjelmistotuotannon ongelmia

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Avoimen ja yhteisen rajapinnan hallintamalli

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Semanttisen tietämyksenhallinnan mahdollisuudet sosiaalityön tiedonmuodostuksessa

SOVELLUSALUEMALLINNUS OHJELMISTOTUOTANNON TUKENA

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Tietokantojen suunnittelu, relaatiokantojen perusteita

Ohjelmistotekniikka - Luento 2

Arkkitehtuurin mallintaminen

2. Ohjelmistotuotantoprosessi

Työkalujen merkitys mittaamisessa

ohjelman arkkitehtuurista.

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistojen mallintaminen, kesä 2009

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Ohjelmistojen mallintaminen, kertausta

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

The OWL-S are not what they seem

Ohjelmistoarkkitehtuurit. Syksy 2008

Onnistunut ohjelmistoprojekti

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Oppimistavoitteet. Koodimalli Code Model. Näkymätyypit. Näkymätyypit Yksi arkkitehtuuri monta näkymää NÄKYMÄTYYPIT

Yleisiä asioita. Harkat alkavat ensi viikolla Vierailuluentoa. Slackin #luennot-kanava taas käytössä. Ensi viikon perjantaina, Janne Viitala, Sandvik

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

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistojen mallintaminen, kesä 2010

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

Oppimistavoitteet. Arkkitehtuurin mallintaminen. Malleista ja niiden käytöstä. Malleista ja niiden käytöstä. Kommutatiivinen kaavio 22.9.

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Korkeakoulujen yhteentoimivuusmalli

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit. Syksy 2007

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

Standardi IEC Ohjelmisto

Tietokannan suunnittelu

Analyysi on tulkkaamista

Ohjelmistoarkkitehtuurit. Kevät 2014

Projektin suunnittelu

Collaborative and interoperable computing

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Johdatusta ohjelmistotekniikkaan

Transkriptio:

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 jotain tarkoitusta varten, jostain näkökulmasta katsottuna Malli on jonkin järjestelmän kuvaus Preskriptiivinen malli Esim. suunnittelumallit ja muut spesifikaatiot Määrittelevät kuinka järjestelmä tulee toteuttaa ja minkälaisia ehtoja sen tulee täyttää Deskriptiivinen malli Esim. ontologiat Kuvaavat jo olemassa olevaa järjestelmää Hyödyllisiä analysointiin ja uudelleentoteutuksiin (re-engineering) Esimerkkejä malleista Kartat, rakennepiirustukset, matemaattiset mallit, simulaatiot, ohjelmistotuotannon mallit,...

Mallin ominaisuuksia Antaa kuvauskielen käsitteet Määrittelee oikeellisuusehdot kuvauskielen elementeille Abstrakti: vain ongelmanratkaisun kannalta relevantit aspektit mukana Ymmärrettävä: määritelty sidosryhmien ymmärtämällä tavalla (sanasto, esitystapa, semantiikka) Tarkka: kuvaa järjestelmän ominaisuuksia todenmukaisesti Ennustava: voidaan käyttää tekemään ennustuksia järjestelmän toiminnasta ja ominaisuuksista Edullinen: malli on helpompi, nopeampi ja halvempi valmistaa ja siitä saadaan edullisemmin tuloksia kuin järjestelmästä itsestään

Mallien määrittelemisestä ohjelmistotuotannossa Tästä lähtien mallilla tarkoitetaan nimenomaan ohjelmistotuotannossa käytettävää mallia Malli on tehty jonkin mallinnuskielen avulla Esim. sovellusaluekohtainen kieli tai UML Mallinnuskielellä on abstrakti syntaksi sekä konkreettinen syntaksi. Abstrakti syntaksi määrittelee kielen käsitteet ja rakenteen Konkreettisen syntaksin avulla käyttäjät voivat luoda abstraktia syntaksia vastaavia rakenteita Graafinen tai tekstuaalinen konkreettinen syntaksi Mallinnuskielellä voi olla useita konkreettisia syntakseja Järjestelmää kuvaava malli voidaan määritellä useaa abstraktiotasoa ja näkökulmaa käyttäen Toiminnalliset ominaisuudet (esim. mallit arkkitehtuurille, staattisille rakenteille, käyttäytymiselle ja rooleille) Ei-toiminnalliset ominaisuudet (esim. QoS-, luottamus-, liiketoiminta- ja politiikkamallit)

Mallien ja järjestelmien suhteesta Järjestelmällä (System) tarkoitetaan mitä tahansa mielenkiinnon kohdetta Voi olla esimerkiksi abstrakti (sosiaalinen järjestelmä, ideologia, ontologia), digitaalinen (tietokonejärjestelmä) tai fyysinen (rakennus, silta, kaupunki) järjestelmä Malli on kuvaus (representationof) järjestelmästä Malli on itsessään järjestelmä Sisältää joukon toteamuksia (lauseita) järjestelmästä Kaikki mallit ovat konformantteja (conformsto) jonkin referenssimallin kanssa Konformanssi tarkoittaa sitä, että mallin jokainen elementti täyttää referenssimallin kyseisentyyppiselle elementille määrittelemät säännöt Referenssimalli määrittelee oikeellisuussäännöt ja abstraktin syntaksin sitä vastaaville malleille

Ohjelmistotuotannon ongelmakohtia Ohjelmistotuotannon monimutkaisuus Ohjelmistojen tulee Toimia heterogeenisissä ja hajautetuissa ympäristöissä Kommunikoida käyttäen erilaisia paradigmoja ja teknologioita (multi-modaalisuus) Mukautua dynaamisesti toimintaympäristön muutoksiin Käyttäytyä luotettavasti (dependability) Käsitteellinen kuilu asiakkaan vaatimusten ja ohjelmiston ominaisuuksien välillä Ongelma- ja ratkaisutoimialueen käsitteet ovat eri abstraktiotasolla ja katsovat asioita eri näkökulmista Mitä halutaan? Miksi? vs. Miten? Ohjelmistotuotannon tehottomuus Suunnitellut deadlinet vs. Realisoituneet deadlinet Suunnitellut ominaisuudet vs. Toteutuneet ominaisuudet

Malliperustaisen ohjelmistotuotanto (Model Driven Engineering, MDE) Kehityshistoria Ohjelmointikielten eri sukupolvet CASE-välineet MDE Trendi: abstraktiotason, tehokkuuden, yleiskäyttöisyyden ja siirrettävyyden lisääminen MDE on kattotermi joka sisältää Erilaisia malleja ja niiden käyttötapoja Kehitysmallit (development models) Esimerkiksi vaatimus-, arkkitehtuuri-, toteutus- ja asennusmalleja Ajonaikaiset mallit (runtime models) Esimerkiksi palvelu-, yhteistoimintaverkosto- ja SLA-mallit Erilaisia lähestymistapoja OMG:n Model Driven Architecture (MDA) Microsofting Software factories Sovellusaluekohtaiset kielet (domain-specific language, DSL) Formaalit spesifiointikielet

MDE:n periaatteet Malliperustainen ohjelmistotuotanto pyrkii hallitsemaan ohjelmistotuotannon monimutkaisuutta Abstraktiotason nostolla Ohjelmistotuotannon toimintojen automatisoinnilla Pääperiaatteet Mallit ovat ohjelmistotuotannon ensisijaisia tuotoksia (vrt. pelkkä dokumentointi) Mallit tuotetaan sovellusaluekohtaista sanastoa käyttäen Käsitteellisen kuilun kaventaminen Järjestelmät kuvataan useita abstraktiotasoja sekä näkökulmia käyttäen Monimutkaisuuden hallinta Ohjelmistot tuotetaan malleista niin pitkälle kuin mahdollista Ohjelmistotuotannon tehostaminen

MDE:n tavoitteet ja hyödyt Määrittelyn ja suunnittelun tehostaminen Sovellusalue- ja teknologiaterminologian parempi vastaavuus; sovellusaluekohtaiset kielet (domain specific language; DSL) Toteutusvaiheen tehostaminen Koodin generointi; toistuvien tehtävien automatisointi Suunnitteluartefaktien uudelleenkäytettävyys Käytetään useita abstraktiotasoja sekä näkökulmamalleja järjestelmän mallintamiseen. Teknologiset yksityiskohdat eristetään liiketoimintalogiikan suunnittelusta. Toteutusten oikeellisuus Validointi: konformanssi (abstraktiotasojen välillä), konsistenssi (erityisesti näkökulmien välillä) Verifiointi: esim. Mallintarkistus (model checking) Parhaiden käytänteiden dokumentointi Mallimuunnokset dokumentoivat tuotantometodeja ja -tapoja

Esimerkkejä MDE:n sovellusalueista Malliperustainen palvelutuotanto Käsitellään kurssin aikana erityisesti harjoitustöiden yhteydessä Sovellusten asentaminen (deployment) Asennusriippuvuuksien määrittely, hallinta sekä asennuksen automatisoiminen Malliperustaiset väliohjelmistot Väliohjelmiston konfigurointi, personalisointi ja spesialisointi tiettyä tarkoitusta varten. Malliperustaiset ohjelmistotuotelinjat (model-driven software product lines) Ohjelmistotuotelinjojen määritteleminen, toteuttaminen ja hallinta