Upload
others
View
7
Download
0
Embed Size (px)
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/