Component-based model-driven software development

Model-driven software development (MDSD) and component-based software development are both paradigms for reducing complexity and for increasing abstraction and reuse in software development. In this thesis, we aim at combining the advantages of each by introducing methods from component-based development into MDSD. In MDSD, all artefacts that describe a software system are regarded as models of the system and are treated as the central development artefacts. To obtain a system implementation from such models, they are transformed and integrated until implementation code can be generated from them. Models in MDSD can have very different forms: they can be documents, diagrams, or textual specifications defined in different modelling languages. Integrating these models of different formats and abstraction in a consistent way is a central challenge in MDSD. We propose to tackle this challenge by explicitly separating the tasks of defining model components and composing model components, which is also known as distinguishing programmingin-the-small and programming-in-the-large1. That is, we promote a separation of models into models for modelling-in-the-small (models that are components) and models for modellingin-the-large (models that describe compositions of model components). To perform such component-based modelling, we introduce two architectural styles for developing systems with component-based MDSD (CB-MDSD). For CB-MDSD, we require a universal composition technique that can handle models defined in arbitrary modelling languages. A technique that can handle arbitrary textual languages is universal invasive software composition2 for code fragment composition. We extend this technique to universal invasive software composition for graph fragments (U-ISC/Graph) which can handle arbitrary models, including graphical and textual ones, as components. Such components are called graph fragments, because we treat each model as a typed graph and support reuse of partial models. To put the composition technique into practice, we developed the tool Reuseware that implements U-ISC/Graph. The tool is based on the Eclipse Modelling Framework3 and can therefore be integrated into existing MDSD development environments based on the framework. To evaluate the applicability of CB-MDSD, we realised for each of our two architectural styles a model-driven architecture with Reuseware. The first style, which we name ModelSoC, is based on the component-based development paradigm of multi-dimensional separation of concerns4. The architecture we realised with that style shows how a system that involves multiple modelling languages can be developed with CB-MDSD. The second style, which we name ModelHiC, is based on hierarchical composition. With this style, we developed abstraction and reuse support for a large modelling language for telecommunication networks that implements the Common Information Model5 industry standard. DeRemer, F., Kron, H.: Programming-in-the-large versus programming-in-the-small. (1975) Henriksson, J.: A Lightweight Framework for Universal Fragment Composition—with an application in the Semantic Web. PhD thesis, Technische Universität Dresden. (2009) Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework. (2009) Ossher, H., Tarr, P.: Multi-Dimensional Separation of Concerns and The Hyperspace Approach. (2000) DMTF: Common Information Model Standards. http://www.dmtf.org/standards/cim. (2010)

[1]  Richard F. Paige,et al.  Raising the level of abstraction in the development of GMF-based graphical model editors , 2009, 2009 ICSE Workshop on Modeling in Software Engineering.

[2]  Robert B. France,et al.  A Generic Approach for Automatic Model Composition , 2008, MoDELS.

[3]  Thomas Cottenier The Motorola WEAVR : Model Weaving in a Large Industrial Context , 2006 .

[4]  Mirko Seifert,et al.  Round-Trip Support for Invasive Software Composition Systems , 2009, SC@TOOLS.

[5]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[6]  Albert Zündorf,et al.  Story Diagrams: A New Graph Rewrite Language Based on the Unified Modeling Language and Java , 1998, TAGT.

[7]  Wolfgang Schröder-Preikschat,et al.  AspectC++: an aspect-oriented extension to the C++ programming language , 2002 .

[8]  Peri L. Tarr,et al.  Model-driven development : The good , the bad , and the ugly & , 2006 .

[9]  Robert B. France,et al.  Directives for Composing Aspect-Oriented Design Class Models , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[10]  Uwe Assmann,et al.  XML Recoder : a framework for XML code analysis and transformation , 2003 .

[11]  Thomas Buchmann,et al.  EMF Code Generation with Fujaba , 2007 .

[12]  M. Wimmer,et al.  A Survey on Aspect-Oriented Modeling Approaches , 2006 .

[13]  Miguel A. Fernández,et al.  Experiences of Developing a Network Modeling Tool Using the Eclipse Environment , 2009, ECMDA-FA.

[14]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[15]  Colin Atkinson,et al.  Orthographic Modeling Environment , 2008, FASE.

[16]  Jakob Henriksson,et al.  A lightweight framework for universal fragment composition: with an application in the semantic web , 2008 .

[17]  Siobhán Clarke,et al.  Aspect-oriented analysis and design - the theme approach , 2005, Addison Wesley object technology series.

[18]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[19]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[20]  Jens von Pilgrim,et al.  Mental Map and Model Driven Development , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[21]  Tzilla Elrad,et al.  UML PROFILE FOR ASPECT-ORIENTED SOFTWARE DEVELOPMENT , 2003 .

[22]  Fang Wei,et al.  Foundations of Rule-Based Query Answering , 2007 .

[23]  Sven Apel,et al.  On the Structure of Crosscutting Concerns : Using Aspects or Collaborations ? , 2006 .

[24]  R. Prieto-Diaz,et al.  Implementing faceted classification for software reuse , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[25]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[26]  Mirko Seifert,et al.  Closing the Gap between Modelling and Java , 2009, SLE.

[27]  Wouter Joosen,et al.  From aspect-oriented models to aspect-oriented code?: the maintenance perspective , 2010, AOSD.

[28]  Miguel A. Fernández,et al.  Abstracting Complex Languages through Transformation and Composition , 2009, MoDELS.

[29]  Stephan Herrmann,et al.  Object Teams: Improving Modularity for Crosscutting Collaborations , 2002, NetObjectDays.

[30]  Laurence Duchien,et al.  An UML Notation for Aspect-Oriented Software Design , 2002 .

[31]  Anneke Kleppe,et al.  MCC: A Model Transformation Environment , 2006, ECMDA-FA.

[32]  Mirko Seifert,et al.  Derivation and Refinement of Textual Syntax for Models , 2009, ECMDA-FA.

[33]  Anneke Kleppe,et al.  Software Language Engineering: Creating Domain-Specific Languages Using Metamodels , 2008 .

[34]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[35]  Wouter Joosen,et al.  UniTI: a unified transformation infrastructure , 2007, MODELS'07.

[36]  Jendrik Johannes,et al.  Towards a Generic Layout Composition Framework for Domain Specific Models , 2009 .

[37]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[38]  Yolande Berbers,et al.  Constructing and Visualizing Transformation Chains , 2008, ECMDA-FA.

[39]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[40]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[41]  Stefan Hanenberg,et al.  Expressing different conceptual models of join point selections in aspect-oriented design , 2006, AOSD.

[42]  Ivar Jacobson,et al.  Aspect-oriented software development with use cases , 2005, Addison Wesley object technology series.

[43]  Miguel A. Fernández,et al.  An Integrated Facet-Based Library for Arbitrary Software Components , 2010, ECMFA.

[44]  Dirk Riehle,et al.  Role model based framework design and integration , 1998, OOPSLA '98.

[45]  Bertrand Meyer,et al.  Introduction to the Theory of Programming Languages , 1990 .

[46]  Jean Bézivin,et al.  On the Need for Megamodels , 2004, OOPSLA 2004.

[47]  Alaa A. Kharbouch,et al.  Three models for the description of language , 1956, IRE Trans. Inf. Theory.

[48]  Dimitrios S. Kolovos,et al.  An extensible platform for specification of integrated languages for model management , 2008 .

[49]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[50]  Jacques Klein,et al.  Aspect-oriented multi-view modeling , 2009, AOSD '09.

[51]  Jean Bézivin,et al.  Modeling in the Large and Modeling in the Small , 2003, MDAFA.

[52]  Jean Bézivin,et al.  Model-based DSL frameworks , 2006, OOPSLA '06.

[53]  Uwe Aßmann,et al.  Safe Composition of Transformations , 2010, ICMT@TOOLS.

[54]  Richard C. Gronback Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit , 2009 .

[55]  Jacques Klein,et al.  A generic weaver for supporting product lines , 2008, EA '08.

[56]  Peter Freeman,et al.  Classifying Software for Reusability , 1987, IEEE Software.

[57]  Ulrich Nickel,et al.  The FUJABA environment , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[58]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[59]  Suman Roychoudhury,et al.  Genaweave: a generic aspect weaver framework based on model-driven program transformation , 2008 .

[60]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[61]  Jie Wu,et al.  Transforming Use Case Models to Class Models and OCL-Specifications , 2007 .

[62]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[63]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[64]  João Araújo,et al.  MATA: A Unified Approach for Composing UML Aspect Models Based on Graph Transformation , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[65]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[66]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..