Not very instructive on the specifics of creating a good model
This book does a good job of giving the reader an idea of the potential of modeling, but it reads like the US tax code. After a while it is numbing. There must be a better way to teach these concepts to humans.
Comprehensive and well-written
Having worked for an organization that has implemented a model-driven architecture technology approach to create highly robust software applications I can attest to the practical value of translatable models and the information and techniques in this book. I have always been a fan of the rigor and completeness of the Shlaer-Mellor methodology and this book distils this rigor into a profile of UML that hopefully will inspire a wider audience to look at the reality of creating executable and translatable models.
I found the book extremely well written and very complete in its treatment of every aspect of the subject from basic UML ideas through to model compilers. Unlike many technical texts I found absolutely no fluff in this book - each sentence and section has been carefully worded to be clear, consistent and unambiguous - a breath of fresh air for a pedant like myself.
I have used this book (along with Leon Starr's "Executable UML: How to Build Class Models") as a reference for my course development work on executable UML and found it invaluable. The table of contents and index are complete and well put together - something that I feel is crucial in any reference text.
I highly recommend this book for anyone using UML for software development who wants to explore this new technology of building executable and translatable models - and have it explained clearly and comprehensively.
Author correction
The review from "A reader" is erroneous. There is no review from "Leon Brooks," so it is unlikely there is any business relationship with a non-existent person.I imagine "A reader" meant Leon *Starr* who runs an entirely separate business from those run by either of the authors. Sure, we talk and refer business each other's way, but that is to be expected. Please delete "A reader"'s review.
(If you know Leon, you'd know he says what he really thinks, even if--especially?--it's bad!)
Good ideas bear up well over time.
Two events at the Object-Oriented Systems, Languages, and Applications Conference of 1996 were memorable for me. The first was the opening address given by one of the more insightful architects/designers of the 20th century, Christopher Alexander. And the second was a debate between Stephen Mellor (one of the authors of this book) and Grady Booch on the topic "Translation: Myth or Reality?". Six years later, with the addition of Action Semantacs to UML, the Model Driven Architecture initiative of the Object Management Group, and the publication of this book, it appears that Mr. Mellor is as persistent in his position that executable (and hence translatable) models are indeed a reality, as Mr. Alexander was that the resonance between the structure of a solution and the corresponding problem is a measure of the solution's quality. Good ideas bear up well over time.Mr. Mellor, and this book, are not for the faint hearted. It is his position that building software systems should be more about engineering a solution than artfully handcrafting one, and that to do this, one needs a disciplined process and a rigorous and precise engineering tool: Executable UML. If you agree with this tenet, and accept its implied challenge--or just want to know where they will lead you--this is a book for you.
In this book, Mellor and Balcer present a very lean and agile profile of UML and define the underlying execution semantics that enable it to be used as a valuable engineering tool for analyzing, designing, and implementing your systems. They also prescribe an engineering process to follow when modeling a software system, and thoughtfully walk the reader through this process and the various UML models with numerous examples and real-world experiences. If you use UML to model software, and aspire to engineer that software in the process, this book will give you a lot to think about and add significantly to your engineering tool chest.
A UML profile for serious system development
If you have ever diligently tried to implement a software system using a graphical modeling technique such as UML, I suspect your first attempts,like mine, were less than satisfying. It probably went something like this. Starting with some shiny new UML tool you start drawing diagrams. After a while, things seem "squishy". It's hard to know exactly where to stop modeling. Some things have a clear correspondence to the implementation that you know you have to get to, but many, many other issues crop up that you decide you have to defer to the details of the implementation. At some point in time you convince yourself that you understand the problem very well and then just start coding the implementation. It can be a bit like the Twilight Zone. In the end you wonder just what all those diagrams, which are probably out of date with respect to the implementation, were for.Fortunately, Mellor and Balcer have given us some real help here. This book is a comprehensive presentation of how to give UML executable semantics. I feel that the emphasis on execution semantics is key. When you write code, you are able to execute it in your head and verify that you think it's correct. You may still make mistakes and introduce bugs, but the process
is concrete. The same definiteness needs to be there when you are modeling. If the model is to be truly a more abstract representative of the system you are designing then you must be able the "execute" the model and predict how the system will behave in its ultimate implementation. And, of course, if the model is that definite then it should be possible to derive automatically the implementation from the model. All of this and much more is discussed in detail in this book. If you struggle, like I do, to deal with your systems problems at a higher
level of abstraction, this is a book you need to read.