logo资料库

Model-Driven Software Engineering in Practice.pdf

第1页 / 共184页
第2页 / 共184页
第3页 / 共184页
第4页 / 共184页
第5页 / 共184页
第6页 / 共184页
第7页 / 共184页
第8页 / 共184页
资料共184页,剩余部分请下载后查看
Foreword
Acknowledgments
Introduction
Purpose and Use of Models
Modeling for Software Development
How to Read this Book
MDSE Principles
MDSE Basics
Lost in Acronyms: The MD* Jungle
Overview of the MDSE Methodology
Overall Vision
Target of MDSE: Domains, Platforms, Technical Spaces, and Scenarios
Modeling Languages
Metamodeling
Transformations
Model Classification
MDSE Adoption in Industry
Tool Support
Drawing Tools vs. Modeling Tools
Model-Based vs. Programming-Based MDSE Tools
Eclipse and EMF
Criticisms of MDSE
MDSE Use Cases
Automating Software Development
Code Generation
Model Interpretation
Combining Code Generation and Model Interpretation
System Interoperability
Reverse Engineering
Model-Driven Architecture (MDA)
MDA Definitions and Assumptions
The Modeling Levels: CIM, PIM, PSM
Mappings
General-Purpose and Domain-Specific Languages in MDA
Architecture-Driven Modernization
Integration of MDSE in your Development Process
Introducing MDSE in your Software Development Process
Pains and Gains of Software Modeling
Socio-Technical Congruence of the Development Process
Traditional Development Processes and MDSE
Agile and MDSE
Domain-Driven Design and MDSE
Test-Driven Development and MDSE
Model-Driven Testing
Test-Driven Modeling
Modeling Languages at a Glance
Anatomy of Modeling Languages
General-Purpose vs. Domain-Specific Modeling Languages
General-Purpose Modeling: The Case of UML
Design Practices
Structure Diagrams (or Static Diagrams)
Behavior Diagrams (or Dynamic Diagrams)
UML Tools
Criticisms and Evolution of UML
UML Extensibility: The Middle Way Between GPL and DSL
Stereotypes
Predicates
Tagged Values
UML Profiling
Overview on DSLs
Principles of DSLs
Some Examples of DSLs
Defining Modeling Constraints (OCL)
Developing your Own Modeling Language
Metamodel-Centric Language Design
Abstract Syntax
Concrete Syntax
Language Ingredients at a Glance
Example DSML: sWML
Abstract Syntax Development
Metamodel Development Process
Metamodeling in Eclipse
Concrete Syntax Development
Graphical Concrete Syntax (GCS)
Textual Concrete Syntax (TCS)
Model-to-Model Transformations
Model Transformations and their Classification
Exogenous, Out-Place Transformations
Endogenous, In-Place Transformations
Mastering Model Transformations
Divide and Conquer: Model Transformation Chains
HOT: Everything is a Model, Even Transformations!
Beyond Batch: Incremental and Lazy Transformations
Bi-Directional Model Transformations
Model-to-Text Transformations
Basics of Model-Driven Code Generation
Code Generation Through Programming Languages
Code Generation Through M2T Transformation Languages
Benefits of M2T Transformation Languages
Template-Based Transformation Languages: an Overview
Acceleo: An Implementation of the M2T Transformation Standard
Mastering Code Generation
Excursus: Code Generation Through M2M Transformations and TCS
Managing Models
Model Interchange
Model Persistence
Model Comparison
Model Versioning
Model Co-Evolution
Global Model Management
Model Quality
Verifying Models
Testing and Validating Models
Collaborative Modeling
Summary
Bibliography
Authors' Biographies
Series ISSN: TBD SYNTHESIS LECTURES ON SOFTWARE ENGINEERING Model-Driven Software Engineering in Practice Series Editor: TBD, Affiliation Marco Brambilla, Politecnico di Milano, Jordi Cabot, École des Mines de Nantes Manuel Wimmer, Vienna Univsity of Technology This book discusses how model-based approaches can improve the daily practice of software profes- sionals. 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 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. About SYNTHESIs This volume is a printed version of a work that appears in the Synthesis Digital Library of Engineering and Computer Science. Synthesis Lectures provide concise, original presentations of important research and development topics, published quickly, in digital and print formats. For more information visit www.morganclaypool.com & Morgan Claypool Publishers w w w . m o r g a n c l a y p o o l . c o m ISBN: 978-1-60845-882-0 90000 9 781608 458820 B R A M B I L L A • C A B O T • I W M M E R   M O D E L - D R I V E N S O F T W A R E E N G I N E E R I N G I N P R A C T I C E M O R G A N & C L A Y P O O L & CM& Morgan Claypool Publishers  Model-Driven Software Engineering in Practice Marco Brambilla Jordi Cabot Manuel  Wimmer SYNTHESIS LECTURES ON SOFTWARE ENGINEERING TBD, Series Editor
Model-Driven Software Engineering in Practice
Synthesis Lectures on Software Engineering Model-Driven Software Engineering in Practice Marco Brambilla, Jordi Cabot, and Manuel Wimmer 2012
Copyright © 2012 by Morgan & Claypool All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means—electronic, mechanical, photocopy, recording, or any other except for brief quotations in printed reviews, without the prior permission of the publisher. Model-Driven Software Engineering in Practice Marco Brambilla, Jordi Cabot, and Manuel Wimmer www.morganclaypool.com ISBN: 9781608458820 ISBN: 9781608458837 paperback ebook DOI 10.2200/S00441ED1V01Y201208SWE001 A Publication in the Morgan & Claypool Publishers series SYNTHESIS LECTURES ON SOFTWARE ENGINEERING Lecture #1 Series ISSN Synthesis Lectures on Software Engineering ISSN pending.
Model-Driven Software Engineering in Practice Marco Brambilla Politecnico di Milano Jordi Cabot École des Mines de Nantes Manuel Wimmer Vienna University of Technology SYNTHESIS LECTURES ON SOFTWARE ENGINEERING #1 CM& Morgan & cLaypool publishers
ABSTRACT This book discusses how model-based approaches can improve the daily practice of software profes- sionals. 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. KEYWORDS modeling, software engineering, UML, domain-specific language, model-driven en- gineering, code generation, reverse engineering, model transformation, MDD, MDA, MDE, MDSE, OMG, DSL, EMF, Eclipse
分享到:
收藏