Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Pasi Lehtimäki Helsinki 10.9.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Matemaattilsuonnontieteellinen tiedekunta Tietojenkäsittelytieteen laitos Tekijä Författare Author Pasi Lehtimäki Työn nimi Arbetets titel Title Malliperustainen ohjelmistokehitys(model-driven Engineering, MDE) Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Seminaari 10.9.2007 5 pages Tiivistelmä Referat Abstract Ohjelmistosuunnittelussa abstraktiotason nostaminen mahdollistaa keskittymisen varsinaisen toiminnallisuuden suunnitteluun pienien yksityiskohtien sijaan. Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) tarjoaa seuraavan askeleen kohti tehokkaampaa ohjelmistojen suunnittelua ja kehitystä. Kantavana ideana on mallintaa sovellusten toimminnallisuus abstrakteilla toimialakohtaisilla malleilla. Näistä tomialakohtaisista malleista siirrytään automaattisten tai osittain automaattisten mallimuunnosten avulla kohti yksityiskohtaisempia malleja ja lopulta varsinaiseen ohjelmakoodiin. MDE:n toimintamallien kehitys ja siirtäminen käytäntöön on vielä alkuvaiheissa, mutta työkaluja MDE:n toteuttamiseen on jo tarjolla ja tietellinen yhteisö pursuaa MDE-aiheisia artikkeleita. ACM Computing Classification System (CCS): D.2 [Software Engineering] Avainsanat Nyckelord Keywords MDE MDA Säilytyspaikka Förvaringsställe Where deposited Muita tietoja övriga uppgifter Additional information
Sisältö ii 1 Johdanto 1 2 Termit ja käsitteet 1 2.1 Lyhenteitä................................. 1 2.2 Malli - käsitteenä............................. 2 3 Miksi tarvitaan MDE? 2 4 Mitä on MDE? 2 4.1 Mallit................................... 2 4.2 Mallimuunnokset............................. 2 5 MDE työkaluja 3 6 Onglemia 3 7 Lisää tietoa 3 Lähteet 4
1 Johdanto 1 2 Termit ja käsitteet Tarvittava johdanto julkaisuissa käytettävään akronyymiviidakkoon... ja mallin käsitteen selvennys. 2.1 Lyhenteitä MDD, MDE, MDSD Model-Driven Development n Use of (prescribed) models and transformations during software development. Model Driven Software Development. n Also used commonly as a synonym for MDE [Wike] MDA Model-Driven Architecture n OMG initiative n UML + MOF + QVT + few other standards.. [Wikd] UML, UML Profiles, MOF [Wiki] [OMGc] [Wikc] [OMGb] XMI The XML Metadata Interchange (XMI) is an OMG standard for exchanging metadata information via Extensible Markup Language (XML). [Wikj] CIM Computation-Independent Model (often referred to as a business or requirements model); PIM: Platform- Independent Model; PSM: Platform-Specific Model. [Sim04] PIM A platform-independent model or PIM is a model of a software or business system that is independent of the specific technological platform [Wikg] PSM A platform-specific model is a model of a software or business system that is linked to a specific technological platform. [Wikh] PDM Platform Description Model DSM Domain-Specific Modeling (DSM) is a software engineering methodology for designing and developing systems, most often IT systems such as computer
2 software. It involves systematic use of a graphical Domain-specific programming language (DSL) to represent the various facets of a system. [Wika] DSL, DSML Domain Specific (Modeling) Language [Wikb] MTL Model Transformation Language [Wikf] M2M Model-to-model M2T Model-to-text (or to code) 2.2 Malli - käsitteenä Mitä malli tarkoittaa? [Fav04] 3 Miksi tarvitaan MDE? [FS04] [FGDTS06] [BGK + 06] [Sch06] 4 Mitä on MDE? [Kut04] [Mal04] [BGMR03] [Wikd] [Sim04] [OMGa] An MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels. [Wikd] 4.1 Mallit CIM, PIM, PSM,... Malleja, metamalleja, metametamalleja... 4.2 Mallimuunnokset Mallin muunnokset (semi)automaattisesti abstraktista mallista spesifisempään malliin: PIM -> PSM ->... -> PSM -> Code [Wikf]
5 MDE työkaluja 3 Eclipse EMF, GMF... MetaCase... 6 Onglemia Luottamus OMG:hen jne. [Fav04] 7 Lisää tietoa Linkkejä, joista voi kaivaa lisää tietoa aiheesta.
Lähteet 4 BGK + 06 BGMR03 Fav04 FGDTS06 FS04 Kut04 Mal04 OMGa OMGb Balasubramanian, K., Gokhale, A., Karsai, G., Sztipanovits, J. ja Neema, S., Developing applications using model-driven design environments. Computer. Bezivin, J., Gerard, S., Muller, P.-A. ja Rioux, L., Mda components: Challenges and opportunities. Metamodelling for MDA. Favre, J.-M., Towards a basic theory to model model driven engineering. 3rd Workshop in Software Model Engineering (WISME @ UML 2004), 2004. France, R., Ghosh, S., Dinh-Trong, T. ja Solberg, A., Model-driven development using uml 2.0: promises and pitfalls. Computer. Fondement, F. ja Silaghi, R., Model driven engineering processes. 3rd Workshop in Software Model Engineering (WISME @ UML 2004), 2004. Kutvonen, L., Relating mda and inter-enterprise collaboration management. Second European Workshop on Model Driven Architecture (MDA) with an emphasis on Methodologies and Transformations, Kent CT2 7NF, UK, 2004, Computing Laboratory, University of Kent, Canterbury, sivut 84 88. Mallia, T., Enterprise change methodology with mda. Second European Workshop on Model Driven Architecture (MDA) with an emphasis on Methodologies and Transformations, Kent CT2 7NF, UK, 2004, Computing Laboratory, University of Kent, Canterbury. OMG, Omg model driven architecture, http://www.omg.org/mda/ (viitattu 8.9.2005). OMG, Omg s metaobject facility, http://www.omg.org/mof/ (viitattu 8.9.2005). OMGc OMG, Uml R resource page, http://www.uml.org/ (viitattu 8.9.2005). Sch06 Schmidt, D., Model-driven engineering. Computer.
5 Sim04 Wika Wikb Wikc Wikd Wike Wikf Wikg Sims, O., Enterprise mda R or how enterprise systems will be built. Second European Workshop on Model Driven Architecture (MDA) with an emphasis on Methodologies and Transformations, Kent CT2 7NF, UK, 2004, Computing Laboratory, University of Kent, Canterbury. Wikipedia, Domain-specific modeling, http://en.wikipedia.org/ wiki/domain-specific_modeling (viitattu 8.9.2005). Wikipedia, Domain-specific programming language, http://en. wikipedia.org/wiki/domain-specific_programming_language (viitattu 8.9.2005). Wikipedia, Meta-object facility, http://en.wikipedia.org/wiki/ Meta-Object_Facility (viitattu 8.9.2005). Wikipedia, Model-driven architecture, http://en.wikipedia.org/ wiki/model-driven_architecture (viitattu 8.9.2005). Wikipedia, Model-driven engineering, http://en.wikipedia.org/ wiki/model-driven_engineering (viitattu 8.9.2005). Wikipedia, Model transformation language, http://en.wikipedia. org/wiki/model_transformation_language (viitattu 8.9.2005). Wikipedia, Platform-independent model, http://en.wikipedia.org/ wiki/platform-independent_model (viitattu 8.9.2005). Wikh Wikipedia, Platform-specific model, http://en.wikipedia.org/ wiki/platform-specific_model (viitattu 8.9.2005). Wiki Wikj Wikipedia, Unified modeling language, http://en.wikipedia.org/ wiki/unified_modeling_language (viitattu 8.9.2005). Wikipedia, Xml metadata interchange, http://en.wikipedia.org/ wiki/xmi (viitattu 8.9.2005).