Engineering Modeling Languages: Turning Domain Knowledge into Tools, 1st Edition (Hardback) book cover

Engineering Modeling Languages

Turning Domain Knowledge into Tools, 1st Edition

By Benoit Combemale, Robert France, Jean-Marc Jézéquel, Bernhard Rumpe, James Steel, Didier Vojtisek

Chapman and Hall/CRC

364 pages | 100 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781466583733
pub: 2016-11-08
eBook (VitalSource) : 9781315387949
pub: 2016-11-17
from $36.48

FREE Standard Shipping!


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.


"If you are a senior researcher or a newcomer to modeling languages, this book will give you what you need to go further and to understand why and how to use them. The book organization and its redline examples are really appropriate for different experience levels of engineers or academics, you just have to select right chapters to define your own needs."

– Patrick Farail, Institute of Technology Antoine de Saint Exupéry, France

Table of Contents

What’s a Model?


Modeling in Science

Modeling in Engineering

Illustrative Example: Cellular Automata

Semantic Foundations of MDE: the Meaning of Models


What’s a Modeling Language?

Why we need Modeling Languages

Concrete Syntax

Abstract Syntax

Semantics of a Modeling Language


Metamodeling With MOF and ECORE

Metamodel, Meta-language, Language Workbench and Meta-metamodel

Meta-Object Facility (MOF)

Ecore and EMF

Representations for Machine Consumption

Illustrative Example: Metamodels for Cellular Automaton


Metamodeling With OCL

The Object Constraint Language - OCL

Advanced features of OCL

Usage of OCL for MOF


Building Editors and Viewers


Generic versus Specific Concrete Syntax

Visual Representations for Human Reading

Tree Editors

Diagram View (Box and Line)

Textual View

Tabular View

Other Views

Model Transformation: from Contemplative

Models to Productive Models


Overview of Model Transformations

The Executable Meta-Modeling Approach




Design pattern Interpreter

Combining the design patterns Interpreter and Visitor

Aspect Weaving with Static Introduction


Refactoring and Refinement


Applying Model Refactoring

Illustrative Example: CAIR-Lite Refactoring

Illustrative Example: CAER Refactoring

Applying Model Refinement



Usefulness of text and code generation

Model-to-text transformations

Code Generation

Documentation Generation

Model Generation

Test Generation: Model-Based Validation And Verification


Variability Management

Context of Software Product-Lines

Modeling Variability with Feature Diagrams

Advanced Variability Modeling Methods

Amalgamated Approach

Separating the Assets and the Variability Concern

Exploitation of Variability Models

MDE for SPL: Wrap up

Scaling up Modeling

Heterogeneous Modeling

Model Merging and Weaving

Language Reuse with Model Typing

Model Slicing

Software Language Engineering


Wrap-up: Metamodeling Process


Tools to build

Metamodeling process

Metamodeling process variants

Metamodeling Guidelines

Illustrative Example: Process followed to build Cellular Automaton tooling

Language Engineering: The Logo Example


Meta-Modeling Logo

Weaving static semantics

Weaving dynamic semantics to get an interpreter

Compilation as a kind of Model Transformation

Model to Model Transformation

Concrete Syntax


Model Driven Engineering of a Role Playing Game


Meta-Modeling the SRD 3.5

Weaving dynamic semantics to get an interpreter

Compilation to get a Web based editor

Testing a Rule Set


Civil/Construction Engineering: The BIM Example


Abstract Syntax of Buildings

Model Storage: Large Models

Concrete Syntax

Case Study: Clash Detection

Case Study: Quantity Takeoff

Application examples

Legal Information on the SRD

About the Originator

About the Series

Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Software Development & Engineering / General