Read more
This book introduces model-driven approaches in software development using a pragmatic presentation that includes foundational sidebars and industrial experiences. Suitable as a textbook for master students in software engineering, it is also an ideal reference for professional software engineers. The book leverages experiences from the modeling community to provide a broader view of the use of models in software development. It fills a gap in the literature by providing a body of knowledge representative of the recent evolution in the Model Driven Engineering domain.
List of contents
What’s a Model? Introduction. Modeling in Science. Modeling in Engineering. Illustrative Example: Cellula. Automata. Semantic Foundations of MDE: the Meaning of Models. Exercises. What’s a Modeling Language. Why we need Modeling Languages. Concrete Syntax. Abstract Syntax. Semantics of a Modeling Languag. Exercise. 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 Automato. Exercises. Metamodeling With OCL. The Object Constraint Language - OCL. Advanced features of OCL. Usage of OCL for MOF. Exercises. Building Editors and Viewers. Introduction. 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 Motivations. Overview of Model Transformations. The Executable Meta-Modeling Approach. Exercises. Interpreter. Ingredients. Design pattern Interpreter
Combining the design patterns Interpreter and Visitor Aspect Weaving with Static Introduction. Exercises. Refactoring and Refinement. Foundations. Applying Model Refactoring. Illustrative Example: CAIR-Lite. Refactoring. Illustrative Example: CAER Refactoring. Applying Model Refinement. Exercises
Generators. Usefulness of text and code generation. Model-to-text transformations. Code Generation. Documentation Generation. Model Generation. Test Generation: Model-Based Validation And Verification. Exercises. 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. Exercises. Wrap-up: Metamodeling Process. Actors. Tools to build. Metamodeling process. Metamodeling process variants Metamodeling Guidelines. Illustrative Example: Process followed to build Cellular Automaton tooling. Language Engineering: The Logo Example. Introduction. 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. Exercices. Model Driven Engineering of a Role Playing Game. Introduction. Meta-Modeling the SRD 3.5. Weaving dynamic semantics to get an interpreter. Compilation to get a Web based editor. Testing a Rule Set. Exercices. Civil/Construction Engineering: The BIM Example. Introduction. 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 author
Benoit Combemale, Robert France, Jean-Marc Jézéquel, Bernhard Rumpe, James Steel, Didier Vojtisek
Summary
This book introduces model-driven approaches in software development using a pragmatic presentation that includes foundational sidebars and industrial experiences.
Additional text
"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