© 2020

Graph Transformation for Software Engineers

With Applications to Model-Based Development and Domain-Specific Language Engineering

  • Introduces graph transformation as a fundamental tool to enable model-based development

  • Addresses both the fundamental concepts and the techniques

  • Useful for graduate students in the areas of software engineering and foundations of programming, and practitioners and researchers in these domains


Table of contents

  1. Front Matter
    Pages I-XX
  2. Foundations of Graph Transformation

    1. Front Matter
      Pages 1-3
    2. Reiko Heckel, Gabriele Taentzer
      Pages 5-29
    3. Reiko Heckel, Gabriele Taentzer
      Pages 31-66
    4. Reiko Heckel, Gabriele Taentzer
      Pages 67-85
    5. Reiko Heckel, Gabriele Taentzer
      Pages 87-127
  3. Graph Transformation in Software Engineering

    1. Front Matter
      Pages 129-134
    2. Reiko Heckel, Gabriele Taentzer
      Pages 135-150
    3. Reiko Heckel, Gabriele Taentzer
      Pages 151-166
    4. Reiko Heckel, Gabriele Taentzer
      Pages 167-180
    5. Reiko Heckel, Gabriele Taentzer
      Pages 181-196
    6. Reiko Heckel, Gabriele Taentzer
      Pages 197-214
    7. Reiko Heckel, Gabriele Taentzer
      Pages 239-261
    8. Reiko Heckel, Gabriele Taentzer
      Pages 263-284
  4. Back Matter
    Pages 285-309

About this book


This book is an introduction to graph transformation as a foundation to model-based software engineering at the level of both individual systems and domain-specific modelling languages.

The first part of the book presents the fundamentals in a precise, yet largely informal way. Besides serving as prerequisite for describing the applications in the second part, it also provides a comprehensive and systematic survey of the concepts, notations and techniques of graph transformation. The second part presents and discusses a range of applications to both model-based software engineering and domain-specific language engineering. The variety of these applications demonstrates how broadly graphs and graph transformations can be used to model, analyse and implement complex software systems and languages.

This is the first textbook that explains the most commonly used concepts, notations, techniques and applications of graph transformation without focusing on one particular mathematical representation or implementation approach. Emphasising the research and engineering methodologies used, it will be a valuable resource for graduate students, practitioners and researchers in software engineering, foundations of programming and formal methods.


Graph Transformation Modeling Specification Usage Scenarios Control Structures Software Engineering Model-Based Testing Reverse Engineering Abstraction

Authors and affiliations

  1. 1.University of LeicesterLeicesterUK
  2. 2.Philipps-Universität MarburgMarburgGermany

About the authors

Prof. Dr.-Ing. Reiko Heckel is a member of the School of Informatics at the University of Leicester. Prof. Dr.-Ing. Gabriele Taentzer is a member of the Faculty of Mathematics and Computer Science at Philipps-Universität Marburg. The authors' research is in Graph Transformation, its foundations and applications to System Modelling and Analysis, Model-Based Software Development and Language Engineering.

Bibliographic information

  • Book Title Graph Transformation for Software Engineers
  • Book Subtitle With Applications to Model-Based Development and Domain-Specific Language Engineering
  • Authors Reiko Heckel
    Gabriele Taentzer
  • DOI
  • Copyright Information Springer Nature Switzerland AG 2020
  • Publisher Name Springer, Cham
  • eBook Packages Computer Science Computer Science (R0)
  • Hardcover ISBN 978-3-030-43915-6
  • Softcover ISBN 978-3-030-43918-7
  • eBook ISBN 978-3-030-43916-3
  • Edition Number 1
  • Number of Pages XX, 309
  • Number of Illustrations 77 b/w illustrations, 91 illustrations in colour
  • Topics Theory of Computation
    Software Engineering
  • Buy this book on publisher's site


“This book … is the first comprehensive and systematic presentation of graph-based modelling and applica­tions to the practice of software engineering. It can be of use in teaching, to present the foundations of soft­ware modelling and verification. It is also a reference book for researchers who are active in software mod­elling. … I fully share the authors’ point that graph transformations are an extremely powerful and tremen­dously useful tool that can empower software engineers and help them to develop better and higher quality software. This book is a decisive step in this direction.” [Garlo Ghezzi, Politecnico di Milano] 

“I strongly recommend this book to researchers who want to learn about software modelling, and to any senior undergraduate and graduate students who want to be equipped with foundational knowledge and tools to be able to build high-quality, safe software systems.” [Marsha Chechik, University of Toronto] 

“There is a big gap between problems and available theoretical solutions and this book provides an excellent reference guide to help researchers, educators, students, and practitioners to address and solve a large diver­sity of relevant problems.

Many different software engineering artefacts, including design models, deploy­ment topologies, and devel­opment processes, that can be rendered as graphs and manipulated through graph transformations, could benefit from the mature theory developed over the last thirty years. Many solutions have been presented at conferences and workshops, but the necessary coherent collection of their applica­tions to software engi­neering problems was missing. … [The authors] did a great job in collecting, harmo­nising, and presenting all the different findings and solutions in this book. We particularly appreciate the mix of rigour and formality along with proper context and concrete examples.

We are sure that this book will quickly become an essential reference for those interested in the formal un­derpinnings of graph-based soft­ware engineering notations and artefacts, including those interested in ex­ploiting the results presented here to develop original solutions.” [Gregor Engels, Universität Paderborn; Luciano Baresi, Politecnico di Milano; Mauro Pezzé, Università della Svizzera italiana]

“[This book] is everything one could wish it to be. Part I presents the necessary background on a sufficiently formal level to be accessible to anyone with a moderate knowledge of discrete mathematics, while at the same time illustrating all presented concepts using recurring, small-scale examples. More importantly still, Part II presents example after example of how all this can indeed be used across the board in all phases of software engineering, from requirements gathering through analysis, design and specification to testing. Not surprisingly, given the close proximity of graphs to UML-style models, special attention is paid to concepts of model-driven engineering.

It is a sign of the broad experience of the authors that each and every chapter of Part II is actually based on published research, and ends with extensive pointers to the research literature. Though the book is not meant as a survey, and makes no claims to completeness, it does provide a very good entrance.

[T]he potential target audience of the book is diverse. It can be used in academic teaching as the basis for any of a number of courses, complemented with projects to be carried out in any of the topics of Part II; it can act as a great source of reference; but most importantly, it can serve as a means by which researchers and (research-minded) practitioners in software engineering can get to know graph transformation. … All in all, there is little doubt in my mind that in years to come, this book will be seen to stand out as an authorita­tive, go-to source of information, indispensable on any (physical or digital) bookshelf.” [Arend Rensink, University of Twente]