Engineering Modeling Languages : Turning Domain Knowledge into Tools book cover
1st Edition

Engineering Modeling Languages
Turning Domain Knowledge into Tools

ISBN 9781466583733
Published November 8, 2016 by Chapman and Hall/CRC
364 Pages - 100 B/W Illustrations

SAVE ~ $15.59
was $77.95
USD $62.36

Prices & shipping based on shipping country


Book Description

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.

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

View More



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

Featured Author Profiles

Author - Didier  Vojtisek

Didier Vojtisek

Research Engineer, Inria

Learn more about Didier Vojtisek »


"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