Model-Driven Software Engineering in Practice

This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE). MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis. The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away. The book is organized into two main parts. The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The book is targeted to a diverse set of readers, spanning: professionals, CTOs, CIOs, and team managers that need to have a bird's eye vision on the matter, so as to take the appropriate decisions when it comes to choosing the best development techniques for their company or team; software analysts, developers, or designers that expect to use MDSE for improving everyday work productivity, either by applying the basic modeling techniques and notations or by defining new domain-specific modeling languages and applying end-to-end MDSE practices in the software factory; and academic teachers and students to address undergrad and postgrad courses on MDSE. In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com/, including the examples presented in the book. Table of Contents: Introduction / MDSE Principles / MDSE Use Cases / Model-Driven Architecture (MDA) / Integration of MDSE in your Development Process / Modeling Languages at a Glance / Developing your Own Modeling Language / Model-to-Model Transformations / Model-to-Text Transformations / Managing Models / Summary

[1]  T.N. Nguyen,et al.  An infrastructure for development of object-oriented, multi-level configuration management services , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[2]  Gerti Kappel,et al.  An Introduction to Model Versioning , 2012, SFM.

[3]  Frédéric Jouault Loosely Coupled Traceability for ATL , 2005 .

[4]  Axel Uhl,et al.  Model-Driven Architecture , 2002, OOIS Workshops.

[5]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[6]  Antonio Cicchetti,et al.  Automating Co-evolution in Model-Driven Engineering , 2008, 2008 12th International IEEE Enterprise Distributed Object Computing Conference.

[7]  Daniel L. Moody,et al.  The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering , 2009, IEEE Transactions on Software Engineering.

[8]  Gabor Karsai,et al.  Design Guidelines for Domain Specific Languages , 2014, ArXiv.

[9]  Mark Rouncefield,et al.  Model-driven engineering practices in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[10]  Jordi Cabot,et al.  Refining Models with Rule-based Model Transformations , 2011 .

[11]  Ian Robertson To a man with a hammer, everything looks like a nail. , 1993, BMJ.

[12]  Hans Vangheluwe,et al.  De-/Re-constructing Model Transformation Languages , 2010, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[13]  Alex E. Bell Death by UML Fever , 2004, ACM Queue.

[14]  Steven Kelly,et al.  Worst Practices for Domain-Specific Modeling , 2009, IEEE Software.

[15]  Thomas Kühne,et al.  Matters of (Meta-) Modeling , 2006, Software & Systems Modeling.

[16]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[17]  Dinesh Batra,et al.  Conceptual data modelling in theory and practice , 1995 .

[18]  David A Chappell,et al.  Enterprise Service Bus , 2004 .

[19]  R L Rumpf,et al.  Software Intensive Systems , 2006 .

[20]  Stefano Ceri,et al.  Developing eBusiness Solutions with a Model Driven Approach: The Case of Acer EMEA , 2007, ICWE.

[21]  Jean Bézivin,et al.  Towards Model Driven Tool Interoperability: Bridging Eclipse and Microsoft Modeling Tools , 2010, ECMFA.

[22]  Edward P. K. Tsang,et al.  Foundations of constraint satisfaction , 1993, Computation in cognitive science.

[23]  Scott W. Ambler,et al.  Agile modeling: effective practices for extreme programming and the unified process , 2002 .

[24]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[25]  Diomidis Spinellis Drawing Tools , 2009, IEEE Software.

[26]  Richard F. Paige,et al.  A comparison of model migration tools , 2010, MODELS'10.

[27]  Jordi Cabot,et al.  API2MoL: Automating the building of bridges between APIs and Model-Driven Engineering , 2012, Inf. Softw. Technol..

[28]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

[29]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[30]  Jean-Marie Favre,et al.  Towards a Megamodel to Model Software Evolution Through Transformations , 2005, SETra@ICGT.

[31]  Yves Le Traon,et al.  Barriers to systematic model transformation testing , 2010, Commun. ACM.

[32]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[33]  Markus Völter,et al.  A Catalog of Patterns for Program Generation , 2003, EuroPLoP.

[34]  Douglas C. Schmidt,et al.  Model-Driven Engineering , 2006 .

[35]  Antoni Olivé,et al.  On the Role of Conceptual Schemas in Information Systems Development , 2004, Ada-Europe.

[36]  Bart Meyers,et al.  A framework for evolution of modelling languages , 2011, Sci. Comput. Program..

[37]  Richard F. Paige,et al.  Different models for model matching: An analysis of approaches to support model differencing , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[38]  E. L. Harder,et al.  The Institute of Electrical and Electronics Engineers, Inc. , 2019, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C).

[39]  Reiko Heckel,et al.  Confluence of Typed Attributed Graph Transformation Systems , 2002, ICGT.

[40]  Jonathan Grudin,et al.  Groupware and social dynamics: eight challenges for developers , 1994, CACM.

[41]  R. Burton,et al.  Strategic Organizational Diagnosis and Design , 1995 .

[42]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation , 2006, Monographs in Theoretical Computer Science. An EATCS Series.

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

[44]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[45]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[46]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[47]  Vicente Pelechano,et al.  Automatic generation of basic behavior schemas from UML class diagrams , 2008, Software & Systems Modeling.

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

[49]  Manuel Wimmer,et al.  The Past, Present, and Future of Model Versioning , 2012 .

[50]  Jean Bézivin,et al.  On the Use of Higher-Order Model Transformations , 2009, ECMDA-FA.

[51]  Martin Gogolla,et al.  Theory and Practice of Model Transformations - 3rd International Conference, ICMT@TOOLS 2010, Málaga, Spain, June 28-July 2, 2010. Proceedings , 2010, ICMT@TOOLS.

[52]  Friedrich Steimann,et al.  Coding for the Code , 2005, ACM Queue.

[53]  Andy Schürr,et al.  Specification of Graph Translators with Triple Graph Grammars , 1994, WG.

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

[55]  Frédéric Jouault,et al.  Towards Incremental Execution of ATL Transformations , 2010, ICMT@TOOLS.

[56]  John Lane,et al.  IEEE Standard Computer Dictionary: Compilation of IEEE Standard Computer Glossaries , 1991 .

[57]  Robert L. Glass,et al.  Loyal Opposition - Frequently Forgotten Fundamental Facts about Software Engineering , 2001, IEEE Softw..

[58]  Andy Schürr,et al.  Dagstuhl seminar on bidirectional transformations (BX) , 2011, SGMD.

[59]  Evans,et al.  Domain-driven design , 2003 .

[60]  Jeffrey Parsons,et al.  How UML is used , 2006, CACM.

[61]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[62]  Timothy Lethbridge,et al.  Problems and opportunities for model-centric versus code-centric software development: a survey of software professionals , 2008, MiSE '08.

[63]  Antoni Olivé,et al.  An approach to test-driven development of conceptual schemas , 2011, Data Knowl. Eng..

[64]  Peter W. O'Hearn,et al.  Verified Software: A Grand Challenge , 2006, Computer.

[65]  Perdita Stevens,et al.  A Landscape of Bidirectional Model Transformations , 2007, GTTSE.