Cover image for Model-driven software development : technology, engineering, management
Title:
Model-driven software development : technology, engineering, management
Personal Author:
Publication Information:
Chichester : John Wiley, 2006
ISBN:
9780470025703
Added Author:

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010127810 QA76.76.D47 S72 2006 Open Access Book Book
Searching...
Searching...
30000010127811 QA76.76.D47 S72 2006 Open Access Book Book
Searching...

On Order

Summary

Summary

Model-Driven Software Development (MDSD) is currently a highly regarded development paradigm among developers and researchers. With the advent of OMG's MDA and Microsoft's Software Factories, the MDSD approach has moved to the centre of the programmer's attention, becoming the focus of conferences such as OOPSLA, JAOO and OOP.

MDSD is about using domain-specific languages to create models that express application structure or behaviour in an efficient and domain-specific way. These models are subsequently transformed into executable code by a sequence of model transformations.

This practical guide for software architects and developers is peppered with practical examples and extensive case studies. International experts deliver:
* A comprehensive overview of MDSD and how it relates to industry standards such as MDA and Software Factories.
* Technical details on meta modeling, DSL construction, model-to-model and model-to-code transformations, and software architecture.
* Invaluable insight into the software development process, plus engineering issues such as versioning, testing and product line engineering.
* Essential management knowledge covering economic and organizational topics, from a global perspective.

Get started and benefit from some practical support along the way!


Author Notes

Thomas Stahl is Chief Architect at b+m Informatik AG. Thomas' focus and expertise is in Model-Driven Software Development, of which he has extensive practical experience
Markus Volter is an independent consultant for software technology and engineering


Table of Contents

Part I Introductionp. 1
1 Introductionp. 3
1.1 The Subject of the Bookp. 3
1.2 Target Audiencep. 4
1.3 The Goals of the Bookp. 5
1.4 The Scope of the Bookp. 6
1.5 The Structure of the Book and Reader Guidelinesp. 6
1.6 The Accompanying Web sitep. 8
1.7 About the Authorsp. 8
1.8 About the Coverp. 8
1.9 Acknowledgmentsp. 9
2 MDSD - Basic Ideas and Terminologyp. 11
2.1 The Challengep. 11
2.2 The Goals of MDSDp. 13
2.3 The MDSD Approachp. 14
2.4 Basic Terminologyp. 16
2.5 Architecture-Centric MDSDp. 21
3 Case Study: A Typical Web Applicationp. 29
3.1 Application Developmentp. 29
3.2 Architecture Developmentp. 40
3.3 Conclusion and Outlookp. 54
4 Concept Formationp. 55
4.1 Common MDSD Concepts and Terminologyp. 55
4.2 Model-Driven Architecturep. 63
4.3 Architecture-Centric MDSDp. 64
4.4 Generative Programmingp. 65
4.5 Software Factoriesp. 68
4.6 Model-Integrated Computingp. 70
4.7 Language-Oriented Programmingp. 70
4.8 Domain-Specific Modelingp. 71
5 Classificationp. 73
5.1 MDSD vs. CASE, 4GL and Wizardsp. 73
5.2 MDSD vs. Roundtrip Engineeringp. 74
5.3 MDSD and Patternsp. 75
5.4 MDSD and Domain-Driven Designp. 77
5.5 MDSD, Data-Driven Development and Interpretersp. 78
5.6 MDSD and Agile Software Developmentp. 78
Part II Domain Architecturesp. 83
6 Metamodelingp. 85
6.1 What Is Metamodeling?p. 85
6.2 Metalevels vs. Level of Abstractionp. 88
6.3 MOF and UMLp. 88
6.4 Extending UMLp. 89
6.5 UML Profilesp. 93
6.6 Metamodeling and OCLp. 96
6.7 Metamodeling: Example 1p. 98
6.8 Metamodeling: Example 2p. 99
6.9 Tool-supported Model Validationp. 102
6.10 Metamodeling and Behaviorp. 106
6.11 A More Complex Examplep. 107
6.12 Pitfalls in Metamodelingp. 113
7 MDSD-Capable Target Architecturesp. 119
7.1 Software Architecture in the Context of MDSDp. 119
7.2 What Is a Sound Architecture?p. 120
7.3 How Do You Arrive at a Sound Architecture?p. 121
7.4 Building Blocks for Software Architecturep. 122
7.5 Architecture Reference Modelp. 124
7.6 Balancing the MDSD Platformp. 125
7.7 Architecture Conformancep. 127
7.8 MDSD and CBDp. 129
7.9 SOA, BPM and MDSDp. 137
8 Building Domain Architecturesp. 143
8.1 DSL constructionp. 143
8.2 General Transformation Architecturep. 150
8.3 Technical Aspects of Building Transformationsp. 159
8.4 The Use of Interpretersp. 173
9 Code Generation Techniquesp. 181
9.1 Code Generation - Why?p. 181
9.2 Categorizationp. 183
9.3 Generation Techniquesp. 186
10 Model Transformations with QVTp. 203
10.1 Historyp. 203
10.2 M2M language requirementsp. 204
10.3 Overall Architecturep. 207
10.4 An Example Transformationp. 209
10.5 The OMG Standardization Process and Tool Availabilityp. 220
10.6 Assessmentp. 221
11 MDSD Tools: Roles, Architecture, Selection Criteria, and Pointersp. 223
11.1 The Role of Tools in the Development Processp. 223
11.2 Tool Architecture and Selection Criteriap. 227
11.3 Pointersp. 230
12 The MDA Standardp. 239
12.1 Goalsp. 239
12.2 Core Conceptsp. 239
Part III Processes and Engineeringp. 251
13 MDSD Process Building Blocks and Best Practicesp. 253
13.1 Introductionp. 253
13.2 Separation between Application and Domain Architecture Developmentp. 253
13.3 Two-Track Iterative Developmentp. 262
13.4 Target Architecture Development Processp. 263
13.5 Product-Line Engineeringp. 271
14 Testingp. 279
14.1 Test Typesp. 279
14.2 Tests in Model-Driven Application Developmentp. 280
14.3 Testing the Domain Architecturep. 290
15 Versioningp. 293
15.1 What Is Versioned?p. 293
15.2 Projects and Dependenciesp. 293
15.3 The Structure of Application Projectsp. 294
15.4 Version Management and Build Process for Mixed Filesp. 295
15.5 Modeling in a Team and Versioning of Partial Modelsp. 297
16 Case Study: Embedded Component Infrastructuresp. 305
16.1 Overviewp. 305
16.2 Product-Line Engineeringp. 307
16.3 Modelingp. 315
16.4 Implementation of Componentsp. 321
16.5 Generator Adaptationp. 323
16.6 Code Generationp. 330
17 Case Study: An Enterprise Systemp. 341
17.1 Overviewp. 341
17.2 Phase 1: Elaborationp. 341
17.3 Phase 2: Iteratep. 344
17.4 Phase 3: Automatep. 345
17.5 Discussionp. 355
Part IV Managementp. 357
18 Decision Supportp. 359
18.1 Business Potentialp. 359
18.2 Automation and Reusep. 361
18.3 Qualityp. 365
18.4 Reusep. 367
18.5 Portability, Changeabilityp. 368
18.6 Investment and Possible Benefitsp. 369
18.7 Critical Questionsp. 374
18.8 Conclusionp. 378
18.9 Recommended Readingp. 378
19 Organizational Aspectsp. 379
19.1 Assignment of Rolesp. 379
19.2 Team Structurep. 383
19.3 Software Product Development Modelsp. 386
20 Adoption Strategies for MDSDp. 393
20.1 Prerequisitesp. 393
20.2 Getting Started - MDSD Pilotingp. 393
20.3 MDSD Adaptation of Existing Systemsp. 396
20.4 Classification of the Software Inventoryp. 397
20.5 Build, Buy, or Open Sourcep. 398
20.6 The Design of a Supply Chainp. 399
20.7 Incremental Evolution of Domain Architecturesp. 400
20.8 Risk Managementp. 400
A Model Transformation Codep. 405
A.1 Complete QVT Relations alma2db Examplep. 405
A.2 Complete QVT Operational Mappings alma2db Examplep. 411
Referencesp. 415
Indexp. 421