UML Components: A Simple Process for Specifying Component-Based Software (The Component Software Series)
||Author: John Cheesman, John Daniels|
List Price: $34.99
Our Price: Click to see the latest and low price
Publisher: Addison-Wesley Pub Co (13 October, 2000)
Sales Rank: 67,572
Average Customer Rating: 4.5 out of 5
Customer ReviewsRating: 4 out of 5
Packs a punch...
Flat out ...I liked this book. Frankly this book could be twice this size and still be good. It compresses a TON of information into a small package. I knew that UML was extensible ...but this book really puts that idea into practice.
Only negative would be the organization of it could be a bit better. The book essentially is giving you documentation guidelines but the 'where to document' sometimes gets blurred with the 'how to document'.
Rating: 4 out of 5
Realistic exercise used to explain how components are used
With few exceptions, and this is not one of them, in computing the word simple should only be applied with some form of relative-to qualification. The dream of creating interchangeable parts out of software has been a goal that first appeared on the horizon some time ago, but up to now, it has yet to make a complete appearance. The authors acknowledge that fact in chapter 8 and argue that with the availability and power of the Unified Modeling Language (UML) to standardize the design coupled with standards such as COM+ and Enterprise Java Beans (EJB) for the run-time side, it is about to happen. While these tools will no doubt accelerate the move to component reuse, the process of the increased adoption of components is more complicated than that.
However, in the arena of the specification of components software using the UML, this book has many positive attributes. There is no preamble or introduction to UML, for that you must use another resource.
This was a good decision on the part of the authors. Many people now know UML and there are several good resources available. Furthermore, the explanations are such that one knowledgeable in computing would quite likely be able to discern what is being described without detailed knowledge of UML.
As the authors stress, the set of steps that will turn a software segment into a component is not difficult to understand. The precise specification of what a component expects and what it is expected to do is the major task that needs to be addressed. A secondary, but necessary task is that the details of the implementation are not part of the component specification, for if they were, then it would violate the concept of interchangeable parts. The basic structures of a design by contract are described using the Object Constraint Language (OCL). It is not necessary to know OCL to understand what is being described, a thorough background in Boolean expressions is all that is needed.
The example used throughout the book is that of a hotel room reservation system. It satisfies the three criteria that any such example must adhere to:
1) It is an operation that is routine to most of us, so there is very little need to explain the basic premises and additional realistic extensions can be added without any substantial explanation.
2) There are enough different features that can be encapsulated into a component so that the complete example is complex enough to be an effective learning tool.
3) The interactions among the components are complex enough so that the real problem of using components, namely specifying how they intercommunicate, can be sufficiently developed.
In sports, projects are divided into two parts, the plan and the execution. If only one is done well, it will not work. The same applies to components as well, whether you are defining them or describing how to define them. In this book, the authors also execute their well-conceived plan. The descriptions are complete, understandable and in the proper order. Granted that this is shorter than the typical technical book, but I had no trouble in reading it in two sessions, a morning and an afternoon in the same day. My attention did not waver and there were only a very few times when I stopped and either reread or looked at a previous page for clarification.
You would have to be the programming equivalent of a cave dweller to believe that components will not become a dominant technology in the very near future. With this book, you can face that future with much of the knowledge that will prevent you from being relegated to the recycle bin of history.
Rating: 5 out of 5
Pragmatic Approach to Distributed System Architecture
All too often, design books (and practictioners for that matter) fall into a trap of treating the design process like the desired outcome is "Art", rather than focusing on solving business problems and working within time and budget constraints. This book attacks this notion and presents a process that extends UML to be an effective tool in building distributed component architectures. The focus is on meaningful deliverables that evolve through analysis and design iterations, and the techniques will effectively break you of waterfall habits.
· Problem Frames: Analyzing and Structuring Software Development Problems
· Software Architecture in Practice, Second Edition
· Software Project Management: Readings and Cases
· Objects, Components, and Frameworks with UML : The Catalysis(SM) Approach
· Component Software