Errata

Head First Software Development

Errata for Head First Software Development

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 47
The first two estimates for Bob and Laura (Pay with Visa/MC/PayPal and Order Flight DVDs) should be

swapped, so Bob's estimates are 10 and 2, respectively, and Laura's are 15 and 20, respectively.

Anonymous    May 01, 2008
Other Digital Version
47
The first two estimates for Bob and Laura (Pay with Visa/MC/PayPal and Order Flight DVDs) should be

swapped, so Bob's estimates are 10 and 2, respectively, and Laura's are 15 and 20, respectively.

Anonymous    May 01, 2008
Printed
Page 78
First visual calculation

The calculation showing the difference between work possible with three developers and the original
timescale has been calculated incorrectly.

273 - 190 = 83 (not 84)

This value is incorrectly utilised thereafter on the page causing further confusion:

"...189 Days of work time, and 273 days of work."

This should read:

"...190 Days of work time..." etc

In the "there are no Dumb Questions" section the values shown in question one are incorrect also:

"But 190 days of work is less than the 190 days that our three-developer team can produce..."

This should read:

"But 184 days of work is less..." etc

In the answer for question one, another incorrect value is shown:

"...165 days is close enough to the 189-day mark..."

This should read:

"...184 days is close enough to the 190-day mark..."

Anonymous    May 01, 2008
Other Digital Version
78
First visual calculation

The calculation showing the difference between work possible with three developers and the original
timescale has been calculated incorrectly.

273 - 190 = 83 (not 84)

This value is incorrectly utilised thereafter on the page causing further confusion:

"...189 Days of work time, and 273 days of work."

This should read:

"...190 Days of work time..." etc

In the "there are no Dumb Questions" section the values shown in question one are incorrect also:

"But 190 days of work is less than the 190 days that our three-developer team can produce..."

This should read:

"But 184 days of work is less..." etc

In the answer for question one, another incorrect value is shown:

"...165 days is close enough to the 189-day mark..."

This should read:

"...184 days is close enough to the 190-day mark..."

Anonymous    May 01, 2008
Printed
Page 80
Be the Customer Solution

There is a word missing at the end of the paragraph. The last sentence should read, "We also laid out the
user stories in order of priority."

Anonymous    May 01, 2008
Other Digital Version
80
Be the Customer Solution

There is a word missing at the end of the paragraph. The last sentence should read, "We also laid out the
user stories in order of priority."

Anonymous    May 01, 2008
Printed
Page 84
Iteration 1 > Total Days

Sum of the user stories for iteration one has been calculated
incorrectly:

13 + 15 + 15 + 12 = 55 (not 57)

The result next to "Divide by 3 developers" should then be 19, with an annotation pointing to the number
that says:

"Actually, the answer here is 18.333, but the general rule is to round up your estimates to make sure you
haven?t chopped off time that you are going to need."

Anonymous    May 01, 2008
Other Digital Version
84
Iteration 1 > Total Days

Sum of the user stories for iteration one has been calculated
incorrectly:

13 + 15 + 15 + 12 = 55 (not 57)

The result next to "Divide by 3 developers" should then be 19, with an annotation pointing to the number
that says:

"Actually, the answer here is 18.333, but the general rule is to round up your estimates to make sure you
haven?t chopped off time that you are going to need."

Anonymous    May 01, 2008
Printed
Page 91
Sharpen Your Pencil, Iteration 1

The line under "Iteration 1" should read "55 days of work / 0.7" , not "57 days of work / 0.7"

Anonymous    May 01, 2008
Other Digital Version
91
Sharpen Your Pencil, Iteration 1

The line under "Iteration 1" should read "55 days of work / 0.7" , not "57 days of work / 0.7"

Anonymous    May 01, 2008
Printed
Page 92
Sharpen Your Pencil Solution

The solution for Iteration 1 should be "79 days", not "82 days"

Also, the total should be "234 days of work", not "237 days of work".

Finally, the sentence below the total should read, "So if you Have 3 developers, each of them has to work
78 days in 3 months...but there are only 60 working days", with "78 days" replacing "79 days"

Anonymous    May 01, 2008
Other Digital Version
92
Sharpen Your Pencil Solution

The solution for Iteration 1 should be "79 days", not "82 days"

Also, the total should be "234 days of work", not "237 days of work".

Finally, the sentence below the total should read, "So if you Have 3 developers, each of them has to work
78 days in 3 months...but there are only 60 working days", with "78 days" replacing "79 days"

Anonymous    May 01, 2008
Printed
Page 124
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Anonymous    May 01, 2008
Other Digital Version
124
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Anonymous    May 01, 2008
Printed
Page 127
Bottom of diagam

The second getName() invocation line (there are two of
these on the page) should extend to the SeeMovieEvent lifeline.

Anonymous    May 01, 2008
Other Digital Version
127
Bottom of diagam

The second getName() invocation line (there are two of
these on the page) should extend to the SeeMovieEvent lifeline.

Anonymous    May 01, 2008
Printed
Page 129
Bottom of diagam

The second getName() invocation line (there are two of
these on the page) should extend to the SeeMovieEvent lifeline.

Anonymous    May 01, 2008
Other Digital Version
129
Bottom of diagam

The second getName() invocation line (there are two of
these on the page) should extend to the SeeMovieEvent lifeline.

Anonymous    May 01, 2008
Printed
Page 137-138
class diagrams

The class diagrams have typos. Both GoToRestaurantEvent and
OrderFlowerEvent classes have set the name field to "SeeMovie":

-name:String = "SeeMovie"

Under GoToRestaurantEvent, the text should instead be:

-name:String = "GoToRestaurant"

And under OrderFlowersEvent, the text should instead be:

-name:String = "OrderFlowers"

Anonymous    May 01, 2008
Printed
Page 137-138
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Other Digital Version
137-138
class diagrams

The class diagrams have typos. Both GoToRestaurantEvent and
OrderFlowerEvent classes have set the name field to "SeeMovie":

-name:String = "SeeMovie"

Under GoToRestaurantEvent, the text should instead be:

-name:String = "GoToRestaurant"

And under OrderFlowersEvent, the text should instead be:

-name:String = "OrderFlowers"

Anonymous    May 01, 2008
Other Digital Version
137-138
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Printed
Page 150
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Other Digital Version
150
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Printed
Page 153
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Other Digital Version
153
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Printed
Page 154
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Anonymous    May 01, 2008
Other Digital Version
154
Date, FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Anonymous    May 01, 2008
Printed
Page 160
FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Other Digital Version
160
FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Also, there should be no italic formatting for this text in the FirstDate, SecondDate, and ThirdDate class
diagrams, as they will be concrete implementations.

Anonymous    May 01, 2008
Printed
Page 162
Crossed-out FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Anonymous    May 01, 2008
Other Digital Version
162
Crossed-out FirstDate, SecondDate, & ThirdDate class diagrams

validateEvent methods show as private. They cannot be private
because validateEvent is an abstract method.

In all these class diagrams, the text:

- validateEvent(event : Event) :boolean

should be changed to:

# validateEvent(event : Event) :boolean

Anonymous    May 01, 2008
Printed
Page 297
Exercise, second line of code

Change "mDBAccessor" to "dbAccessor" so the code line reads:

private DBAccessor dbAccessor;

Anonymous    May 01, 2008
Other Digital Version
297
Exercise, second line of code

Change "mDBAccessor" to "dbAccessor" so the code line reads:

private DBAccessor dbAccessor;

Anonymous    May 01, 2008
Printed
Page 298
Exercise Solution, fourth line of code

Change "mDBAccessor" to "dbAccessor" so the code line reads:

dbAccessor = accessor;

Anonymous    May 01, 2008
Other Digital Version
298
Exercise Solution, fourth line of code

Change "mDBAccessor" to "dbAccessor" so the code line reads:

dbAccessor = accessor;

Anonymous    May 01, 2008
Printed
Page 418
6th paragraph

There is a line missing at the end of this paragraph: "(...) and incorporate those approaches when they
might help your project. Some people call this 'process...'".

It should read "...Some people call this process skepticism"

Anonymous    May 01, 2008
Other Digital Version
418
6th paragraph

There is a line missing at the end of this paragraph: "(...) and incorporate those approaches when they
might help your project. Some people call this 'process...'".

It should read "...Some people call this process skepticism"

Anonymous    May 01, 2008
Printed
Page 437
Bottom of diagam

The second getName() invocation line (there are two of
these on the page) should extend to the SeeMovieEvent lifeline.

Anonymous    May 01, 2008
Other Digital Version
437
Bottom of diagam

The second getName() invocation line (there are two of
these on the page) should extend to the SeeMovieEvent lifeline.

Anonymous    May 01, 2008