MDA

List price: $39.99 (that's 24% off!)
Used price: $32.55
Buy one from zShops for: $30.38

Added value
Take your Software Engineering Skills to the next levelThis was my encounter with the Object Constraint Language, or OCL. I have been using UML for work for a number of years now, but I never gave OCL a second thought other than a "nice-to-have-conpcept-that-makes-your-life-harder-than-its-worth" type of technology. This book was an eye opener. I am really glad that I took the time to real this book.
The book has three major parts:
1)User manual
2)Reference Manual
3)Appendices
By looking at the TOC, one is not really impressed. User manual? Reference Manual? I thought I am going to be bored to no end while reading this book. The TOC does not do justice to the book. The author in chapter 1 introduces MDA and its benefits (Portability, Productivity, Cross-platform interoperability, and easier maintenance and documentation). The author then introduces the concept of Modeling Maturity Levels (MML), which is very similar to the CMM levels for Software Engineering. MML has five levels and is used as an indication of, "...what role models play in your software development process, and the direction you need to take to improve this process."
i)Level 0: No Specification. Add-hoc development
ii)Level 1: Textual. Specs written in one or more natural language documents
iii)Level 2: Text with Diagrams. Several high-level diagrams are added to explain the over-all architecture
iv)Level 3: Models with Text. Models with a very specific and well-defined meaning, forms the specification of the software
v)Level 4: Precise Models. "A Model, meaning a consistent and coherent set of texts and/or diagrams with a very specific and well-defined meaning, specifies the software"
vi)Level 5: Models only. There will only be models and that is all.
Level 4, which is where MDA is targeted towards, is enabled only thru the use of a language such as OCL. I have never heard or seen anything on MML, but I certainly hope that people start using it more b/c it clearly explains an organization's software development process maturity.
In the rest of the chapters of part 1, the author goes thru extensive set of examples showing how to use OCL. Chapter 2, titled "OCL By Example" is a case study of what is referred to as a "Royal & Loyal" application in which there are tons of short, long, beginner, advanced, and everything in the middle types of examples.
One example of a concept that you would love to apply in the real world is the concept of "Design by Contract" (Chapter 3, page 43). There are a couple of books written on this topic (Meyer, McKim, etc...), but they all focus on Eiffel. OCL being language independent abstracts some of the limitations that some of the programming languages have and enables the developer to apply the idea of contracts thru preconditions and post-conditions. One still has to worry about the "under the hood" implementation of these concepts, but it is very nice to see that there are tools out there that are heading towards that direction. The author spends the rest of chapter 3 of the book applying OCL to various aspects of UML such a state charts, class diagrams, activity diagrams, component diagrams and Use-case diagrams.
A somewhat complete and good example of how OCL maps in to a programming language such a Java is shown in Chapter 4. It's a good reference, but at the beginning of the chapter, the author gives the URL of a web site that is dedicated to providing OCL implementation in various languages (http://www.klasse.nl/ocl/).
In part 2 of the book, various aspects of OCL such the context of an OCL expression are explained. The examples that were drawn in part 1 are used in go deeper into the heart of OCL and show the reader what is actually going on.
Chapters 7 thru 9, which are my favorite chapters in this book, are used to explain the elements of OCL. What makes up OCL? Data structures, user defined types, predefined types, and built-in operations. These chapters are truly reference manuals of OCL, but with tables, examples, and very short but sweet explanation of each topic. Each topic takes one-half or three-quarters of a page and is followed by a couple of examples. Chapter 9 on data structures that make up OCL (Bag, Set. OrderedSet, and Sequence) is probably the most important chapter of all three, since manipulation of collections is very common in almost any application.
All and all, the author did a great job showing the value and the promise of OCL as a technology that can take software engineering to its next level with the help of MDA.

List price: $24.99 (that's 30% off!)
Collectible price: $14.75
Buy one from zShops for: $17.35

Great painting book...
I liked it!
List price: $23.00 (that's 30% off!)
Used price: $15.64
Buy one from zShops for: $13.95

"The sky was bereft of stars."Excelsior, the township in which Niki lives, is almost entirely black, yet all power in government and business rests in white hands. Without resorting to melodrama or clichés, the author shows in incident after incident, how black women are regarded as chattel, regularly harassed and even raped by their white bosses, town officials, judges, and even clergymen. Yet Niki never yields to self-pity, even when she and eighteen other women and the men who have used them are put on trial for violating the Immorality Act, a violation which has produced Niki's daughter Popi. Imperfect, sometimes angry, and often calculating, Niki comes alive as a woman determined to hang on to her pride, using the only power she has, her sexual power, to control those who would control her.
Vivid scenes of South African life from the 1970s to the present bring Niki and her children to life. As the children grow and become deeply involved in political movements, Mda gives us a clear-eyed picture of South Africa's transition from a restrictive, white-ruled government to a democratically elected government with room for both races. The black people here are real, not idealized, people with hopes, dreams, and strategies for survival, and they evoke enormous sympathy from the reader, especially as their personal limitations and faults become clear. Concentrating less on the national violence and battles for survival, and more on the individual conflicts of people in Excelsior, many of whom the reader has come to like and respect, he presents complex issues in a clear, uncomplicated narrative which throbs with life and offers both hope and caution for the future. Mary Whipple
Remarkable, stunning,-brilliant. A "must read" novel.The basis of the novel is an actual event. In 1971 19 citizens of a village in Orange Free State were arrested for violating the Immorality Act in South Africa. Their crime? Interracial sex.
The book is a fictional accounting of the subsequent lives of those caught up in this incident.
The focus of the story, the "Madonna" of the title is Popi, a young lady who represents the issue of one of these sexual encounters. She is called "colored" by polite society and far ruder things by most others. Her life transverses the crossover from white apartheid rule to black native African rule and she fit in neither world, being "to black for the apartheid regime and to white for the African regime".
Most of the figures in this novel emerge as people deserving, if not of sympathy, at least of understanding. It is one of the strengths of the book that Mda's politics-if he has any-are entirely absent from the narrative. This is a book about people and their experiences, not a vehicle for political rhetoric. Not that the tragedies of the political situation in South Africa don't emerge-they most surely do. They do so within the context of the story, however.
In the end the villains in contemporary South Africa are not the apartheid enforcers who instigate the action with their contemptible raid, nor those caught up in it, or even those who discriminate against these people. The villains are those, former opposition leaders resisting the injustice and corruption of apartheid, who now are the legislators, town councilors and such, who allocate jobs, housing, favors and the like to themselves, their wives, girlfriends, family and cronies. All of those who, assuring that everything would change under a regime, instead ensured that nothing in fact would be any different for those without power.
In the end this is a book about people, stuck in an uncomfortable middle, despised by the old guard in their time, despised by the new guard in the present, trying as best they can to come to terms with their pasts, present and futures. It is a singularly insightful and moving tale.
The Madonna of Excelsior is one of the best books I've read in years. It's definitely a "must read" book.

Used price: $34.20

Roses - Simple to Complicated
Used price: $12.90

At last a new African writer! And he's good! Yay!'Ways of Dying' is not about post-apartheid South Africa, though the blurb suggests that. I estimate it to be set in the late 1980s, shortly before the end of the old regime was drawing near.
It's a short book, but it's well written, and paints a vivid picture of life in South Africa. And yes, the 'black perspective' is different, and very interesting, and most welcome.
A wonderful terrible book
Best South African writer I have read
List price: $40.00 (that's 30% off!)
Used price: $23.78
Buy one from zShops for: $23.57

This is not a book for technologists.......
Realistic and Practical Look into the FutureThe reversibility of those models and the degree to which synchronization and editing can be simultaneously supported is perhaps the key issue that remains. Unfortunately, it is something of a deep bind because there is no doubt that the dream of complete reversibility of code and model, which has been hyped a lot over the past 5 years, is a shallow dream (reducing the 'model' to a mere visualization), and yet the idea of not being able to touch what was generated has a similarly stultifying unappeal to it.
As the development world is becoming more polarized between those who would model solutions and the band of hackers who claim to be able to do anything with a scripting language and a database, MDA is a key focal point for the former that is long overdue. Way too much attention has been spent developing tools that make it easy to lay out user interfaces while very few places have achieved even a basic ability to keep a serious domain logical model in tact through a single version, let alone a number of generations. Hopefully the tremendous consensus that has crystallized around MDA is an indication that that balance will soon start to change.
A clear, pragmatic guide to applying MDADave has written a clear, pragmatic guide to what MDA is and, more importantly, what really can (and cannot) be practically accomplished with MDA today. He unerringly focuses on the highest payoff areas for most projects, such as the generation of code from data models. He also brings his years of experience in developing enterprise systems to bear, clearly describing the specific issues involved in applying MDA in this difficult area.
The book gives a thorough presentation of the concepts behind MDA -- including the clearest discussion I have seen anywhere of OMG's Meta Object Facility, a perennial topic of confusion. Nevertheless, I don't really consider this a book on "MDA" as such. It is, indeed, a book on APPLYING MDA, as the title states.
If you are looking for a more theoretical presentation or a grand vision of how MDA will work someday, you may be disappointed. But if you are looking for techniques you can start applying the week after you finish the book, this is the book you want to be finishing.
I am currently Chief Architect at a company that is in the process of making the cultural and technical shift to model-driven development. I found this book so relevant to where we are and the next steps we need to take toward MDA, that I had the company buy copies for all our architects, plus a few extras to circulate among the developers. I even had my boss (the company president) read Part One, which provided just the right level of overview for him (plus Michael Guttman's forward, which is a fun read in itself).
If you are in a similar situation where you work, I couldn't suggest a better book as a helpful change agent. And if you simply want to know how to start applying MDA techniques for enterprise development, this is where to find out.

List price: $49.99 (that's 13% off!)
Used price: $37.50
Buy one from zShops for: $38.15

Nice resource on your bookshelfThe authors start the journey by introducing concepts and techniques such as archetypes (universal, recurring "things") and archetype patterns, and Model Driven Architecture. Furthermore, the authors have dedicated one chapter for describing a technique called Literate modeling (combining traditional visual modeling with an accessible business context provided via a narrative text, for example).
Up to this point (vicinity of page 116), the authors' writing style has been flawless, in my opinion, and easy to read. From chapter 4 onwards, the authors have provided a huge pattern catalog for archetype patterns. The catalog has been divided into chapters around archetypes such as Party, Order, Customer, and so on. Each archetype pattern introduces a business context, a high-level overview model, and descriptions of the related archetypes, their properties and related activities.
I didn't go through even nearly all patterns in the catalog. However, I feel confident that I will dive into the catalog looking for insight when moving to a new problem domain on a new project. Enterprise Patterns and MDA is a nice resource to have on your bookshelf.
Modeling patterns worth the price aloneBut that's a minor quibble. The real value of this book, and the bulk of the book, is in the third part which gives in depth models for the common enterprise application requirements. They start with an excellent object model for a 'Party' (as in a contact database), and continue on at the same level of depth for other common entities and processes, such as orders, payments, purchase orders, business rules, monetary values.
These patterns are probably too in-depth for a small business application, but they serve as an excellent starting point that you can trim to create a model that has the right level of complexity for your application. Don't let the big title of the book fool you. You can find books on how to write SQL, and generally how to model a database for a given problem domain, and other books on how query the database and make transactions. The value of this book is in giving you recipes for models for the basics of your application.

List price: $34.99 (that's 24% off!)
Used price: $28.71
Buy one from zShops for: $22.44

A vision of the future?MDA is the concept of using models developed using a modeling language (UML) to generate real applications. This book can be seen as a high level overview of MDA and at 150 pages it is a fairly easy and quick read. The authors show both what is available today (not too much) and what might be available in the future (perhaps all applications will be generated from models). The authors do try to make the book practical by showing how you can use modeling tools to at least build skeletons of code that can be the start of code development. MDA brings a new set of acronyms but this book explains each of them without too much pain.
So how much of what is discussed here is needed by a typical developer or designer? Probably not too much. But if you want to keep your eye on the future of IT then this book is well worth the read. Perhaps one day writing code will be thought of the same way we think of writing machine language. When that happens you will be able to say you knew it was coming.
Visionaries or unrealistic idealists? I don't know.After the PIM is created, it is transformed into one or more Platform Specific Models (PSMs), each of which is specific to a particular platform. Each of the PSM's is then acted on by a platform specific conversion tool that will create the coded solution for that platform that conforms to the PSM specifications. They argue that since this step will be electronically executed, the point will eventually be reached where code is no longer written by humans.
The authors are quite correct in pointing out the historical sequence of software development, which started with programming and constructing the computer being simultaneous events. This was followed by the development of assembly language and then the compiler, which raised the level of abstraction and caused a great deal of the code creation process to be automated. They use this background to argue that the MDA is several layers above that and a natural step in the upward movement of abstraction.
While I certainly agree that the movement in programming has been to higher levels of abstraction and more code being automatically generated, I did not find their arguments convincing. They use several examples of automatic code generation that can proceed from a model, one of which is the generation of setter and getter functions. The problem as I see it is that creating setter and getter functions for private instance variables is the easiest programming task of all. In my opinion, going from this to creating code to solve complex tasks is not a difference in degree, but a difference in kind.
Granted, the authors admit that the MDA is still in the preliminary stages, but all of us have heard stories about how tools such as web page creators continue to fail in many ways. Abstraction and automation of software have allowed developers to write programs with millions of lines of code, but there is every reason to believe that there is a limit as to how high the level of abstraction can go before it exceeds the capacity of humans to understand. Furthermore, if the tools that go from the MDA to the code do not create the precise solution, it is quite likely that the level of detail that one can write into the MDA will not be fine enough to represent all possible desired alterations from the automatically generated code. One simply cannot write all of what could be an enormous number of options into any conversion tool.
Finally, if there are errors in the code generated from the MDA, debugging it would probably be impossible. The software development community finds it very difficult to write bug-free software, even when it is written by hand and meticulously examined. Since the conversion tools would be software that would most likely contain errors, then anyone debugging the code from an MDA would be looking through software that was automatically generated from a model that may be flawed by a program that is most certainly flawed.
To conclude, I did find the book interesting and believe that some of what the authors envision will come true. However, at this time, it is clear that most of it will not happen in the near future. Our understanding of the software process is still too primitive to have the entire project successfully generated electronically from a model. There is also reason to believe that it is impossible.
MDA is here is to stayMDA is here to stay. There are many people that are very skeptical about the future of MDA, but the authors thru show and tell, explain why MDA is very much needed by the community and why it is here to stay for a very long time. The book starts by touching on some of the current problems that the software development process is facing these days:
·Productivity problem: Writing code is being productive, and models that do not relate to anything with the code and are just stick figures on papers don't really mean much
·Portability Problem: The need to port applications from one platform to another, or from one technology to another
·Interoperability Problem: The systems need to interoperate and integrate together much more smoothly than they do today
·Maintenance and Documentation Problem: Documents don't really mean much if they are not representative of the current system and can not be used to figure out what the system does.
It is very difficult; as you may have had the pleasure of finding out the hard way, to actually implement true round trip engineering. It is a great concept on paper, but once you start the process of coding who has the time to go back and update the model? Update the use-cases and propagate the changes all the way down stream to the test cases? Specially if your project is under the gun and is already behind the schedule. The truth of the matter is that until today, modeling has been a great concept to kick things off, but many managers, project leads, etc... do not see the value of modeling and how it can improve their software. MDA is the answer to these questions... It's what we like to have if we had it all... It is a promise of something grand and it's being presented in this book as such. This book is the blue print of where things in the software development process will be 3-5 years from now.
The author then goes into the details of the MDA framework and breaks that up to 4 parts:
·The Model
·The language in which the model is written in
·The transformation definition which describes how the model in one language can be transformed into another
·Transformation tool which performs the transformation using a specific transformation definition
Each part of the MDA framework is then broken up into its sub-parts and each are explained. The model, which is what we all are familiar with, is actually broken up to three parts in MDA:
·The Platform Independent Model - PIM
·The Platform Specific Model - PSM
·The Code
The bulk of what MDA is in the transformation tools that transform one model to the other. The author spends a great deal of the book explaining what these transformation tools could look like, and it actually gives three examples of such tools in this book:
·Transformation tool to transform PIM to PSM for a relational database
·Transformation tool to transform PIM to PSM for EJB's
·Transformation tool to transform PIM to PSM for a client front-end written in JSP
Each of these transformation tools is explained in great detail, and the depicted such that it is very easy for reader to follow the path of how the transformation is/should be done. The authors then talks about the transformation tools that take each PSM and transform it to Code. It is at every step of the way, from creating the PIM to Code, the authors spend a great deal of time explaining how MDA is introducing a new way of doing things better, faster and more efficiently.
Metamodels and metalanguages are covered in chapter 8. A Model is written is a Language, which is defined by a Metamodel, which is written in a Metalanguage. MDA follows the same pattern. The metalanguage in which MDA is written is called the MOF. The metamodel for the MDA are written in MOF, and the modeling itself is done via UML. All the standards that are covered under OMG are covered in chapter 11, and is very interesting to see how pieces fit together, and how the "stack" is being built.
All and all, Anneke Kleppe, et. al. did an extraordinary job in putting this book together. MDA is a buzz word that we have been here for sometime now, and it is great to finally have a book such as MDA Explained that clarifies the concepts and sheds some light on what's coming and what to expect.

Used price: $29.95

IDITITIDIOTdegree lessen your appetite for life's other buffet. Prepare
youself for complete emersion with little desire to extract
yourself from your "quest". Don't waste time on bannal issues
such as a cozy little nest. Find the funds for R&D and total
time. There very likely will be plenty of time for R&R and free
gymnasium, lodging and repast. Excellent new acquaintences and
education. And sharing exciting experiences with your friends.
Now off with you, my son. And fly low. Be there. Doing that.
Uncle Fester's Book is an Eye Opener
Great info, but not a "do-it-yourself" guide
Used price: $25.00
Buy one from zShops for: $61.36

South African Life among the NativesCamugu comes from Johannesburg and tries to fit into the somewhat primitive village of Oorloha. He lands in the middle of the fight that has been going on for 150 years. In those days, the teenage prophetess Nongqawuse Told the tribe that all cattle had be killed and the harvest destroyed. Thus the tribe was split between Believers and Unbelievers, each group blaming the other for whatever went wrong. And so the verbal fighting goes back and forth.
Xhosa used to be a real tribe, but nowadays only the language survives as part of the Bantu languages. That accounts for the click sounds that are mentioned. The Zulu war did take place, of course, and the prophesy also happened. The story is interwoven with the local history.
The narrative has won prizes and has been called "brilliant' and loaded with genuine mythic power. Unfortunately, I can't see it that way. The story drags on and on without there being much of a concrete action. The two time periods are so intermingled as to confuse the reader who constantly has to check the names to place it correctly. Untranslated local words and expressions can be used to good effect, but here they are overdone. And the story itself is not new, not exciting, and utterly predictable.
A Masterpiece by a Master Storyteller
The UML2.0 renewed emphasis on the Object Constraint Language extends the functionality needed to model more, and to program less.
This book focuses on the Business Rules implementation in MDA, and brings the details needed.
Step by step the book explains the OCL language and provides the reader with the knowledge to use OCL from a MDA point of view using transformation examples translating OCL to Java business rules.
This book can be considered as "Added value", also when readers are already familiar with the book 'MDA Explained The Model Driven Architect Practice and Promise book written by Anneke Kleppe, Jos Warmer and Wim Bast'.
The overlap is small.
Using the theory from the books, I succeeded in writing a bridge from Uniface to UML using XMI and visa versa.
In MDA terminology we transform a Platform Independent Model (PIM) to a Platform Specific Model (PSM).
We translate an Object Oriented Model to a Entity Relationship Model, including the OCL translation to simple business rules.
Have fun reading