Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Buy Now $114.00
Standard view
Full view
of .
Look up keyword or section
Like this
1Activity

Table Of Contents

1.1 SEEKING A BETTER LEVEL OF ABSTRACTION
1.2 CODE-DRIVEN AND MODEL-DRIVEN DEVELOPMENT
1.3.1 UML Usage Scenario
1.3.2 DSM Usage Scenario
1.3.3 Comparing UML and DSM
1.4.1 Higher Levels of Abstraction
1.4.2 Automation with Generators
1.4.3 DSM Solution Evolves
1.5 WHEN TO USE DSM?
1.6 SUMMARY
2.1.1 Productivity Improvement in Development Time
2.1.2 Productivity Changes After Initial Introduction
2.1.3 Gains from Improved Productivity
2.2.1 Measuring Quality Improvements
2.2.2 Mapping to Requirements and Problem Domain
2.2.3 Testing with DSM
2.3.1 The Group of Potential Developers Becomes Larger
2.3.2 Less Training and Guidance Needed
2.4.1 Use an Existing DSM Solution?
2.4.2 When to Invest in Building a DSM Solution?
2.4.3 Ownership of Your DSM Solution
2.5 SUMMARY
3.1.1 Narrow Focus
3.1.2 High Level of Abstraction
3.1.3 Full Code Generation
3.1.4 Representations Other Than Text
3.1.5 Larger Number of Potential Users
3.2.1 What Does DSM Offer for Developers?
3.2.2 What DSM is Not
3.3.1 How Does DSM Differ from UML?
3.3.2 How Does DSM Differ from Executable UML?
3.3.3 How Does DSM Differ from MDA?
3.3.4 What If We Customize UML?
3.3.5 Other Domain-Specific Approaches
3.4.1 Rethinking the Tooling
3.4.2 DSM Tool Capabilities
3.5 SUMMARY
4.1.1 Dividing the Automation Work
4.1.2 Evolution Within the Architecture
4.1.3 Models in DSM Architecture
4.2.1 Fundamentals
4.2.2 Model of Computation
4.2.3 Integrating Languages for Modeling Multiple Aspects
4.2.4 Language Specification: A Metamodel
4.3.1 Model is a Partial Description and Code is Full?
4.3.2 Working with Models
4.3.3 Users of Models
4.4.1 Generator Principle
4.4.2 Quality of Generated Code
4.4.3 Different Usage of Generators
4.5.1 Target Environment
4.5.2 Framework Code and Generated Code
4.6.1 Organization and Roles
5.3.1 Modeling Concepts
5.3.2 Modeling Rules
5.3.3 Modeling Notation
5.4.1 Example Model
5.4.2 Use Scenarios
5.5.1 Generator Structure
5.5.2 Generator in Action
5.6 FRAMEWORK SUPPORT
5.7 MAIN RESULTS
5.8 SUMMARY
6.1 INTRODUCTION AND OBJECTIVES
6.2 DEVELOPMENT PROCESS
6.3.1 Modeling Concepts
6.3.2 Modeling Rules
6.3.3 Modeling Notation
6.4.1 Example Models
6.4.2 Use Scenarios
6.5.1 Generator Structure
6.5.2 Generator in Action
6.6 FRAMEWORK SUPPORT
6.7 MAIN RESULTS
6.8 SUMMARY
7.1.1 Target Environment and Platform
7.1.2 DSM Objectives
7.2.1 Before the Workshop and Day 1
7.2.2 Day 2: If at First You Don’t Succeed. .
7.2.3 Further Development
7.3.1 Modeling Concepts and Rules
7.3.2 Possible Improvements
7.3.3 Modeling Notation
7.4.1 Example Models
7.4.2 Use Scenarios
7.5 GENERATOR
7.6 MAIN RESULTS
7.7 SUMMARY
8.1 INTRODUCTION AND OBJECTIVES
8.2 DEVELOPMENT PROCESS
8.3.1 Modeling Concepts
8.3.2 Modeling Rules
8.3.3 Modeling Notation
8.4.1 Example Models
8.4.2 Use Scenarios
8.5.1 Generator Structure
8.5.2 Generator in Action
8.6 FRAMEWORK SUPPORT
8.7 MAIN RESULTS
8.8.1 Extending the Domain
8.8.2 C++ Generators
8.9 SUMMARY
9.1 INTRODUCTION AND OBJECTIVES
9.2 DEVELOPMENT PROCESS
9.3.1 Reusing Watch Applications in a Family of Watches
9.3.2 Watch Application Behavior
9.3.3 Watch Applications Manipulate Time
9.3.4 Time Display
9.3.5 Odds and Ends
9.3.6 Putting it all Together
9.3.7 Rules of Watch Applications
9.3.8 Notation for Watch Applications
9.4.1 Use Scenarios
9.4.2 Watch Application Metamodel
9.5.1 Java Generator for Watch Models
9.5.2 C Generator for Watch Models
9.6 THE DOMAIN FRAMEWORK
9.7 MAIN RESULTS
9.8 SUMMARY
10.1 INTRODUCTION AND OBJECTIVES
10.2.1 Where to Find Modeling Concepts
10.2.2 Useful Categories of Modeling Concept Sources
10.2.3 Choosing Computational Models
10.2.4 Defining Modeling Concepts
10.3.1 Metamodeling Process
10.3.2 Sample Metamodeling Task
10.4.1 Domain Rules
10.4.2 Modeling Rules
10.4.3 Rule Definition Process
10.5.1 Integration Approaches
10.5.2 Why Integrating Models with Model-to-Model
10.5.3 Reuse with Models
10.6.1 Selecting Notation and Representational Forms
10.6.2 Symbol Definition Guidelines
10.7 TESTING THE LANGUAGES
10.8.1 Adding New Concepts
10.8.2 Removing Modeling Concepts
10.9 SUMMARY
11.1 “HERE’S ONE I MADE EARLIER”
11.2.1 Programming Language Accessing Models Through an API
11.2.2 Model Visitors and Model-to-Model Transformations
11.2.3 Output Template
11.2.4 Crawler: Model Navigation and Output Streams
11.2.5 Generator Generators
11.3.1 Simple Text
11.3.2 Model Checking
11.3.3 Documentation
11.3.4 XML
11.3.5 Flow Machine
11.3.7 Integrating Handwritten Code
11.4.1 Autobuild
11.4.2 Generator per Modeling Language
11.4.3 Generator per File Type
11.4.4 Generator per Object Type
11.4.5 Parallel Generators per Programming Language
11.5.1 Creating and Testing Generators
11.5.2 Sharing and Maintaining Generators
11.5.3 Version Control of Generated Code
11.6 SUMMARY
12.1 REMOVING DUPLICATION FROM GENERATED CODE
12.2.1 Bypassing Bugs and Platform Evolution
12.2.2 Extending a Framework from One Platform to Many
12.3.1 Data Structures to be Instantiated
12.3.2 Integrating Code Specified by the Model
12.3.3 Customizable and Extensible Components
12.3.4 Inversion of Control
12.3.5 Engines Reading Models as Data
12.4 SUMMARY
13.1 CHOOSING AMONG POSSIBLE CANDIDATE DOMAINS
13.2 ORGANIZING FOR DSM
13.3.1 Preparation
13.3.2 During the Workshop
13.4.1 Danger: Pitfalls Ahead
13.4.2 First Things First: The Modeling Language
13.4.3 Example Models and DSM Use Scenarios
13.4.4 A Balancing Act: Generators and Domain Framework
13.5 PILOT PROJECT
13.6.1 Learning about Organizational Change
13.6.2 Polishing the DSM Solution
13.6.3 Introduction and Evolution Process
13.6.4 Learning Material and Training
13.7.1 Evolutionary Forces
13.7.2 The DSM Solution Team
13.7.3 The Rise and Fall of a Domain
13.8 SUMMARY
14.1 DIFFERENT APPROACHES TO BUILDING TOOL SUPPORT
14.2.5 TBK/ToolBuilder (Sunderland University/IPSYS/Lincoln)
14.3.1 Meta-Metamodel
14.3.2 Notation
14.3.3 Generators
14.3.4 Supporting the Metamodeler
14.3.5 Generic Modeling Tool Functionality
14.3.6 Tool Integration
14.4.1 MetaEdit+ (MetaCase), 1995–
14.4.2 GME (Vanderbilt University), 2000–
14.4.3 DSL Tools (Microsoft), 2006–
14.4.4 Eclipse Modeling Project (Eclipse), 2006–
14.5 SUMMARY
15.1.1 Copy by Value Versus Copy by Reference
15.1.2 Names and Copy by Reference
15.1.3 Copy by Reference in Models
15.1.4 Copy by Value in Models
15.2.1 Disjoint Files
15.2.2 Multiuser Repositories
15.2.3 Multiple Repositories
15.3.1 But How Do I Just Save My Work?
15.3.2 But How Do I Branch?
15.3.3 ButHowDoIMerge ParallelChanges MadetotheSameModel?
15.3.4 Where Do the Version Comments Go?
15.3.5 How Does It Work in Practice?
15.4 SUMMARY
16.1 NO SWEAT SHOPS—BUT NO FRITZ LANG’S METROPOLIS
16.2 THE ONWARD MARCH OF DSM
P. 1
Domain-Specific Modeling: Enabling Full Code Generation

Domain-Specific Modeling: Enabling Full Code Generation

Ratings: (0)|Views: 73|Likes:
Published by Wiley
"[The authors] are pioneers. . . . Few in our industry have their breadth of knowledge and experience."
—From the Foreword by Dave Thomas, Bedarra Labs

Domain-Specific Modeling (DSM) is the latest approach to software development, promising to greatly increase the speed and ease of software creation. Early adopters of DSM have been enjoying productivity increases of 500–1000% in production for over a decade. This book introduces DSM and offers examples from various fields to illustrate to experienced developers how DSM can improve software development in their teams.

Two authorities in the field explain what DSM is, why it works, and how to successfully create and use a DSM solution to improve productivity and quality. Divided into four parts, the book covers: background and motivation; fundamentals; in-depth examples; and creating DSM solutions. There is an emphasis throughout the book on practical guidelines for implementing DSM, including how to identify the necessary language constructs, how to generate full code from models, and how to provide tool support for a new DSM language. The example cases described in the book are available the book's Website, www.dsmbook.com, along with, an evaluation copy of the MetaEdit+ tool (for Windows, Mac OS X, and Linux), which allows readers to examine and try out the modeling languages and code generators.

Domain-Specific Modeling is an essential reference for lead developers, software engineers, architects, methodologists, and technical managers who want to learn how to create a DSM solution and successfully put it into practice.

"[The authors] are pioneers. . . . Few in our industry have their breadth of knowledge and experience."
—From the Foreword by Dave Thomas, Bedarra Labs

Domain-Specific Modeling (DSM) is the latest approach to software development, promising to greatly increase the speed and ease of software creation. Early adopters of DSM have been enjoying productivity increases of 500–1000% in production for over a decade. This book introduces DSM and offers examples from various fields to illustrate to experienced developers how DSM can improve software development in their teams.

Two authorities in the field explain what DSM is, why it works, and how to successfully create and use a DSM solution to improve productivity and quality. Divided into four parts, the book covers: background and motivation; fundamentals; in-depth examples; and creating DSM solutions. There is an emphasis throughout the book on practical guidelines for implementing DSM, including how to identify the necessary language constructs, how to generate full code from models, and how to provide tool support for a new DSM language. The example cases described in the book are available the book's Website, www.dsmbook.com, along with, an evaluation copy of the MetaEdit+ tool (for Windows, Mac OS X, and Linux), which allows readers to examine and try out the modeling languages and code generators.

Domain-Specific Modeling is an essential reference for lead developers, software engineers, architects, methodologists, and technical managers who want to learn how to create a DSM solution and successfully put it into practice.

More info:

Publish date: Apr 11, 2008
Added to Scribd: Jun 03, 2013
Copyright:Traditional Copyright: All rights reservedISBN:9780470249253
List Price: $114.00 Buy Now

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
This book can be read on up to 6 mobile devices.
Buy the full version from:Amazon
See more
See less

03/02/2015

445

9780470249253

$114.00

USD

You're Reading a Free Preview
Pages 9 to 107 are not shown in this preview.
You're Reading a Free Preview
Pages 121 to 305 are not shown in this preview.
You're Reading a Free Preview
Pages 314 to 375 are not shown in this preview.
You're Reading a Free Preview
Pages 384 to 445 are not shown in this preview.

You're Reading a Free Preview

Download
scribd