ABSTRACT

Written by foremost experts in the field, Engineering Modeling Languages provides end-to-end coverage of the engineering of modeling languages to turn domain knowledge into tools.

The book provides a definition of different kinds of modeling languages, their instrumentation with tools such as editors, interpreters and generators, the integration of multiple modeling languages to achieve a system view, and the validation of both models and tools. Industrial case studies, across a range of application domains, are included to attest to the benefits offered by the different techniques. The book also includes a variety of simple worked examples that introduce the techniques to the novice user.

The book is structured in two main parts. The first part is organized around a flow that introduces readers to Model Driven Engineering (MDE) concepts and technologies in a pragmatic manner. It starts with definitions of modeling and MDE, and then moves into a deeper discussion of how to express the knowledge of particular domains using modeling languages to ease the development of systems in the domains.

The second part of the book presents examples of applications of the model-driven approach to different types of software systems. In addition to illustrating the unification power of models in different software domains, this part demonstrates applicability from different starting points (language, business knowledge, standard, etc.) and focuses on different software engineering activities such as Requirement Engineering, Analysis, Design, Implementation, and V&V.

Each chapter concludes with a small set of exercises to help the reader reflect on what was learned or to dig further into the examples. Many examples of models and code snippets are presented throughout the book, and a supplemental website features all of the models and programs (and their associated tooling) discussed in the book.

chapter 1|18 pages

What’s a Model?

chapter 2|26 pages

What’s a Modeling Language?

chapter 3|22 pages

Metamodeling with MOF and Ecore

chapter 4|32 pages

Metamodeling with OCL

chapter 5|20 pages

Building Editors and Viewers

chapter 7|18 pages

Interpreter

chapter 8|22 pages

Refactoring and Refinement

chapter 9|36 pages

Generators

chapter 10|22 pages

Variability Management

chapter 11|28 pages

Scaling Up Modeling

chapter 12|12 pages

Wrapup: Metamodeling Process

chapter 13|20 pages

Language Engineering: The Logo Example