
Domain-Specific Modeling Enabling Full Code Generation
by Kelly, Steven; Tolvanen, Juha-Pekka-
Free Shipping On Orders Over $35
Your order must be $35 or more to qualify for free economy shipping. Marketplace items, eBooks and apparel do not qualify towards the $35 purchase minimum.
Buy New
Rent Textbook
Used Textbook
We're Sorry
Sold Out
eTextbook
We're Sorry
Not Available
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
Juha-Pekka Tolvanen, PhD, is the CEO of MetaCase. He has been involved in model-driven approaches, metamodeling, and DSM languages and tools since 1991. He has acted as a consultant worldwide on modeling language development and has written over sixty articles for software development magazines and conferences. Dr. Tolvanen started the OOPSLA workshops on DSM in 2001 and has been on the organizing committee since. As cofounder of the DSM Forum, he plays a leading role in the shift toward model-driven software development.
Table of Contents
Foreword | p. XI |
Preface | p. XIII |
Background and Motivation | p. 1 |
Introduction | p. 3 |
Seeking a Better Level of Abstraction | p. 3 |
Code-Driven and Model-Driven Development | p. 4 |
An Example: Modeling with a General-Purpose Language and a Domain-Specific Language | p. 7 |
What is DSM? | p. 15 |
When to Use DSM? | p. 18 |
Summary | p. 19 |
Business Value | p. 21 |
Productivity | p. 21 |
Quality | p. 27 |
Leverage Expertise | p. 31 |
The Economics of DSM | p. 34 |
Summary | p. 41 |
Fundamentals | p. 43 |
DSM Defined | p. 45 |
DSM Characteristics | p. 45 |
Implications of DSM for Users | p. 52 |
Difference from Other Modeling Approaches | p. 55 |
Tooling for DSM | p. 59 |
Summary | p. 61 |
Architecture of DSM | p. 63 |
Introduction | p. 63 |
Language | p. 68 |
Models | p. 77 |
Code Generator | p. 79 |
Domain Framework and Target Environment | p. 86 |
DSM Organization and Process | p. 88 |
Summary | p. 92 |
DSM Examples | p. 93 |
IP Telephony and Call Processing | p. 97 |
Introduction and Objectives | p. 97 |
Development Process | p. 100 |
Language for Modeling Call Processing Services | p. 101 |
Modeling IP Telephony Services | p. 111 |
Generator for XML | p. 112 |
Framework Support | p. 117 |
Main Results | p. 118 |
Summary | p. 118 |
Insurance Products | p. 120 |
Introduction and Objectives | p. 120 |
Development Process | p. 121 |
Language for Modeling Insurances | p. 123 |
Modeling Insurance Products | p. 131 |
Generator for Java | p. 132 |
Framework Support | p. 138 |
Main Results | p. 138 |
Summary | p. 139 |
Home Automation | p. 140 |
Introduction and Objectives | p. 140 |
Development Process | p. 142 |
Home Automation Modeling Language | p. 144 |
Home Automation Modeling Language in Use | p. 150 |
Generator | p. 153 |
Main Results | p. 157 |
Summary | p. 158 |
Mobile Phone Applications Using a Python Framework | p. 160 |
Introduction and Objectives | p. 160 |
Development Process | p. 163 |
Language for Application Modeling | p. 164 |
Modeling Phone Applications | p. 174 |
Generator for Python | p. 176 |
Framework Support | p. 184 |
Main Results | p. 185 |
Extending the Solution to Native S60 C++ | p. 185 |
Summary | p. 189 |
Digital Wristwatch | p. 191 |
Introduction and Objectives | p. 191 |
Development Process | p. 193 |
Modeling Language | p. 193 |
Models | p. 207 |
Code Generation for Watch Models | p. 212 |
The Domain Framework | p. 220 |
Main Results | p. 222 |
Summary | p. 224 |
Creating DSM Solutions | p. 225 |
DSM Language Definition | p. 227 |
Introduction and Objectives | p. 227 |
Identifying and Defining Modeling Concepts | p. 228 |
Formalizing Languages with Metamodeling | p. 247 |
Defining Language Rules | p. 250 |
Integrating Multiple Languages | p. 253 |
Notation for the Language | p. 257 |
Testing the Languages | p. 261 |
Maintaining the Languages | p. 264 |
Summary | p. 266 |
Generator Definition | p. 267 |
"Here's One I Made Earlier" | p. 268 |
Types of Generator Facilities | p. 270 |
Generator Output Patterns | p. 276 |
Generator Structure | p. 297 |
Process | p. 304 |
Summary | p. 308 |
Domain Framework | p. 311 |
Removing Duplication from Generated Code | p. 313 |
Hiding Platform Details | p. 315 |
Providing an Interface for the Generator | p. 317 |
Summary | p. 327 |
DSM Definition Process | p. 329 |
Choosing Among Possible Candidate Domains | p. 329 |
Organizing for DSM | p. 330 |
Proof of Concept | p. 335 |
Defining the DSM Solution | p. 339 |
Pilot Project | p. 345 |
DSM Deployment | p. 347 |
DSM as a Continuous Process in the Real World | p. 352 |
Summary | p. 356 |
Tools for DSM | p. 357 |
Different Approaches to Building Tool Support | p. 357 |
A Brief History of Tools | p. 359 |
What is Needed in a DSM Environment | p. 365 |
Current Tools | p. 390 |
Summary | p. 395 |
DSM in Use | p. 397 |
Model Reuse | p. 397 |
Model Sharing and Splitting | p. 400 |
Model Versioning | p. 404 |
Summary | p. 407 |
Conclusion | p. 408 |
No Sweat Shops-But no Fritz Lang's Metropolis Either | p. 409 |
The Onward March of DSM | p. 410 |
Metamodeling Language | p. 411 |
References | p. 415 |
Index | p. 423 |
Table of Contents provided by Ingram. All Rights Reserved. |
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.