Model-Driven Software Development: Technology, Engineering, Management

Thomas Stahl, Markus Voelter

  • 出版商: Wiley
  • 出版日期: 2006-07-01
  • 售價: $2,770
  • 貴賓價: 9.5$2,632
  • 語言: 英文
  • 頁數: 446
  • 裝訂: Paperback
  • ISBN: 0470025700
  • ISBN-13: 9780470025703
  • 已絕版




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!



Table of Contents

  • Part I Introduction.


    1.1 The Subject of the Book.

    1.2 Target Audience.

    1.3 The Goals of the Book.

    1.4 The Scope of the Book.

    1.5 The Structure of the Book and Reader Guidelines.

    1.6 The Accompanying Web site.

    1.7 About the Authors.

    1.8 About the Cover.

    1.9 Acknowledgments.

    2 MDSD – Basic Ideas and Terminology.

    2.1 The Challenge;.

    2.2 The Goals of MDSD.

    2.3 The MDSD Approach.

    2.4 Basic Terminology.

    2.5 Architecture-Centric MDSD.

    3 Case Study: A Typical Web Application.

    3.1 Application Development.

    3.2 Architecture Development.

    3.3 Conclusion and Outlook.

    4 Concept Formation.

    4.1 Common MDSD Concepts and Terminology.

    4.2 Model-Driven Architecture.

    4.3 Architecture-Centric MDSD.

    4.4 Generative Programming.

    4.5 Software Factories.

    4.6 Model-Integrated Computing.

    4.7 Language-Oriented Programming.

    4.8 Domain-Specific Modeling.

    5 Classification.

    5.1 MDSD vs. CASE, 4GL and Wizards.

    5.2 MDSD vs. Roundtrip Engineering.

    5.3 MDSD and Patterns.

    5.4 MDSD and Domain-Driven Design.

    5.5 MDSD, Data-Driven Development and Interpreters.

    5.6; MDSD and Agile Software Development.

    Part II Domain Architectures.

    6 Metamodeling.

    6.1 What Is Metamodeling?.

    6.2 Metalevels vs. Level of Abstraction.

    6.3 MOF and UML.

    6.4 Extending UML.

    6.5 UML Profiles.

    6.6 Metamodeling and OCL.

    6.7 Metamodeling: Example 1.

    6.8 Metamodeling: Example 2.

    6.9 Tool-supported Model Validation.

    6.10 Metamodeling and Behavior.

    6.11 A More Complex Example.

    6.12 Pitfalls in Metamodeling.

    7 MDSD-Capable Target Architectures.

    7.1 Software Architecture in the Context of MDSD.

    7.2 What Is a Sound Architecture?.

    7.3 How Do You Arrive at a Sound Architecture?.

    7.4 Building Blocks for Software Architecture.

    7.5 Architecture Reference Model.

    7.6 Balancing the MDSD Platform.

    7.7 Architecture Conformance.

    7.8 MDSD and CBD.

    7.9 SOA, BPM and MDSD.

    8 Building Domain Architectures.

    8.1; DSL construction.

    8.2 General Transformation Architecture.

    8.3 Technical Aspects of Building Transformations.

    8.4 The Use of Interpreters.

    9 Code Generation Techniques.

    9.1 Code Generation – Why?.

    9.2 Categorization.

    9.3 Generation Techniques.

    10 Model Transformation Techniques.

    10.1 History.

    10.2 M2M language requirements.

    10.3; Overall Architecture.

    10.4 An Example Transformation.

    10.5 The OMG Standardization Process and Tool Availability.

    10.6 Assessment.

    11 MDSD Tools: Roles, Architecture, Selection Criteria,
    and Pointers.

    11.1 The Role of Tools in the Development Process.

    11.2 Tool Architecture and Selection Criteria.

    11.3 Pointers.

    12 The MDA Standard.

    12.1 Goals.

    12.2 Core Concepts.

    Part III Processes and Engineering.

    13 MDSD Process Building Blocks and Best Practices.

    13.1 Introduction.

    13.2 Separation between Application and Domain Architecture

    13.3 Two-Track Iterative Development.

    13.4 Target Architecture Development Process.

    13.5 Product-Line Engineering.

    14 Testing.

    14.1 Test Types.

    14.2 Tests in Model-Driven Application Development.

    14.3 Testing the Domain Architecture.

    15 Versioning.

    15.1 What Is Versioned?.

    15.2 Projects and Dependencies.

    15.3 The Structure of Application Projects.

    15.4 Version Management and Build Process for Mixed Files.

    15.5 Modeling in a Team and Versioning of Partial Models.

    16 Case Study: Embedded Component Infrastructures.

    16.1 Overview.

    16.2 Product-Line Engineering.

    16.3 Modeling.

    16.4 Implementation of Components.

    16.5 Generator Adaptation.

    16.6 Code Generation.

    17 Case Study: An Enterprise System.

    17.1 Overview.

    17.2 Phase 1: Elaboration.

    17.3 Phase 2: Iterate.

    17.4 Phase 3: Automate.

    17.5 Discussion.

    Part IV Management.

    18 Decision Support.

    18.1 Business Potential.

    18.2 Automation and Reuse.

    18.3 Quality.

    18.4 Reuse.

    18.5 Portability, Changeability.

    18.6 Investment and Possible Benefits.

    18.7 Critical Questions.

    18.8 Conclusion.

    18.9 Recommended Reading.

    19 Organizational Aspects.

    19.1 Assignment of Roles.

    19.2 Team Structure.

    19.3 Software Product Development Models.

    20 Adoption Strategies for MDSD.

    20.1 Prerequisites.

    20.2 Getting Started – MDSD Piloting.

    20.3 MDSD Adaptation of Existing Systems.

    20.4 Classification of the Software Inventory.

    20.5 Build, Buy, or Open Source.

    20.6 The Design of a Supply Chain.

    20.7 Incremental Evolution of Domain Architectures.

    20.8 Risk Management.

    A Model Transformation Code.

    A.1; Complete QVT Relations alma2db Example.

    A.2 Complete QVT Operational Mappings alma2db Example.