Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM,...

Preview:

Citation preview

Malliperustainen ohjelmistokehitys Malliperustainen ohjelmistokehitys - MDE- MDE

●25.9.2007●Pasi Lehtimäki

MDEMDE

● Miksi MDE?● Mitä on MDE?

● MDA, mallit, mallimuunnokset● Ohjelmistoja

● Eclipse, MetaCase● Mitä jatkossa?

AkronyymiviidakkoAkronyymiviidakko●MDE, MDA, MDD, MDSD, UML, MOF,

XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL,

DSML, MTL, M2M, M2T

Miksi MDE?Miksi MDE?

● Ohjelmistojen kompleksisuus ja koko kasvaa● Kokonaisuuden hallinta vaikeampaa● Tarvitaan tehokkaampia työkaluja

● Mallintaminen pakottaa suunnittelemaan● Järjestelmän arviointi ennen toteutusta

AbstraktiotasoAbstraktiotaso

Mallin määritelmäMallin määritelmä● Löyhä määritelmä / tiukka määritelmä

● Malli on:

● ”Systeemin yksinkertaistus”● ”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.”1

1 Kleppe, A., Warmer, S. ja Bast, W., MDA Explained. The Model Driven Architecture: Practice and Promise. Addison-Wesley, April 2003

Mallit projekteissaMallit projekteissa

Ohjelma-koodi

Ohjelma-koodi

Malli

Ohjelma-koodi

Malli

Ohjelma-koodi

Malli Malli

vainkoodi

koodinvisualisointi

roundtripengineering

malli-keskeinen

vainmalli

”mikämalli?”

”koodi onmalli”

”koodi jamallielävät rinnakkain”

”mallion koodi”

”nytsuunnitelllaan”

MDAMDA

● Object Management Group - OMG● http://www.omg.org/mda/

● MDA on yksi mahdollinen MDE:n toteutustapa

● Käytetään useita OMG:n standardeja● Kattavasti dokumentoitu● Herättänyt kritiikkiä

MallitMallit

● Malleja monessa tasossa● Korkea abstraktiotaso -> matala abstraktiotaso

● Mallin syntaksi määritellään metamallilla

MallitMallit

● Liiketoiminnallisia vaatimuksia

● Ei teknistä tietoa

● Yhteinen sanasto teknisille ja ei teknisille sidosryhmille

● Toteutsalustasta riippumaton

Computation Independent Model

MallitMallit

● Platform Independent Model

● Vaatimusten analysointi

● Platform Specific Model

● Suunnitelma

● Ohjelmakoodi● toteutus

MallitMallit

MOF mallihierarkiaMOF mallihierarkia● M3 – metametamallit

● määrittelee metamallinnuskieliä● määrittelee itse itsensä

● M2 – metamalli

● määrittelee mallinnuskieliä● M1 – malli

● määrittelee järjestelmiä● (M0 – järjestelmä)

MallimuunnoksetMallimuunnokset

● Vähän niin kuin XSL, mutta ei sinnepäinkään...

➔ Marks➔ Mapping➔ Tietoa ohjelmistoalustasta● Tuloksena toinen malli

● PIM -> PIM / PIM -> PSM / PSM -> code

MallimuunnoksetMallimuunnokset

'

MDE, mutta ei MDAMDE, mutta ei MDA

● Domain specific (modeling) languages● Oma mallinnuskieli kullekkin toimiallalle● Esimerkiksi Locheed Martin Advanced

Technology Laboratories ● Software factories – Microsoft

● EFx Factory

Eclipse modeling projectEclipse modeling project

● Scope:● Abstract Syntax Development● Concrete Syntax Development● Model Transformation● Model to Text Generation● Industry Standards

● MOF, UML, XMI, QVT, ...● Domain-Specific Modeling

openArchitectureWare - oAWopenArchitectureWare - oAW

● Eclipse Modeling Projektin osa● Mallimuunnokset● Käyttöliittymiä mallintamiseen● Eclipse integraatio● Vahva tuki EMF:n malleille, mutta myös

muille● http://www.openarchitectureware.org/

openArchitectureWare - oAWopenArchitectureWare - oAWEMFmetametamalli

Lopputulos

Mallihierarkia

Editointi-työkaluja

Editointi-työkaluja

MetaCase - MetaEdit+MetaCase - MetaEdit+

● Domain Specific Modeling● Kehitetään sovellusalueelle sopiva

mallinnuskieli ja sille sopiva editori● Malleista generoidaan koodia● http://www.metacase.com

Muita ohjelmistojaMuita ohjelmistoja● The Jamda Project

● Malleista Java -koodiksi – Open Source

● http://jamda.sourceforge.net/

● AndroMDA

● UML -> J2EE, Spring, ... - Open Source

● http://galaxy.andromda.org/

● IBM Rational tuoteperhe

● Mallinnustyökaluja

● http://www-306.ibm.com/software/rational/

● ... ja paljon muita ...

● MDE tuntuu loogiselta seuraavalta askeleelta ohjelmistokehityksessä

● Työkaluja nyt jo valtavasti saatavilla● Joillain aloilla teollisuudessa MDE:tä

käytetään jo. Esimerkiksi finanssi.

MDE – Mitä seuraavaksi?MDE – Mitä seuraavaksi?

LinkkejäLinkkejä● OMG:n MDA materiaalia

● http://www.omg.org/mda/

● IBM:n MDA aiheinen artikkeli:

● http://www-128.ibm.com/developerworks/rational/library/3100.html

● Planet MDE – portaali

● http://planet-mde.org

● Eclipse Modeling Project

● http://www.eclipse.org/modeling/

● openArchitectureWare

● http://www.openarchitectureware.org/

Recommended