What do you think?
Rate this book
720 pages, Hardcover
First published September 1, 1990
ConceptsIn my opinion, Applications is, hands down, the best part of the book and Concepts the worst. Having taught introductory object-oriented analysis and design courses for many years, I must admit that it is extremely hard to write a good textbook for this subject. You run the risk of falling into vague generalities on the one hand, and on the other, going into too much excruciating and painful detail. Unfortunately by postponing badly needed software examples until the third part of the book, the first two parts of the book were practically condemned to blow away into thin generalities.
Method
Applications
1. ComplexityChapter one starts at a very general level and runs on for some five pages on the structure of plants and animals, the structure of matter and the structure of social organizations, before turning to the complexity of software and superficially touching some key aspects of software development: the complexity of its application domains, the difficulty of managing software development, software´s flexibility and so on. This chapter reads very much like a general introduction to systems engineering and tries, unsucessfully in my opinion, to provide a motivation and a narrative of how general system ideas eventually trickle down into algorithmic and object-oriented decompositions. Too many important terms and concepts are mentioned almost in passing without anchoring them deeply enough to make them intelligible and usable in a software development context.
2. The Object Model
3. Classes and Objects
4. Classification
Our primary focus here is on product metrics (sometimes called design metrics) that help the development team assess the artifacts of their analysis and design efforts.but defining the metrics and omitting guidelines or rules of thumb as to what the measures mean, hardly helps such assessment. The developers may come up with a number for, say, weighted methods per class (supposing one manages to come up with a reasonable weight scheme -another important omission) or the depth of an inheritance tree, but is that number telling him he has a good or a bad design on his hands? Booch et al stay mum on the subject, both in this chapter and in the applications sections where few if any metrics are reported. It is all well and good to say that in an inheritance tree, �...the more children a class has, the greater its impact on the software system´s design�, but is this a positive or a negative impact? And adding that the greater impact is �...due to the reuse it produces� only further muddies the waters. Thus, ending what ought to be a key section on evaluating object-oriented analysis and design by stating:
There is still disagreement about how object-oriented design principles contribute to software quality; consequently, there is still much debate about what constitutes an appropriate set of object-oriented metrics.is a cop-out and further adding
We believe the metrics presented here provide a reasonable set of measures to assist the architect and component leads in assessing the quality of their object-oriented design.requires a blind leap of faith on the reader´s part.
- A satellite-based navigation system;In spite of the RUP-like framework, the analysis and designs lack unity, to me they show all the signs of having been tackled by different teams. Thus some of the case studies focus on the problem domain, while others (notably the vacation tracking system) focuses, in the inception phase, on a specific application environment, thus it starts by stating the design will implemented using Java, Java Server Pages (JSP), Tomcat,, J2EE, EJB ...that is to say, doing exactly the opposite of what has preached in the rest of the book by practically starting to the development from what appears to be more of a deployment, than a use case point of view. It is somewhat of a mystery to me why the applications are presented in the aforementioned order, since the most complex system is presented first and the simplest (the weather monitoring station software) almost last.
-A train traffic management system;
-A simple cyptoanalysis application for deciphering single substitution cyphertexts;
-Software for a weather monitoring station;
-An employee vacation tracking system.