Engineering Modeling Languages Turning Domain Knowledge into Tools 1st editon by Benoit Combemale , Robert France , Jean-Marc Jézéquel , Bernhard Rumpe , James Steel , Didier Vojtisek – Ebook PDF Instant Download/Delivery: 1466583738 978-1466583733
Full download Engineering Modeling Languages Turning Domain Knowledge into Tools 1st editon after payment
Product details:
ISBN 10:1466583738
ISBN 13:978-1466583733
Author: Benoit Combemale , Robert France , Jean-Marc Jézéquel , Bernhard Rumpe , James Steel , Didier Vojtisek
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.
Engineering Modeling Languages Turning Domain Knowledge into Tools 1st Table of contents:
CHAPTER 1 ■ What’s a Model?
1.1 Introduction
1.2 Modeling in Science
1.3 Modeling in Engineering
1.4 Illustrative Example: Cellular Automata
1.4.1 Cellular Automaton Topology
1.4.2 Cellular Automaton Evolution Rules
1.4.3 Modeling Cellular Automata
1.5 Semantic Foundations of MDE: the Meaning of Models
1.5.1 Basics of Denotational Semantics
1.5.2 Underspecification and Interpretation in the Real World
1.5.3 Operations on Models
1.6 Exercises
CHAPTER 2 ■ What’s a Modeling Language?
2.1 Why We Need Modeling Languages
2.2 Concrete Syntax
2.2.1 Textual Concrete Syntax
2.2.2 Graphical Concrete Syntax: Box-and-Line Diagrams
2.2.3 Graphical Concrete Syntax: Tabular Notations
2.2.4 Graphical Concrete Syntax: Trees
2.3 Abstract Syntax
2.3.1 Abstract Syntax of Textual Languages
2.3.2 Abstract Syntax of Graphical Languages
2.3.3 Concrete and Abstract Syntax Relationship
2.4 Semantics of a Modeling Language
2.4.1 Denotational Semantics
2.4.2 Operational Semantics
2.5 Exercises
CHAPTER 3 ■ Metamodeling with MOF and Ecore
3.1 Metamodel and Meta-Language
3.2 Metamodel, Meta-Language, Language Workbench, and Meta-Metamodel
3.3 Meta-Object Facility (MOF)
3.4 Ecore and EMF
3.5 Representations for Machine Consumption
3.5.1 Textual Representations for Machine Consumption
3.5.2 Database Representation
3.6 Illustrative Example: Metamodels for the Cellular Automaton
3.7 Exercises
CHAPTER 4 ■ Metamodeling with OCL
4.1 The Object Constraint Language
4.1.1 Invariant and Its Context
4.1.2 Basic Operations
4.1.3 Collections
4.1.4 Quantification, Collection, Selection
4.1.5 Navigation along Associations
4.1.6 Derived Attributes
4.2 Advanced Features of OCL
4.2.1 Nature of OCL: First Order and Expression Language?
4.2.2 Specifying Operations in OCL
4.2.3 Further Concepts of OCL
4.2.4 OCL Used at Different Modeling Levels
4.3 Usage of OCL for MOF
4.3.1 OCL for Context Conditions
4.3.1.1 Illustrative Example: Geometry Constraints
4.3.1.2 Illustrative Example: Enhanced Versions of OCL
4.3.1.3 Illustrative Example: Filter Constraints
4.3.1.4 Illustrative Example: Language Constraints from Metamodel Composition
4.3.2 OCL for the Execution Domains (Semantics)
4.3.2.1 Illustrative Example: Evaluating Expressions
4.3.2.2 Illustrative Example: Describing the Effect of a Regular Geometry
4.3.3 Conjunct Use of MOF and OCL
4.4 Exercises
CHAPTER 5 ■ Building Editors and Viewers
5.1 Introduction
5.2 Generic versus Specific Concrete Syntax
5.3 Visual Representations for Human Reading
5.4 Tree View
5.4.1 Generic Tree View
5.4.2 Customization of the Tree View
5.4.3 Illustrative Example: Tree Editor for CAIR
5.5 Diagram View (Box and Line)
5.5.1 Generic Diagram View
5.5.2 Customization of the Diagram View
5.5.3 Illustrative Example: Graphical Editor for Universe Models
5.6 Textual View
5.6.1 Generic Textual View
5.6.2 Customization of the Textual View
5.6.3 Illustrative Example: A Textual Editor for Cellular Automation Evolution Rules
5.7 Tabular View
5.8 Other Views
CHAPTER 6 ■ Model Transformation: from Contemplative to Productive Models
6.1 Motivation
6.2 Overview of Model Transformations
6.2.1 Model-to-Text vs. Model-to-Model
6.2.2 Homogeneous vs. Heterogeneous
6.2.3 Declarative vs. Imperative
6.2.4 Unidirectional vs. Bidirectional
6.2.5 Traceability
6.3 Kermeta: An Executable Metamodeling Approach
6.3.1 Kermeta as an Ecore Extension
6.3.2 Kermeta as an Xtend Extension
6.3.3 Kermeta as an OCL Extension
6.3.4 Kermeta as a Metamodel Integration Platform
6.3.5 Examples with Kermeta
6.3.6 Scaling Up Transformations in Kermeta
6.4 Exercises
CHAPTER 7 ■ Interpreter
7.1 Ingredients for Interpretation
7.1.1 Runtime Data
7.1.2 Computational Steps
7.2 Design Pattern Interpreter
7.3 Combining the Interpreter and Visitor Design Patterns
7.3.1 Approach Overview
7.3.2 Illustrative Example: Interpreter for Cellular Automaton Using a Visitor
7.4 Aspect Weaving with Static Introduction
7.4.1 Approach Overview
7.4.2 Illustrative Example: Operational Semantics for Cellular Automaton Using Static Introduction
7.4.3 Adding Runtime Data Using Static Introduction
7.4.4 Modeling the Interpreter Runtime Data
7.5 Exercises
CHAPTER 8 ■ Refactoring and Refinement
8.1 Foundations
8.1.1 Refactorings
8.1.2 Refinement
8.1.3 Refinements, Refactorings, and Compositions
8.1.4 Testing Refactorings and Refinements
8.2 Applying Model Refactoring
8.2.1 Illustrative Example: CAIR-Lite Refactoring
8.2.2 Illustrative Example: CAER Refactoring
8.3 Applying Model Refinement
8.3.1 Example and Caveats: Data Structure Refinement
8.3.2 Example: Data Structure Refinement with OCL
8.3.3 Example: Behavioral Refinement with OCL
8.3.4 Example: Behavioral Refinement with State Machines
8.4 Exercises
CHAPTER 9 ■ Generators
9.1 Usefulness of Text and Code Generation
9.2 Model-to-Text Transformations
9.2.1 General Purpose Transformation Languages for Text Generation
9.2.2 Illustrative Example: Straightforward Approach
9.2.3 Template-Based Languages
9.2.4 Illustrative Example: Template Approach
9.2.5 Pretty Printing
9.2.6 Mixing All Approaches
9.3 Code Generation
9.3.1 Illustrative Example: Code Generation
9.4 Documentation Generation
9.4.1 Illustrative Example: Documentation Generation for a Universe Model
9.5 Model Generation
9.5.1 Illustrative Example: Generation of VM Model from Initialization Rules
9.6 Test Generation: Model-Based Validation and Verification
9.6.1 Introduction
9.6.2 Model-Based Testing
9.6.2.1 Formal Verification of Properties
9.6.2.2 Intensive Simulation
9.6.2.3 Testing
9.6.3 Automatic Test Generation: A Use Case–Driven Approach
9.6.3.1 Principle of the Approach
9.6.3.2 Simulating the Use Cases
9.6.3.3 Exhaustive Simulation and Transition System
9.6.3.4 Generating Test Cases from Test Objectives and Sequence Diagrams
9.7 Exercises
CHAPTER 10 ■ Variability Management
10.1 Context of Software Product Lines
10.2 Modeling Variability with Feature Diagrams
10.3 Advanced Variability Modeling Methods
10.4 Amalgamated Approach
10.4.1 Annotate a Base Model by Means of Ad hoc Extensions
10.4.2 Combine a Reusable Variability Metamodel with Different Domain Metamodels
10.5 Separating the Assets and the Variability Concern
10.6 Exploitation of Variability Models
10.6.1 Automated Analysis of Feature Models
10.6.2 Multi-Views and Compositional Approaches
10.6.3 Product Derivation
10.6.3.1 Derivation in Amalgamated Approaches
10.6.3.2 Product Derivation in Separated Approaches: The CVL Example
10.6.4 Test Generation
10.7 MDE for SPL: Wrapup
CHAPTER 11 ■ Scaling Up Modeling
11.1 Heterogeneous Modeling
11.2 Model Merging and Weaving
11.2.1 Models and Aspects
11.2.2 Design and Aspect Weaving
11.2.3 Weaving Aspects at Model Level
11.2.4 Weaving Aspects in Sequence Diagrams
11.2.5 Weaving More than One Aspect: The Detection Problem
11.2.6 Weaving More than One Aspect: The Composition Problem
11.2.7 Discussion
11.2.8 Building Project-Specific Aspect Weavers with Kermeta
11.2.9 Merging and Weaving: Wrapup
11.3 Language Reuse with Model Typing
11.3.1 Limits of the Conformance Relations
11.3.2 Model Typing
11.4 Model Slicing
11.5 Software Language Engineering
11.6 Exercises
CHAPTER 12 ■ Wrapup: Metamodeling Process
12.1 Actors
12.2 Tools to Build
12.3 Metamodeling Process
12.4 Metamodeling Process Variants
12.5 Metamodeling Guidelines
12.5.1 Decompose Large Transformations into Smaller Ones
12.5.2 Illustrative Example: Reusing Existing Smaller Transformations
12.5.3 Illustrative Example: Using a Transformation Generator
12.5.4 Illustrative Example: Reducing Transformation Complexity
12.6 Illustrative Example: Process Followed to Build Cellular Automaton Tooling
CHAPTER 13 ■ Language Engineering: The Logo Example
13.1 Introduction
13.2 Metamodeling Logo
13.3 Weaving Static Semantics
13.3.1 The Object Constraint Language
13.3.2 Expressing the Logo Static Semantics in OCL
13.3.3 Adding the Logo Static Semantics to Its Metamodel
13.4 Weaving Dynamic Semantics to Get an Interpreter
13.4.1 Logo Runtime Model
13.4.2 Operational Semantics
13.4.3 Getting an Interpreter
13.5 Compilation as a Kind of Model Transformation
13.6 Model-to-Model Transformation
13.7 Concrete Syntax
13.8 Exercises
CHAPTER 14 ■ Model-Driven Engineering of a Role-Playing Game
14.1 Introduction
14.2 Metamodeling the SRD 3.5
14.2.1 Main Concepts of the SRD 3.5
14.2.2 Metamodeling the SRD Rules
14.2.3 Implementing the SRD Metamodel
14.2.3.1 The Core Package
14.2.3.2 The Expression Package
14.2.3.3 The Action Package
14.2.3.4 The Bonus Package
14.2.4 Example: Creating a Tiny Rule Set
14.3 Weaving Dynamic Semantics to Get an Interpreter
14.3.1 SRD Runtime Model
14.3.2 Mapping the Abstract Syntax to the Runtime Model
14.4 Compilation of a Web-Based Editor
14.4.1 Requirements
14.4.2 Overview of JHipster
14.4.3 Targeting JHipster
14.5 Testing a Rule Set
14.5.1 Random Intensive Testing
14.5.2 Exhaustive Testing
14.5.3 Pairwise Testing
14.6 Exercises
CHAPTER 15 ■ Civil/Construction Engineering: The BIM Example
15.1 Introduction
15.2 Abstract Syntax of Buildings
15.2.1 Industry Foundation Classes
15.3 Model Storage: Large Models
15.4 Concrete Syntax
15.5 Case Study: Clash Detection
15.6 Case Study: Quantity Take-Off
15.6.1 Background: Description of the Domain
15.6.2 Automated Estimator: Buildings and Bills
15.6.2.1 The Intelligent Building Model Language
15.6.2.2 The Bill of Quantities Language
15.6.3 The Take-Off Rules Language and Tool Support
15.6.3.1 Take-Off Rules
15.6.3.2 Tool Support for Quantity Take-Off
15.6.3.3 Traceability and Debugging
People also search for Engineering Modeling Languages Turning Domain Knowledge into Tools 1st:
engineering modeling languages turning domain knowledge into tools
modelling language examples
what is numerical modelling in engineering
what is turning engineering
what is 3d modelling in engineering
Tags:
Benoit Combemale,Robert France,Jean Marc Jézéquel,Bernhard Rumpe,James Steel,Didier Vojtisek,Engineering Modeling
Reviews
There are no reviews yet.