Achieve Breakthrough Productivity and Quality with MDD and Eclipse-Based DSLs Β Domain-specific languages (DSLs) and model-driven development (MDD) offer software engineers powerful new ways to improve productivity, enhance quality, and insulate systems from rapid technological change. Now, thereβ
Eclipse modeling project: a domain-specific language (DSL) toolkit
β Scribed by Gronback, Richard C
- Publisher
- Addison-Wesley Professional
- Year
- 2009
- Tongue
- English
- Leaves
- 737
- Series
- Eclipse Series
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
Achieve Breakthrough Productivity and Quality with MDD and Eclipse-Based DSLsDomain-specific languages (DSLs) and model-driven development (MDD) offer software engineers powerful new ways to improve productivity, enhance quality, and insulate systems from rapid technological change. Now, there's a pragmatic, start-to-finish guide to creating DSLs and using MDD techniques with the powerful open source Eclipse platform. InEclipse Modeling Project, Richard C. Gronback illuminates both the principles and techniques software professionals need to master, offering insights that will be invaluable to developers working with any tool or platform. As coleader of the Eclipse Modeling Project, Gronback is singularly well-positioned to demonstrate DSLs and MDD at work in Eclipse. Gronback systematically introduces each of the Eclipse technologies that can be used in DSL and MDD development. Throughout, he introduces key concepts and technologies in the context of a complete worked example and presents new best practices and never-before published techniques. He also covers Eclipse projects discussed in no other book, including Query/View/Transformation (QVT) and the Graphical Modeling Framework (GMF)-a project the author personally leads.Eclipse Modeling Projectgives software practitioners all the knowledge they need to explore the remarkable potential of DSLs and MDD-and includes coverage of
Why a model-based approach enables the rapid customization of high-quality solutions within the product line paradigm How the Eclipse Modeling Project's capabilities can be used to efficiently create new DSLs Powerful techniques for developing DSL abstract syntax, graphical notation, and textual syntax How to build Model-to-Model (M2M) and Model-to-Text (M2T) transformations-including a powerful new M2M implementation of the Object Management Group's QVT Operational Mapping Language (OML) Efficiently packaging and deploying DSLs with Eclipse Complete reference sections for the Graphical Editing Framework (GEF), GMF runtime and tooling, QVT OML, Xpand, and more Foreword xix Preface xxi Acknowledgments xxiii About the Author xxvPart I: Introduction1 Chapter 1: Introduction 3 Chapter 2: Modeling Project as a DSL Toolkit 17Part II: Developing Domain-Specific Languages27 Chapter 3: Developing a DSL Abstract Syntax 29 Chapter 4: Developing a DSL Graphical Notation 55 Chapter 5: Developing a DSL Textual Syntax 227 Chapter 6: Developing Model-to-Model Transformations 231 Chapter 7: Developing Model-to-Text Transformations 277 Chapter 8: DSL Packaging and Deployment 303Part III: Reference315 Chapter 9: Graphical Editing Framework 317 Chapter 10: Graphical Modeling Framework Runtime 353 Chapter 11: Graphical Modeling Framework Tooling 503 Chapter 12: Graphical Modeling Framework FAQs 545 Chapter 13: Query/View/Transformation Operational Mapping Language 549 Chapter 14: Xpand Template Language 605Part IV: Appendixes651 Appendix A: Graphical Modeling Framework Key Bindings 653 Appendix B: Model-Driven Architecture at Eclipse 661 References 671
β¦ Table of Contents
Contents......Page 8
Foreword......Page 20
Preface......Page 22
Acknowledgments......Page 24
About the Author......Page 26
Part I: Introduction......Page 28
1.1 About Modeling......Page 30
1.2 Domain-Specific Languages......Page 32
1.4 Software Product Lines and Factories......Page 34
1.5 The Eclipse Modeling Project......Page 35
1.6 Summary......Page 43
Chapter 2 Modeling Project as a DSL Toolkit......Page 44
2.2 The Sample Projects......Page 47
2.3 Summary......Page 53
Part II: Developing Domain-Specific Languages......Page 54
3.1 DSL Considerations......Page 56
3.2 Eclipse Modeling Framework......Page 58
3.3 Developing the Mindmap Domain Model......Page 66
3.4 Developing the Requirements Domain Model......Page 74
3.5 Developing the Scenario Domain Model......Page 77
3.6 Developing the Business Domain Model......Page 78
3.7 Summary......Page 81
4.1 Design Considerations......Page 82
4.2 Graphical Modeling Framework......Page 86
4.3 Developing the Mindmap Diagram......Page 94
4.4 Developing a Requirements Diagram......Page 131
4.5 Developing the Scenario Diagram......Page 172
4.6 Developing the Color Modeling Diagram......Page 208
4.7 Summary......Page 252
Chapter 5 Developing a DSL Textual Syntax......Page 254
5.1 Xtext......Page 255
5.3 Summary......Page 256
6.1 Transformation Techniques......Page 258
6.2 Model Refactoring......Page 259
6.3 Model Migration......Page 260
6.4 Model Merge......Page 264
6.5 M2M QVT Operational Mapping Language......Page 265
6.6 Transforming a Mindmap to Requirements......Page 271
6.7 Transforming a Mindmap to XHTML......Page 278
6.8 Transforming a Scenario to a Test Case......Page 285
6.9 Transforming a Business Model to Java......Page 291
6.10 Summary......Page 303
7.1 M2T Project......Page 304
7.2 Generating CSV Files......Page 308
7.3 Generating Java......Page 309
7.4 Generating HTML......Page 324
7.5 Summary......Page 329
8.1 Deployment Preparation......Page 330
8.2 Defining a Product......Page 339
8.3 Summary......Page 340
Part III: Reference......Page 342
Chapter 9 Graphical Editing Framework......Page 344
9.1 Draw2d......Page 345
9.2 GEF......Page 351
9.3 Summary......Page 379
10.1 Overview......Page 380
10.2 Notation Model......Page 396
10.3 Extensibility Mechanisms......Page 399
10.4 Services......Page 402
10.5 Additional Extension-Points......Page 470
10.6 Element Creation......Page 486
10.7 Command Infrastructure......Page 489
10.8 Developing a Diagram......Page 493
10.9 Extending Diagrams......Page 513
10.10 Beyond GEF and Draw2d......Page 527
10.11 Summary......Page 529
11.1 Graphical Definition Model......Page 530
11.2 Tooling Definition Model......Page 545
11.3 Mapping Model......Page 546
11.4 Generator Model......Page 560
11.5 Summary......Page 570
12.1 General FAQs......Page 572
12.2 Diagramming FAQs......Page 573
12.3 Tooling FAQs......Page 574
12.4 Summary......Page 575
Chapter 13 Query/View/Transformation Operational Mapping Language......Page 576
13.1 Transformation Declaration......Page 577
13.3 Mapping Operations......Page 583
13.4 Helper Operations......Page 589
13.5 Implementing Operations......Page 590
13.6 Library Operations......Page 604
13.7 Syntax Notes......Page 620
13.8 Simple UML to RDBMS Example......Page 623
13.9 Summary......Page 631
Chapter 14 Xpand Template Language......Page 632
14.1 Xpand Language......Page 633
14.2 Summary......Page 676
Part IV: Appendixes......Page 678
Appendix A: Graphical Modeling Framework Key Bindings......Page 680
Appendix B: Model-Driven Architecture at Eclipse......Page 688
Implemented Standards......Page 689
Working Relationship......Page 693
Future Outlook......Page 696
References......Page 698
A......Page 702
C......Page 703
D......Page 705
E......Page 708
F......Page 710
G......Page 711
I......Page 716
K......Page 717
M......Page 718
O......Page 721
P......Page 723
R......Page 725
S......Page 727
T......Page 730
U......Page 731
W......Page 732
X-Y-Z......Page 733
π SIMILAR VOLUMES
<span>This textbook describes the theory and the pragmatics of using and engineering high-level software languages β also known as modeling or domain-specific languages (DSLs) β for creating quality software. This includes methods, design patterns, guidelines, and testing practices for defining the
"[The authors] are pioneers. . . . Few in our industry have their breadth of knowledge and experience."βFrom the Foreword by Dave Thomas, Bedarra LabsDomain-Specific Modeling (DSM) is the latest approach to software development, promising to greatly increase the speed and ease of software creation.
Though I haven't really read the book, I did get to read a sample chapter (Chapter 1) that I could access using publisher's site. Though there were a few typos in the book (considering that it was beta access), it made for a very interesting read. Ayende uses the Boo programming language for this b
<DIV><p>A general-purpose language like C# is designed to handle all programming tasks. By contrast, the structure and syntax of a Domain-Specific Language are designed to match a particular applications area. A DSL is designed for readability and easy programming of repeating problems. Using the in
A general-purpose language like C# is designed to handle all programming tasks. By contrast, the structure and syntax of a Domain-Specific Language are designed to match a particular applications area. A DSL is designed for readability and easy programming of repeating problems. Using the innovative