Atnaujinkite slapukų nuostatas

Model-Driven Software Engineering in Practice 2nd Revised edition [Minkštas viršelis]

4.25/5 (22 ratings by Goodreads)
  • Formatas: Paperback / softback, 207 pages, aukštis x plotis: 235x191 mm, weight: 400 g
  • Serija: Synthesis Lectures on Software Engineering
  • Išleidimo metai: 30-Mar-2017
  • Leidėjas: Morgan and Claypool Life Sciences
  • ISBN-10: 1627057080
  • ISBN-13: 9781627057080
Kitos knygos pagal šią temą:
  • Formatas: Paperback / softback, 207 pages, aukštis x plotis: 235x191 mm, weight: 400 g
  • Serija: Synthesis Lectures on Software Engineering
  • Išleidimo metai: 30-Mar-2017
  • Leidėjas: Morgan and Claypool Life Sciences
  • ISBN-10: 1627057080
  • ISBN-13: 9781627057080
Kitos knygos pagal šią temą:
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 second edition of the book features:



a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content



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.
Foreword xi
Acknowledgments xv
1 Introduction
1(6)
1.1 Purpose and Use of Models
1(1)
1.2 Modeling for Software Development
2(1)
1.3 How to Read this Book
3(4)
2 MDSE Principles
7(18)
2.1 MDSE Basics
7(2)
2.2 Lost in Acronyms: The MD* Jungle
9(1)
2.3 Overview of the MDSE Methodology
10(9)
2.3.1 Overall Vision
10(1)
2.3.2 Domains, Platforms, and Technical Spaces
11(1)
2.3.3 Modeling Languages
12(3)
2.3.4 Metamodeling
15(2)
2.3.5 Transformations
17(2)
2.4 Tool Support
19(2)
2.4.1 Drawing Tools vs. Modeling Tools
19(1)
2.4.2 Model-based vs. Programming-based MDSE Tools
20(1)
2.4.3 Eclipse and EMF
21(1)
2.5 Adoption and Criticisms of MDSE
21(4)
3 MDSE Use Cases
25(18)
3.1 Automating Software Development
26(7)
3.1.1 Code Generation
28(3)
3.1.2 Model Interpretation
31(1)
3.1.3 Combining Code Generation and Model Interpretation
32(1)
3.2 System Interoperability
33(3)
3.3 Reverse Engineering
36(3)
3.4 Modeling the Organization
39(4)
3.4.1 Business Process Modeling
39(1)
3.4.2 Enterprise Architecture
40(3)
4 Model-driven Architecture (MDA)
43(10)
4.1 MDA Definitions and Assumptions
44(1)
4.2 The Modeling Levels: CIM, PIM, PSM
44(2)
4.3 Mappings
46(3)
4.4 General-purpose and Domain-specific Languages in MDA
49(1)
4.5 Architecture-driven Modernization (ADM)
50(3)
5 Integration of MDSE in your Development Process
53(10)
5.1 Introducing MDSE in your Software Development Process
53(2)
5.1.1 Pains and Gains of Software Modeling
54(1)
5.1.2 Socio-technical Congruence of the Development Process
54(1)
5.2 Traditional Development Processes and MDSE
55(1)
5.3 Agile and MDSE
55(2)
5.4 Domain-driven Design and MDSE
57(1)
5.5 Test-driven Development and MDSE
58(1)
5.5.1 Model-driven Testing
59(1)
5.5.2 Test-driven Modeling
59(1)
5.6 Software Product Lines and MDSE
59(4)
6 Modeling Languages at a Glance
63(22)
6.1 Anatomy of Modeling Languages
63(1)
6.2 Multi-view Modeling and Language Extensibility
64(1)
6.3 General-purpose vs. Domain-specific Modeling Languages
65(1)
6.4 General-purpose Modeling: The Case of UML
66(8)
6.4.1 Design Practices
68(1)
6.4.2 Structure Diagrams (or Static Diagrams)
68(2)
6.4.3 Behavior Diagrams (or Dynamic Diagrams)
70(4)
6.4.4 UML Tools
74(1)
6.4.5 Criticisms and Evolution of UML
74(1)
6.5 UML Extensibility: The Middle Way Between GPL and DSL
74(3)
6.5.1 Stereotypes
75(1)
6.5.2 Predicates
75(1)
6.5.3 Tagged Values
75(1)
6.5.4 UML Profiling
76(1)
6.6 Overview on DSLs
77(2)
6.6.1 Principles of DSLs
77(2)
6.6.2 Some Examples of DSLs
79(1)
6.7 Defining Modeling Constraints (OCL)
79(6)
7 Developing your Own Modeling Language
85(38)
7.1 Metamodel-centric Language Design
85(2)
7.2 Example DSML: sWML
87(2)
7.3 Abstract Syntax Development
89(13)
7.3.1 Metamodel Development Process
91(9)
7.3.2 Metamodeling in Eclipse
100(2)
7.4 Concrete Syntax Development
102(12)
7.4.1 Graphical Concrete Syntax (GCS)
103(5)
7.4.2 Textual Concrete Syntax (TCS)
108(6)
7.5 A Real-world Example: IFML
114(9)
7.5.1 Requirements
115(1)
7.5.2 Fulfilling the Requirements in IFML
115(1)
7.5.3 Metamodeling Principles
116(2)
7.5.4 IFML Metamodel
118(3)
7.5.5 IFML Concrete Syntax
121(2)
8 Model-to-Model Transformations
123(18)
8.1 Model Transformations and their Classification
123(2)
8.2 Exogenous, Out-place Transformations
125(7)
8.3 Endogenous, In-place Transformations
132(5)
8.4 Mastering Model Transformations
137(4)
8.4.1 Divide and Conquer: Model Transformation Chains
137(1)
8.4.2 HOT: Everything is a Model, Even Transformations!
138(1)
8.4.3 Beyond Batch: Incremental and Lazy Transformations
138(1)
8.4.4 Bi-directional Model Transformations
139(2)
9 Model-to-Text Transformations
141(16)
9.1 Basics of Model-driven Code Generation
141(2)
9.2 Code Generation Through Programming Languages
143(4)
9.3 Code Generation Through M2T Transformation Languages
147(5)
9.3.1 Benefits of M2T Transformation Languages
147(2)
9.3.2 Template-based Transformation Languages: An Overview
149(1)
9.3.3 Acceleo: An Implementation of the M2T Transformation Standard
150(2)
9.4 Mastering Code Generation
152(2)
9.5 Excursus: Code Generation through M2M Transformations and TCS
154(3)
10 Managing Models
157(18)
10.1 Model Interchange
157(3)
10.2 Model Persistence
160(1)
10.3 Model Comparison
161(2)
10.4 Model Versioning
163(2)
10.5 Model Co-evolution
165(2)
10.6 Global Model Management
167(2)
10.7 Model Quality
169(3)
10.7.1 Verifying Models
170(1)
10.7.2 Testing and Validating Models
171(1)
10.7.3 Reviewing Models
171(1)
10.8 Collaborative Modeling
172(3)
11 Summary
175(2)
Bibliography 177(8)
Authors' Biographies 185(2)
Index 187