23
Malliperustainen ohjelmistokehitys Malliperustainen ohjelmistokehitys - MDE - MDE 25.9.2007 Pasi Lehtimäki

Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

Malliperustainen ohjelmistokehitys Malliperustainen ohjelmistokehitys - MDE- MDE

●25.9.2007●Pasi Lehtimäki

Page 2: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MDEMDE

● Miksi MDE?● Mitä on MDE?

● MDA, mallit, mallimuunnokset● Ohjelmistoja

● Eclipse, MetaCase● Mitä jatkossa?

Page 3: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

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

DSML, MTL, M2M, M2T

Page 4: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 5: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

AbstraktiotasoAbstraktiotaso

Page 6: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 7: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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”

Page 8: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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ä

Page 9: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MallitMallit

● Malleja monessa tasossa● Korkea abstraktiotaso -> matala abstraktiotaso

● Mallin syntaksi määritellään metamallilla

Page 10: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MallitMallit

● Liiketoiminnallisia vaatimuksia

● Ei teknistä tietoa

● Yhteinen sanasto teknisille ja ei teknisille sidosryhmille

● Toteutsalustasta riippumaton

Computation Independent Model

Page 11: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MallitMallit

● Platform Independent Model

● Vaatimusten analysointi

● Platform Specific Model

● Suunnitelma

● Ohjelmakoodi● toteutus

Page 12: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MallitMallit

Page 13: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 14: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 15: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MallimuunnoksetMallimuunnokset

'

Page 16: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 17: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 18: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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/

Page 19: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

openArchitectureWare - oAWopenArchitectureWare - oAWEMFmetametamalli

Lopputulos

Mallihierarkia

Editointi-työkaluja

Editointi-työkaluja

Page 20: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

MetaCase - MetaEdit+MetaCase - MetaEdit+

● Domain Specific Modeling● Kehitetään sovellusalueelle sopiva

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

Page 21: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 22: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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

Page 23: Malliperustainen ohjelmistokehitys - MDE · MDE, MDA, MDD, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T. Miksi MDE? Ohjelmistojen kompleksisuus ja koko

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/