CSC323 2010S Software Design

Head First OOA&D 1: Great Software Begins Here

McLaughlin, Brett D., Pollice, Gary, & West, David (2007). Great Software Begins Here. Chapter 1 of Head First Object-Oriented Analysis & Design. Sebastapol, CA: O'Reilly.

Good Discussion Questions

The authors of head first constructs for loops in their inventory search using iterators rather than the i = 0; i < some value; i++ form. What are the pros/cons of doing it this way?

I don’t understand why they chose to encapsulate the GuitarSpec. I understand why it was necessary, but the text didn’t explain it well enough for me to grasp why they chose encapsulation.

In the Guitar application, why didn't they add a NO PREFERENCE to the guitar information enums? That would have enabled them to search for guitars that only matched a couple of characteristics.

Why are steps 2 and 3 separate? It seems to me that extensible and reusable code comes about from having good encapsulation.

What do you see as the differences between robust and fragile code?

If each enum is its own file, does the protection from misspellings really offset the additional directory clutter from the numerous additional files and the neccessity to sometimes add new values for each enum?

Rick sells more than just Guitars, and it seems to me like the GuitarSpec should be a subclass of something like InstrumentSpec. How would you design this better?

The Book's Rhetorical Style

After reading the introduction and Chapter 1, I understand the ideas behind the book's style, but I still find it difficult to read linearly due to the layout. I'm curious how the academic community has responded to the Head First series.

Some people really like it. Others don't. Note, of course, that you're not supposed to be reading it linearly. You're supposed to be stopping every page or so and answering questions.

I have no questions about this chapter of the reading. Everything seemed clear. Is this because of the awesome pedagogical techniques used throughout the book and explained in the introduction, or the fact that this chapter basically reviewed design principles that I had already learned in CSC207? Could you explain the benefits you see in using a book such as this? (That is, a book that focuses on meta cognition, multiple learning styles, pictures, etc to make learning the material more intuitive/natural/easier)

Dr. Davis recommended the book. It's cheaper than most OOA&D books. Plus, the style of the book matches well with the active learning pedagogy we already promote.

Questions Sam felt like answering

Should the authors have addressed the issue of a user searching for a guitar while only having half a guitarspec worth of information? It seems like an obvious flaw. A user would expect a search with partial information to succeed.

I certainly would have addressed that flaw. Of course, I also would have spelled Stratocaster correctly.

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Tue Feb 9 12:41:16 2010.
The source to the document was last modified on Tue Feb 9 12:41:14 2010.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky,

Copyright © 2010 Samuel A. Rebelsky. This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.