<p><p>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.</p><p>The first part of the book presents the fundamentals in a precise, yet largely informal way. Besides s
Graph transformation for software engineers
β Scribed by Heckel R., Taentzer G
- Publisher
- Springer
- Year
- 2020
- Tongue
- English
- Leaves
- 323
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Table of Contents
Forewords......Page 5
Preface......Page 10
Readers of This Book......Page 11
Acknowledgements......Page 12
Contents......Page 14
Part I Foundations of Graph Transformation......Page 20
Graphs for Modelling and Specification......Page 23
Feature Model for Graphs......Page 28
Basic Graph Structures......Page 29
Multigraphs......Page 30
Summary......Page 31
Labelled Graphs......Page 32
Typed Graphs......Page 33
Graphs with Attributes......Page 34
Summary......Page 37
Hypergraphs......Page 38
Inheritance and Multiplicities......Page 40
WholeβPart Relationships and Spanning Trees......Page 41
Ordering and Collections......Page 45
Formal Definitions of Graphs......Page 46
Formal Considerations of Graph Attribution......Page 47
Graph Transformation Concepts......Page 48
Feature Model for Graph Transformation Concepts......Page 52
Rules and Transformations......Page 54
Elementary Rules......Page 55
Attribute Handling......Page 56
Example Rules......Page 57
Rule-Based Graph Transformation......Page 59
Mapping Distinct Rule Nodes to the Same Graph Node......Page 63
Gluing Conditions......Page 65
Summary: From Conservative to Radical......Page 67
Graph Constraints......Page 68
Negative Application Conditions......Page 69
Path Expressions......Page 70
Multipatterns......Page 71
Merging......Page 76
Integrated Notation for Rules......Page 77
Inverting Rules......Page 78
Summary and Further Reading......Page 79
Graph Transformation Approaches in the Literature......Page 80
Tool Support for Graph Transformations......Page 81
Relations to Other Transformation Concepts......Page 82
Beyond Individual Rules: Usage Scenarios and Control Structures......Page 84
A Matter of Semantics......Page 86
Graph Languages......Page 89
Graph Relations......Page 90
Graph Transition Systems and Other Small-Step Models......Page 91
Motivating Example......Page 94
Procedural Abstraction and Parameter Passing......Page 96
Scheduling Expressions......Page 97
Transactional Behaviour......Page 99
Summary and Further Reading......Page 101
Analysis and Improvement of Graph Transformation Systems......Page 103
Techniques for Analysis and Construction......Page 106
Language Properties......Page 107
System Properties......Page 109
Conflicts and Dependencies......Page 110
Conflicting and Dependent Transformations......Page 111
Static Analysis of Conflicts and Dependencies......Page 114
Confluence......Page 120
Well-Founded Orders......Page 122
Layer Conditions......Page 123
Graph Constraints as Invariants......Page 127
Positive and Conditional Constraints......Page 128
Enforcing Graph Invariants by Application Conditions......Page 129
Verifying Invariants......Page 132
System Properties......Page 133
Potentials and Limits......Page 135
Graph Parsing......Page 136
Comparison of Analysis Techniques......Page 138
Analysis Outcomes......Page 139
Conflicting and Dependent Transformations......Page 140
Graph Constraints as Invariants......Page 141
Model Checking......Page 142
Further Analysis Techniques......Page 143
Part II Graph Transformation in Software Engineering......Page 144
Detecting Inconsistent Requirements in a Use-Case-Driven Approach......Page 150
Integrated Modelling of Static and Dynamic Requirements......Page 152
Analysing Requirement Models......Page 157
Conflicts and Dependencies as Critical and Favourable Signs for Consistency......Page 158
Summary and Further Reading......Page 164
Service Specification and Matching......Page 166
Developing Service-Oriented Software......Page 169
Service Specification......Page 170
Matching of Service Specifications......Page 172
Definition of Service Matching......Page 173
Operational Interpretation of Service Matching......Page 176
Incremental Service Composition......Page 177
Summary and Further Reading......Page 179
Tools and Evaluation......Page 180
Extensions......Page 181
Model-Based Testing......Page 182
Test Models and Test Selection Criteria......Page 185
Generation of Test Cases......Page 189
Handling and Reporting Failure......Page 192
Summary and Further Reading......Page 193
Extensions......Page 194
Reverse Engineering: Inferring Visual Contracts from Java Programs......Page 196
Type Model and Scope......Page 197
From Tracing Object Access to Rule Instances......Page 198
General Rules and Contracts......Page 202
Attribute Conditions and Assignments......Page 204
Multiobjects and Multipatterns......Page 205
Correctness and Completeness......Page 207
Summary and Further Reading......Page 208
Evaluation......Page 209
Applications......Page 210
Stochastic Analysis of Dynamic Software Architectures......Page 212
A Peer-to-Peer Network Model......Page 215
Stochastic Graph Transformation......Page 220
Simulation......Page 222
Model Checking......Page 223
Identify High-Level Requirements to Be Verified......Page 226
Formalise and Encode Stochastic Properties......Page 227
Summary and Further Reading......Page 228
Advanced Modelling-Language Definition: Integrating Metamodelling with Graph Transformation......Page 230
Language Design Process......Page 234
Requirements Elicitation......Page 236
Alphabet Definition......Page 237
Language Constraints......Page 238
Language Instances......Page 240
Language Grammar......Page 241
Language Parsing......Page 244
Simple Editing Operations......Page 245
Living with Inconsistencies......Page 246
Interpreter Semantics......Page 248
Language Evolution......Page 250
Summary and Further Reading......Page 252
Improving Models and Understanding Model Changes......Page 254
An Example of Model Refactoring......Page 256
Model Quality......Page 259
A Sample Modelling Language......Page 261
Specification of Model Refactorings......Page 262
Discussion......Page 265
Analysing the Interplay of Refactorings......Page 266
Model Differencing......Page 270
Model Patching......Page 273
Summary and Further Reading......Page 274
Understanding Model Changes......Page 275
Tool Support......Page 276
Translating and Synchronising Models......Page 277
Interrelated Models and Modelling Languages......Page 280
Model Translation......Page 284
Properties of Model Translations......Page 286
Testing a Model Translation......Page 288
Triple Graph Grammars......Page 289
Operationalisation of TGGs......Page 290
Model Synchronisation......Page 293
Properties of Synchronisation......Page 295
Summary and Further Reading......Page 296
Tooling......Page 297
Applications......Page 298
References......Page 299
Index......Page 321
π SIMILAR VOLUMES
This text aims to help readers who want to visualize graphs as representing structural knowledge. It gives an outline of the whole field, describes in detail the representative methods for drawing graphs, explains extensions such as fisheye and dynamic drawing, presents many practical applications,