| Series | Synthesis lectures on software engineering, 2328-3327 ; #4 Synthesis lectures on software engineering ; #4. ^A1167911 |
| Contents |
1. Introduction -- 1.1 Purpose and use of models -- 1.2 Modeling for software development -- 1.3 How to read this book. |
| Contents |
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 Domains, platforms, and technical spaces -- 2.3.3 Modeling languages -- 2.3.4 Metamodeling -- 2.3.5 Transformations -- 2.4 Tool support -- 2.4.1 Drawing tools vs. modeling tools -- 2.4.2 Model-based vs. programming-based MDSE tools -- 2.4.3 Eclipse and EMF -- 2.5 Adoption and criticisms of MDSE. |
| Contents |
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 -- 3.4 Modeling the organization -- 3.4.1 Business process modeling -- 3.4.2 Enterprise architecture. |
| Contents |
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 (ADM). |
| Contents |
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 -- 5.6 Software product lines and MDSE. |
| Contents |
6. Modeling languages at a glance -- 6.1 Anatomy of modeling languages -- 6.2 Multi-view modeling and language extensibility -- 6.3 General-purpose vs. domain-specific modeling languages -- 6.4 General-purpose modeling: the case of UML -- 6.4.1 Design practices -- 6.4.2 Structure diagrams (or static diagrams) -- 6.4.3 Behavior diagrams (or dynamic diagrams) -- 6.4.4 UML tools -- 6.4.5 Criticisms and evolution of UML -- 6.5 UML extensibility: the middle way between GPL and DSL -- 6.5.1 Stereotypes -- 6.5.2 Predicates -- 6.5.3 Tagged values -- 6.5.4 UML profiling -- 6.6 Overview on DSLs -- 6.6.1 Principles of DSLs -- 6.6.2 Some examples of DSLs -- 6.7 Defining modeling constraints (OCL). |
| Contents |
7. Developing your own modeling language -- 7.1 Metamodel-centric language design -- 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) -- 7.5 A real-world example: IFML -- 7.5.1 Requirements -- 7.5.2 Fulfilling the requirements in IFML -- 7.5.3 Metamodeling principles -- 7.5.4 IFML metamodel -- 7.5.5 IFML concrete syntax. |
| Contents |
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. |
| Contents |
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. |
| Contents |
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.7.3 Reviewing models -- 10.8 Collaborative modeling. |
| Contents |
11. Summary -- Bibliography -- Authors' biographies -- Index. |
| Summary |
This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE). MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis. The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away. |
| Bibliography note | Includes bibliographical references (pages 177-183) and index. |
| Source of description | Online resource; title from PDF title page (Morgan & Claypool, viewed on April 18, 2017). |
| Issued in other form | Print version: 9781627057080 |
| Genre/form | Electronic books. |
| ISBN | 9781627059886 (electronic bk.) |
| ISBN | 1627059881 (electronic bk.) |
| ISBN | 9781627056953 (electronic bk.) |
| ISBN | 1627056955 (electronic bk.) |
| ISBN | 1627057080 |
| ISBN | 9781627057080 |
| ISBN | (paperback) |
| Standard identifier# |
10.2200/S00751ED2V01Y201701SWE004 |