Model-Driven Software Development: Technology, Engineering, Management
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 about model-driven software development.
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.
Review By: Vivek Vaishampayan
09/24/2007
This book introduces the theoretical framework for model-driven software development (MDSD) and its basic concepts and terminology. In principle, model-driven architecture (MDA) has a similar approach but the details differ. This book mainly shows how MDSD is better in today’s agile software development process. The authors present a very broad perspective of MDSD covering a wide range of approaches that go beyond MDA, including software product line, domain-specific languages, software factories, and aspect-oriented and generative programming.
This book advocates that MDSD is about using domain-specific languages to create models that express application structure or behavior in an efficient and domain-specific way. It shows how these models can be subsequently transformed into executable code using a sequence of model transformations.
It provides excellent hands-on, practical help for specific MDSD-related issues, such as code generation, versioning, testing, choosing tools, and meta-modeling with UML and MOF (Meta Object Facility). Organizational, process-related, and economic issues also are addressed. A number of case studies from various domains supplement the more detailed parts of MDSD.
MDSD is a heavyweight development process. However, it will provide solid benefits to all—including but not limited to software architects, developers, managers, and project leaders—in creating entire product lines and software systems. This book provides a great relief for those who are challenged with the task of implementing another heavyweight process.
This book reports on best practices that lend themselves to being used in agile processes and for the construction of customized development processes. I strongly recommend this book to all those who are looking to adopt a practical process in their software development and who believe that models aren't a tool to generate good-looking documentation, but rather are equal to code, as their implementation is automated.