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.