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, MDSD, UML, MOF, XMI, OCL, CIM, PIM, PSM, PDM, DSM, DSL, DSML, MTL, M2M, M2T
Miksi MDE? Ohjelmistojen kompleksisuus ja koko kasvaa Kokonaisuuden hallinta vaikeampaa Tarvitaan tehokkaampia työkaluja Mallintaminen pakottaa suunnittelemaan Järjestelmän arviointi ennen toteutusta
Abstraktiotaso
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 projekteissa vain koodi koodin visualisointi roundtrip engineering mallikeskeinen vain malli Malli Malli Malli Malli Ohjelmakoodi Ohjelmakoodi Ohjelmakoodi Ohjelmakoodi mikä malli? koodi on malli koodi ja malli elävät rinnakkain malli on koodi nyt suunnitelllaan
MDA 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ä
Mallit Malleja monessa tasossa Korkea abstraktiotaso -> matala abstraktiotaso Mallin syntaksi määritellään metamallilla
Mallit Liiketoiminnallisia vaatimuksia Ei teknistä tietoa Yhteinen sanasto teknisille ja ei teknisille sidosryhmille Toteutsalustasta riippumaton Computation Independent Model
Mallit Platform Independent Model Vaatimusten analysointi Platform Specific Model Suunnitelma Ohjelmakoodi toteutus
Mallit
M3 metametamallit MOF mallihierarkia määrittelee metamallinnuskieliä määrittelee itse itsensä M2 metamalli määrittelee mallinnuskieliä M1 malli määrittelee järjestelmiä (M0 järjestelmä)
Mallimuunnokset Vähän niin kuin XSL, mutta ei sinnepäinkään... Marks Mapping Tietoa ohjelmistoalustasta Tuloksena toinen malli PIM -> PIM / PIM -> PSM / PSM -> code
Mallimuunnokset '
MDE, mutta ei MDA Domain specific (modeling) languages Oma mallinnuskieli kullekkin toimiallalle Esimerkiksi Locheed Martin Advanced Technology Laboratories Software factories Microsoft EFx Factory
Eclipse 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 - 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 - oaw EMF metametamalli Mallihierarkia Editointityökaluja Editointityökaluja Lopputulos
MetaCase - MetaEdit+ Domain Specific Modeling Kehitetään sovellusalueelle sopiva mallinnuskieli ja sille sopiva editori Malleista generoidaan koodia http://www.metacase.com
Muita 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 Mitä seuraavaksi? MDE tuntuu loogiselta seuraavalta askeleelta ohjelmistokehityksessä Työkaluja nyt jo valtavasti saatavilla Joillain aloilla teollisuudessa MDE:tä käytetään jo. Esimerkiksi finanssi.
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/