small medium large xlarge

Errata for Interface Oriented Design

 

The latest version of the book is P2.0, released over 9 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.

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

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (22-Nov-10)
#45713
Paper page: 3

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

  • Reported in: P2.0 (22-Nov-10)
#45716
Paper page: 5
enumeration Toppings {PEPPERONI, MUSHROOMS, PEPPERS, SAUSAGE} [...] set_toppings(Toppings []) [Seems this should be called Topping, since it repr...more...
  • Reported in: P2.0 (17-Aug-07)
#29431
Paper page: 7
Example for C++ is not quite correct. Function findAverage() in base class is private, then SampleImpelentation class inherit publically. Could be s...more...
  • Reported in: P2.0 (12-Nov-09)
#41381
PDF page: 12
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 as Chapt...more...
  • Reported in: P2.0 (19-Jul-14)
#77024
PDF page: 21

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

  • Reported in: P1.0 (22-Nov-10)
#45720
Paper page: 22
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 even avoid...more...
  • Reported in: P2.0 (09-Jul-13)
#52157
PDF page: 25
In Footnote 17: You wrote "www.qualitytree.com/ruminate/022105.htm" Should be: "testobsessed.com/2005/02/flush-specific-stack-fiercely/" Reason: Th...more...
  • Reported in: P1.0 (20-Aug-06)
#25753
Paper page: 26
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 ingredient u...more...
  • Reported in: P2.0 (23-May-07)
#29122
PDF page: 29

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

  • Reported in: P2.0 (24-May-07)
#29126
PDF page: 40
I think "print length of theTopping" in the second pseudocode sample on this page should be "print length of theToppings" given the declaration "Node ...more...
  • Reported in: P1.0 (22-Nov-10)
#45718
Paper page: 52

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

  • Reported in: P2.0 (14-Mar-13)
#51026
PDF page: 58

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

  • Reported in: P1.0 (22-Nov-10)
#45715
Paper page: 61

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

  • Reported in: P2.0 (14-Mar-13)
#51027
PDF page: 64
ePub version. Sentence does not make sense/has missing content: 'If you add BALANCE to ChangeType, you do not have to change any Alternatively, yo...more...
  • Reported in: P2.0 (14-Mar-13)
#51028
PDF page: 66

ePub version:
Missing text:

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

Is what?
--Jon Evans

  • Reported in: P2.0 (14-Mar-13)
#51030
PDF page: 68
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 same fo...more...
  • Reported in: P2.0 (14-Mar-13)
#51031
PDF page: 88

ePub version:

Missing word:

'Disadvantage-callers have to be changed if implementation'

If implementation what?--Jon Evans

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

Stuff To Be Considered in the Next Edition

  • Reported in: P1.0 (07-Aug-06)
#25664
Paper page: 29
The paragraph after the Customer interface uses different method names than in the interface. Readers not familiar with Ruby might not see that set_a...more...
  • Reported in: P1.0 (07-Aug-06)
#25679
Paper page: 133

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