We try to keep our books accurate, but sometimes mistakes creep in. This page lists the errors submitted by our astute readers. If you've found a new error, please submit it.

The latest version of the book is P2.0, released about 7 years ago. If you've bought a PDF of the book and would like to upgrade it to this version (for free), visit your home page.

Key: Typo Tech. Error Suggestion Not a problem Next edition

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:  

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
3

#45713: ...you've probably performed the following scenario hundreds of time. [should be times]

P1.0
22-Nov-10
5
#45716: enumeration Toppings {PEPPERONI, MUSHROOMS, PEPPERS, SAUSAGE} [...] set_toppings(Toppings []) [Seems this should be called Topping, since...more...
P2.0
22-Nov-10
7
#29431: Example for C++ is not quite correct. Function findAverage() in base class is private, then SampleImpelentation class inherit publically. Co...more...
P2.0
17-Aug-07
12
#41381: In the Kindle version of this book at location 291-97 (page 12 in the PDF) it says: "Chapter 3 Interface Contracts" The PDF version has it ...more...
P2.0
12-Nov-09
21

#77024: Link to article about use cases in footnote #13 is broken, should be updated to alistair.cockburn.us/Structuring+use+cases+with+goals
--Manuel Prinz

P2.0
19-Jul-14
22
#45720: Where design by contact is discussed, it should be made clear that a method whose precondition is X has no obligations if X is not met, not ev...more...
P1.0
22-Nov-10
25
#52157: In Footnote 17: You wrote "www.qualitytree.com/ruminate/022105.htm" Should be: "testobsessed.com/2005/02/flush-specific-stack-fiercely/" Re...more...
P2.0
09-Jul-13
26
#25753: Point 5 of the "Order a Pizza" test case says nothing about checking the pizza for extra or missing ingredients, let alone issues such as ingr...more...
P1.0
20-Aug-06
29

#29122: I believe "observer" in the Customer class's set_address and set_name methods should be "the_observer".--Bart van der Zwet

P2.0
23-May-07
40
#29126: I think "print length of theTopping" in the second pseudocode sample on this page should be "print length of theToppings" given the declaratio...more...
P2.0
24-May-07
52

#45718: only shop may implement the IceCreamOrderinginterface. [missing space between IceCreamOrdering and interface]

P1.0
22-Nov-10
58

#51026: ePub version - Missing text. Sentence states:
'SAX is push/sequential; DOM is.'--Jon Evans

P2.0
14-Mar-13
61

#45715: Who's Job Is It Anyway? [should be Whose]

P1.0
22-Nov-10
64
#51027: ePub version. Sentence does not make sense/has missing content: 'If you add BALANCE to ChangeType, you do not have to change any Alternati...more...
P2.0
14-Mar-13
66

#51028: ePub version:
Missing text:

'The code following frame.bind is executed when the window is'

Is what?
--Jon Evans

P2.0
14-Mar-13
68
#51030: ePub version: Sentence doesn't make sense: 'You can alter the of calls in the stateless interface, and the text is always printed with the...more...
P2.0
14-Mar-13
88

#51031: ePub version:

Missing word:

'Disadvantage-callers have to be changed if implementation'

If implementation what?--Jon Evans

P2.0
14-Mar-13
91
#51032: ePub version: Missing space: 'SimplePizza method such asmake_by_slicing_before_placing_toppings.' Should be: 'SimplePizza method such a...more...
P2.0
14-Mar-13
94
#45717: the amount of simultaneous connections to that database [should be either "number of simultaneous connections" or perhaps "amount of simultane...more...
P1.0
22-Nov-10
114
#43092: In the last sentence before the interface list: "I have found that to combine [...] and then separate an [...]" The 'and' in front of th...more...
P2.0
05-May-10
115
#43093: In Use Case: Normal Pizza order 1. OrderEnterer enters Pizza order wouldn't it be better (more correct) to say 1. OrderEnterer enters ...more...
P2.0
05-May-10

Stuff To Be Considered in the Next Edition

PDF Paper Description Found in Fixed in
29
#25664: The paragraph after the Customer interface uses different method names than in the interface. Readers not familiar with Ruby might not see th...more...
P1.0
07-Aug-06
133

#25679: Be consistent in the WebPage and URL data interfaces. URL is preceded with the word "data" while WebPage is not.--Kyle Blaney

P1.0
07-Aug-06