2012 ModelDrivenSoftwareEngineeringi
- (Brambilla et al., 2012) ⇒ Marco Brambilla, Jordi Cabot, and Manuel Wimmer. (2012). “Model-Driven Software Engineering in Practice.” Morgan & Claypool Publishers. ISBN:1608458822, 9781608458820 doi:10.2200/S00441ED1V01Y201208SWE001
Subject Headings: Model-Driven Software Engineering, Software Modeling Language.
Notes
Cited By
- http://scholar.google.com/scholar?q=%222012%22+Model-Driven+Software+Engineering+in+Practice
- http://dl.acm.org/citation.cfm?id=2432361&preflayout=flat#citedby
Quotes
Abstract
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. The book is organized into two main parts. The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The book is targeted to a diverse set of readers, spanning: professionals, CTOs, CIOs, and team managers that need to have a bird's eye vision on the matter, so as to take the appropriate decisions when it comes to choosing the best development techniques for their company or team; software analysts, developers, or designers that expect to use MDSE for improving everyday work productivity, either by applying the basic modeling techniques and notations or by defining new domain-specific modeling languages and applying end-to-end MDSE practices in the software factory; and academic teachers and students to address undergrad and postgrad courses on MDSE. In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com/, including the examples presented in the book.
Table of Contents
PART 1: MDSE Foundations
1 Introduction to MDSE 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 MiddleWay 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 (Domain Specific Languages) 6.5.1 Principles of DSLs 6.5.2 Some Examples of DSLs 6.6 Defining Modeling Constraints (OCL)
PART 2: MDSE Technologies
7 Developing yourOwn 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-ModelTransformations 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-TextTransformations 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
References
;
Author | volume | Date Value | title | type | journal | titleUrl | doi | note | year | |
---|---|---|---|---|---|---|---|---|---|---|
2012 ModelDrivenSoftwareEngineeringi | Marco Brambilla Jordi Cabot Manuel Wimmer | Model-Driven Software Engineering in Practice | 10.2200/S00441ED1V01Y201208SWE001 | 2012 |