Fundamentals of Software Architecture

Errata for Fundamentals of Software Architecture

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
Safari Books Online, Other Digital Version
Page chapter 6
Cyclomatic Complexity sidebar

The number of nodes and edges in Figure 6-1 doesn't match up with the equations in the Cyclomatic Complexity sidebar. In Chapter 6 in the Cyclomatic Complexity sidebar in Figure 6-1 there are 5 nodes identified and 4 edges identified (N = 5, E = 4). If you plug that into the given formula CC=E−N+2 you get: CC = 4 - 5 + 2 which equals 1. A Cyclomatic Complexity of 1 is not correct. The text before Figure 6-1 swaps E and N (if you get E and N from the figure) and as a result the correct Cyclomatic Complexity of 3 is arrived at: "The cyclomatic complexity for Example 6-1 is 3 (=5 – 4 + 2); the graph appears in Figure 6-1." I'm not sure exactly how the diagram and equation should be changed, but using this definition from Wikipedia makes more sense to me than trying to use the equation CC=E−N+2: "The cyclomatic complexity of a section of source code is the number of linearly independent paths within it—where "linearly independent" means that each path has at least one edge that is not in one of the other paths. " There are three linearly independent paths in the code provided, so the Cyclomatic Complexity is 3. I noticed this by using Figure 6-1 to count the edges and nodes and then plugging that into the equation.

Note from the Author or Editor:
The Errata is correct—the math is correct for the code shown, the graph is incorrect. It shows several lines of code (nodes) broken up as return statements, which artificially inflates the number of nodes.

Steve Taggart  Feb 18, 2020  Jun 12, 2020
Safari Books Online
chapter 17
Choreography and Orchestration

"microkernal" should be "microkernel".

Note from the Author or Editor:
Good catch! It's a common misspelling that I'm surprised no one caught.

Chris Mann  Apr 25, 2020  Jun 12, 2020
Printed, PDF
Page all images
all images

Majority of the text items shown in the print and PDF titles images are so small, even zooming in does not help in the readability of said images, and look to be in color when printed black and white. Can we either upload the images used somewhere so we can download and blow them up to original sizes intended for viewing in a legible format? Strong examples of this are figures 1-1 and 1-2

Anonymous  May 12, 2020  Jun 12, 2020
Safari Books Online
i
last paragraph in preface

"This book won’t make someone a software architecture overnight"

Michael Easter  May 18, 2020  Jun 12, 2020
Printed
Page 18
2nd paragraph last line

“Chapter 3” reference should be Chapter 7 - where architectural quantum is defined (page 92)

Anonymous  Sep 07, 2020  Nov 06, 2020
PDF
Page 35
table 2-1

Table caption reads "Trade-offs between topics and queues" but table only lists trade-offs for topics. Are the trad-offs for queues missing?

Note from the Author or Editor:
fixed

Jørgen Lang  Apr 17, 2020  Nov 06, 2020
Printed
Page 46
Par. 4

The text claims that all ratios are between zero and one! 5/2, 14/3, 152/7 and so on are all surprised to hear this.

Note from the Author or Editor:
Fixed.

Gene Callahan   Dec 13, 2020  Feb 12, 2021
Printed
Page 48
Chapter 3, below 'Limitation of metrics' square

Edward Yourdon AND AND Larry... ‘and’ is doubled.

Note from the Author or Editor:
fixed

Istvan  Nov 23, 2020  Feb 12, 2021
Printed, PDF
Page 52
2nd para, 1st sentence

Original: Multiple *entities* must agree on the order of values. Fix: Multiple *components* must agree on the order of values.

Jørgen Lang  Jul 05, 2020  Nov 06, 2020
Printed
Page 52
Paragraph 6, 2nd line (Dynamic connascence section, first paragraph)

In the line containing ...which analyses calls at runtime... I think that "analyses" should be "analyzes"

Anonymous  Sep 11, 2020  Nov 06, 2020
Printed
Page 53
Fourth paragraph, first line.

Description of Connascence of Identity is same as description of Connascence of Value. What is correct description.

Note from the Author or Editor:
Connascence of Identity occurs when multiple components must reference the same entity.

Anonymous  Sep 11, 2020  Nov 06, 2020
Printed
Page 60
Box

The text says “what happens if we loose Italy?” instead of “lose.”

Note from the Author or Editor:
Fixed.

Gene Callahan  Dec 13, 2020  Feb 12, 2021
Printed, PDF
Page 102
Last paragraph, 1st sentence + illustration above

Figure 8-3 names left architecture style "layered architecture" and right "modular monolith". In the following text they are called "Layered monolith" and "modular monolith". At this point (in chapter 8) is not (yet) clear, that a layered architecture implies a monolithic structure (as explained in ch 9).

Note from the Author or Editor:
fixed

Jørgen W. Lang  May 01, 2020  Nov 06, 2020
Printed, PDF
Page 108
2nd bullet list, 2nd buller

Original: Developers may have to **duplication** domain concepts in both common and local layers. Fix: Developers may have to **duplicate** domain concepts in both common and local layers.

Jørgen Lang  May 01, 2020  Jun 12, 2020
Printed, PDF
Page 114
List below Fig 8-10

Inconsistent naming of components, e.g.: Video streamer (in figure) VideoStreamer (in definition term [aka dt in HTML]) Video Streamer (in definition [aka dd in HTML]) These should probably unified into one format (CamelCase?).

Jørgen Lang  May 01, 2020  Jun 12, 2020
Printed
Page 158
1st paragraph

"... In such cases, it is common to create an adapter between the plug-in contact and your standard contract..." I think contact should be contract.

Note from the Author or Editor:
Fixed.

Davy  Jan 16, 2021  Feb 12, 2021
Printed, PDF
Page 168
2nd para, 2nd sentence

Original: […] transaction technique known as BASE transactions (basic availability, soft state, eventual consistency) transactions that rely […] Issue: "transactions" before *and* after parentheses Fix: Remove one occurence of "transactions"

Note from the Author or Editor:
Good catch--repaired.

Jørgen Lang  May 11, 2020  Jun 12, 2020
Printed, PDF
Page 185
2nd para, 4th sentence

Original: Concurrently, the Notification event notifies […] Problem: "Notification" is not an event, but an event processor. Fix: Concurrently, the Notification event processor notifies […]

Note from the Author or Editor:
fixed

Jørgen Lang  May 13, 2020  Nov 06, 2020
Printed, PDF
Page 193
2nd para, 1st sentence

Original: […] generates another contextual email_customer event […] Problem: Using underscore instead of hyphen. Fix: […] generates another contextual email-customer event […]

Note from the Author or Editor:
changed

Jørgen Lang  May 14, 2020  Nov 06, 2020
Printed, PDF
Page 194
2nd para, 2nd last sentence

Original: […] events such as […] are commands (things that need to happen) as opposed to events (things that have already happened). Issue: Usage of "events" with two meanings in one sentence. This might be misleading since it seems to redefine the well-established term "event" just for this context. Suggested Fix: Use "incidents" instead: […] events such as […] are commands (things that need to happen) as opposed to incidents (things that have already happened).

Note from the Author or Editor:
clarified by changing term and next sentence.

Jørgen Lang  May 14, 2020  Nov 06, 2020
Printed, PDF
Page 201
last para, 1nd sentence

Original: […] is easily solved by leveraging persisted message queues […] Issue: AFAIK, usual term is "persistent message queue Possible fix: […] is easily solved by leveraging persistent message queues […]

Note from the Author or Editor:
fixed

Jørgen Lang  May 15, 2020  Nov 06, 2020
Printed, PDF
Page 269
3rd paragraph

Original: "Architects must discover and elucidate the architecture characteristics needed to support the domain and other eternal factors." Issue: Wouldn't that be great? Never-changing domains… ? My favourite typo in this book so far. ;) Fix: "Architects must discover and elucidate the architecture characteristics needed to support the domain and other external factors."

Jørgen Lang  May 29, 2020  Jun 12, 2020
Printed, PDF
Page 287
first sentence on page

Original: "The title of an ADR is usually numbered sequentially and contains a short phase…" Issue: Should probable "phrase" Fix: "The title of an ADR is usually numbered sequentially and contains a short phrase…"

Jørgen Lang  Jun 02, 2020  Jun 12, 2020
Printed, PDF
Page 287
last paragraph, 1st sentence + illustration above

Issue: The sentence "The link and history trail between ADRs 42 and 68 avoid the inevitable “what about using messaging?” question regarding ADR 68." is formatted as part of the quoted ADR status while it is actually part of the normal prose. Fix: Format the sentence as not being part of the quoted status entry for ADR 68.

Jørgen Lang  Jun 02, 2020  Jun 12, 2020
Printed, PDF
Page 328
first line

Original: “However, in the transaction from developer to architect, …“ Issue: Most likely "transition" instead of "transaction" Fix: "However, in the transition from developer to architect, …"

Jørgen Lang  Jun 10, 2020  Nov 06, 2020
Printed, PDF
Page 348
2nd last paragraph, 1st word

Orig: Phases such as “we must have zero downtime”… Issue: Missing "r" Fix: Phrases such as “we must have zero downtime”…

Jørgen Lang  Jun 15, 2020  Nov 06, 2020