Contents

Foreword

Acknowledgments

1    Introduction

1.1    Purpose and Use of Models

1.2    Modeling for Software Development

1.3    How to Read this Book

2    MDSE Principles

2.1    MDSE Basics

2.2    Lost in Acronyms: The MD* Jungle

2.3    Overview of the MDSE Methodology

2.3.1    Overall Vision

2.3.2    Target of MDSE: Domains, Platforms, Technical Spaces, and Scenarios

2.3.3    Modeling Languages

2.3.4    Metamodeling

2.3.5    Transformations

2.3.6    Model Classification

2.4    MDSE Adoption in Industry

2.5    Tool Support

2.5.1    Drawing Tools vs. Modeling Tools

2.5.2    Model-Based vs. Programming-Based MDSE Tools

2.5.3    Eclipse and EMF

2.6    Criticisms of MDSE

3    MDSE Use Cases

3.1    Automating Software Development

3.1.1    Code Generation

3.1.2    Model Interpretation

3.1.3    Combining Code Generation and Model Interpretation

3.2    System Interoperability

3.3    Reverse Engineering

4    Model-Driven Architecture (MDA)

4.1    MDA Definitions and Assumptions

4.2    The Modeling Levels: CIM, PIM, PSM

4.3    Mappings

4.4    General-Purpose and Domain-Specific Languages in MDA

4.5    Architecture-Driven Modernization

5    Integration of MDSE in your Development Process

5.1    Introducing MDSE in your Software Development Process

5.1.1    Pains and Gains of Software Modeling

5.1.2    Socio-Technical Congruence of the Development Process

5.2    Traditional Development Processes and MDSE

5.3    Agile and MDSE

5.4    Domain-Driven Design and MDSE

5.5    Test-Driven Development and MDSE

5.5.1    Model-Driven Testing

5.5.2    Test-Driven Modeling

6    Modeling Languages at a Glance

6.1    Anatomy of Modeling Languages

6.2    General-Purpose vs. Domain-Specific Modeling Languages

6.3    General-Purpose Modeling: The Case of UML

6.3.1    Design Practices

6.3.2    Structure Diagrams (or Static Diagrams)

6.3.3    Behavior Diagrams (or Dynamic Diagrams)

6.3.4    UML Tools

6.3.5    Criticisms and Evolution of UML

6.4    UML Extensibility: The Middle Way Between GPL and DSL

6.4.1    Stereotypes

6.4.2    Predicates

6.4.3    Tagged Values

6.4.4    UML Profiling

6.5    Overview on DSLs

6.5.1    Principles of DSLs

6.5.2    Some Examples of DSLs

6.6    Defining Modeling Constraints (OCL)

7    Developing your Own Modeling Language

7.1    Metamodel-Centric Language Design

7.1.1    Abstract Syntax

7.1.2    Concrete Syntax

7.1.3    Language Ingredients at a Glance

7.2    Example DSML: sWML

7.3    Abstract Syntax Development

7.3.1    Metamodel Development Process

7.3.2    Metamodeling in Eclipse

7.4    Concrete Syntax Development

7.4.1    Graphical Concrete Syntax (GCS)

7.4.2    Textual Concrete Syntax (TCS)

8    Model-to-Model Transformations

8.1    Model Transformations and their Classification

8.2    Exogenous, Out-Place Transformations

8.3    Endogenous, In-Place Transformations

8.4    Mastering Model Transformations

8.4.1    Divide and Conquer: Model Transformation Chains

8.4.2    HOT: Everything is a Model, Even Transformations!

8.4.3    Beyond Batch: Incremental and Lazy Transformations

8.4.4    Bi-Directional Model Transformations

9    Model-to-Text Transformations

9.1    Basics of Model-Driven Code Generation

9.2    Code Generation Through Programming Languages

9.3    Code Generation Through M2T Transformation Languages

9.3.1    Benefits of M2T Transformation Languages

9.3.2    Template-Based Transformation Languages: an Overview

9.3.3    Acceleo: An Implementation of the M2T Transformation Standard

9.4    Mastering Code Generation

9.5    Excursus: Code Generation Through M2M Transformations and TCS

10    Managing Models

10.1    Model Interchange

10.2    Model Persistence

10.3    Model Comparison

10.4    Model Versioning

10.5    Model Co-Evolution

10.6    Global Model Management

10.7    Model Quality

10.7.1    Verifying Models

10.7.2    Testing and Validating Models

10.8    Collaborative Modeling

11    Summary

Bibliography

Authors’ Biographies

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.136.17.139