Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Cocoa(R) Programming for Mac(R) OS X (2nd Edition)
Publisher: Addison-Wesley Professional
Authors: Aaron Hillegass
Rating: 4/5
Customer opinion - 4 stars out of 5
2nd Edition due out in April 2004 (ignore rating)

I was sooo close to buying this book, and then found out a new edition is due out this month. Looks like I'll need to wait a week or two to get my copy. My guess is that, in addition to other changes, the book will use Xcode instead of Project Builder in the examples.

Product: Book - Paperback
Title: C++ Primer (4th Edition)
Publisher: Addison-Wesley Professional
Authors: Stanley B. Lippman, Josée Lajoie, Barbara E. Moo
Rating: 2/5
Customer opinion - 2 stars out of 5

Start at the end of the book and read it backwards , or take a box knife and rearrange the book as needed. Good luck.

Product: Book - Paperback
Title: Writing Effective Use Cases
Publisher: Addison-Wesley Professional
Authors: Alistair Cockburn
Rating: 5/5
Customer opinion - 5 stars out of 5
The Good Books are Always Dog-earred

Certainly my copy of "Writing Effective Use Cases" is beginning to show signs of being pulled off the shelf numerous times during every project I work on. Cockburn's text-based approach to use cases is very well thought-out, very practical, and non-dogmatic. We use his detail level icons (cloud, kit, sea-level, fish, clam) as a sort of verbal short-hand to keep everybody focused on the correct level of detail even when we aren't actively writing use cases! Remember that text use cases are just as effective for process evaluation and re-design as they are for software development projects, and that use case development almost always goes better in a workshop environment.

Product: Book - Hardcover
Title: Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Publisher: Prentice Hall PTR
Authors: Craig Larman
Rating: 5/5
Customer opinion - 5 stars out of 5
Underlying principles and practice: Excellent job.

There is a lot of textbooks on UML in the market, similarly on development processes like the Unified Process, design patterns and OOA/D. Many textbooks that I have seen provide a dry list of UML notations, or a dry list of process guidelines, or trivial examples on how a design pattern can be implemented. However, no other textbook in my opinion makes an excellent job in putting everything together in a case study (the 3rd edition provides two case studies) in order to illustrate (1) what is the significance of each one of the above, (2) how they fit together and (3) what are possible tradeoffs. The author very clearly explains what are the underlying principes behind object-oriented software development and (more importantly) how these principles can be put into practice.

Since the first edition I found Craig's writing style very easy to follow and as a graduate student taking software engineering and related classes I used this textbook as a self study to learn about OOA/D and UML. As an instructor I have been using this textbook for a number of software engineering and related classes (both senior level undergraduate and graduate), and the feedback I receive from students is very positive. I also recommend this book to students who are undertaking final-year undergraduate projects or graduate projects, and we have found this book to be very valuable for projects that involve several stages of analysis, design and implementation and who want to know how a process such as the Unified Process can be used in an agile manner. My experience tells me that this last point is very important for students who would work individually or in small groups over a (usually) short period of time to complete a development project.

Several of my previous students who are now employed in the IT industry as developers are telling me that they still use this book and find it a very valuable reference.

The book has also sparked interesting discussions among colleagues and researchers on various aspects on OOA/D and it is a valuable source. More particularly, the book successfully manages to integrate the principle of Design by Contract beyond implementation. Craig's approach to introduce operation contracts places emphasis on assertions from early stages of development and shows how this emphasis is propagated to detailed design (through UML communication diagrams) and through the use of responsibility patterns.

Regarding a comment on GRASP by a previous (and anonymous) reviewer, I would like to point out that a pattern is a set of principles (can be on any level of granularity) that solves a recurring problem at any stage during development. This (albeit informal) definition does not confine patterns to structural or behavioral design (along the lines of the GoF design patterns). Craig makes that very clear in the book particularly in the second and third edition) and I'm afraid to say that the reviewer who made the comment either skipped that part or misunderstood it.