Model-Driven Software Engineering in Practice (Chapter 7)