Model-Driven Software Engineering in Practice (Chapter 9)