Beyond our own Model-Driven Software Engineering in Practice book, you may find the following books also interesting to get started in the world of model-driven engineering (including approaches for code generation, model execution and so on).
MDA Explained: The Model Driven Architecture: Practice and Promise by A. Kleppe, J. Warmer and W. Bast
Ideal for getting to know the basic concepts of MDA. Once you finish it, move to one of the following ones to realize the challenges you will need to face when applying MDA for real.
Executable UML: A Foundation for Model-Driven Architecture by S. Mellor and M. Balcer
This book describes Executable UML, a subset of UML focused on the definition of UML models that can be directly executed or translated to the final implementation technology. To do so, all UML elements that are ambiguous or irrelevant from a code-generation point of view are forbidden. In fact, Executable UML basically consists of a limited class diagram, state machines and action semantics (a pseudo-code to specify the behavior of the operations attached to the classes in the class diagram). This method has been successfully used in the embedded systems domain but, in my opinion, falls short when it comes to deal with data-intensive applications.
Nevertheless, the book is very useful as an example of a possible model-driven development process that achieves a 100% code-generation (for the kinds of systems that can be modeled with this sublanguage of course).
Models to Code: With No Mysterious Gaps by L. Starr, A. Mangogna and S. Mellor
A fresh look at the world of executable UML. The goal of the book is to show, in great detail, how exactly to get from executable, platform-independent requirements models to efficient production code. No more hand waving. Read this great interview with its main author.
Designing Data-Intensive Web Applications by S. Ceri, P. Fraternali, A. Bongio, and M. Brambilla
An example of a model-driven development process that it is not based on the UML language. The book introduces WebML, a language for specifying and generating data-intensive web applications. WebML consists of three main components: the data model (similar to a UML class diagram), the navigation model (to describe the web pages, the data to show in them and the links among them) and the presentation model (to describe the presentation aspects of the pages). Useful to have a different view on MDD.
Recent Comments