Errata

Learning UML 2.0

Errata for Learning UML 2.0

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.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

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

Version Location Description Submitted by Date submitted
Printed Page back cover
3rd paragraph

Back cover (and online full description) references http://www.learninguml2.com/ for additional information, including exercises. This website appears defunct.

Anonymous  Oct 09, 2008 
Other Digital Version ?
Example 5-4 caption

"play()operation" should read "store()operation"

Anonymous  Sep 03, 2010 
PDF Page ?
About the Authors

A group of gorillas is a band, not a troop.

The sentence "despite its reputation..." implies that gorillas are inanimate objects with no gender. It might have been better to have written "despite their reputation". Otherwise it's good that the authors took the trouble to point out the dangers which gorillas are facing.

Also, all the index apart from the first page is missing from the PDF available for download from the Safari site.

Anonymous  Feb 26, 2012 
Printed Page 2
Tip

"i.e" should read "e.g.", that is "(ie. banking)" should read "(e.g. banking)" as banking is not the only specific domain in which UML can be used, it is only an example.

Anonymous   
2
.

"I.e" means "that is", not "for example.

This should read "e.g. banking".

*Please* find a proof-reader for your books before you publish them! It's worth spending a few hundred dollars to do it properly.

Anonymous  Feb 26, 2012 
Printed Page 9
Figure 1-6

I would argue that the class model shown has still not removed the ambiguity about what a Thing is. There is still nothing preventing it from being an Elephant.

Anonymous  Jan 16, 2013 
14
1st paragraph under "Views of Your Model"

"to help you show you how each diagram" should read "to help show you how each diagram"

Ben Langton  Mar 16, 2010 
Printed Page 17
1st paragraph

The word "guillemots" should be changed to "guillemets". A "guillemot" is a type of bird, whereas a "guillemet" is a type of punctuation mark.

Anonymous  May 21, 2010 
Printed Page 18
Figure 1-13

The last sentence of Section 1.7.2.4, Paragraph 3 reads

"The tagged value note is then attached to the stereotyped element using a dotted
line with a circle at the element end, as shown in Figure 1-13. (This example was
adapted from UML 2.0 in a Nutshell [O'Reilly].)"

But Figure 1-13 does not indicate the circle at the element end of the dotted
line. There is an inconsistency here with what the text says and what the diagram
represents.

Anonymous   
Printed Page 18
Figure 1-13

The text say s "using a dotted line with a circle at the element end, as shown in Figure 1-13." There is no circle at the element end in the figure.

Anonymous  Aug 19, 2010 
Printed Page 30
Box "How Many Use Cases Should Your Model Have?"

The second line of the box contains

"depends on the of the jobs"

where a word seems to be missing.

Anonymous   
Printed Page 62
Figure 3-27

The input collection is shown as action and not as data object

Anonymous  Mar 09, 2017 
Printed Page 68
Figure 4-6


Words on figure are in the following order:
Public, Protected, Package, Private
should be:
Public, Package, Protected, Private


Anonymous   
Printed Page 73
Example 4-1

According to the BlogAccount class in Figure 4-11 (pg 72), the +publicURL attribute has public visibility (+), and the -entries attribute has private visibility (-).

But in the corresponding Java implementation in Example 4-1 (pg 73), the visibilities have been reversed between these attributes. In other words:

"private URL publicURL;" should be "URL publicURL;"
"BlogEntries[] entries;" should be "private BlogEntries[] entries;"

Anonymous  Feb 24, 2010 
Printed, PDF Page 73
Example 4-1

The codeblock reads:

private URL publicURL;
// The single attribute by association, given the name 'entries'
BlogEntries[] entries;

but according to the picture on page 72 it should read:

public URL publicURL;
private BlogEntries[] entries;

Kay Schüffler  Mar 05, 2012 
Printed Page 74
Figure 4-12

The last sentence of the first paragraph on page 75 states "If you want to specify that duplicates are allowed, then you need to use the not unique property, as used on the comments attribute in the BlogEntry class." I believe this is referring to Figure 4-12 on page 74 which has no such attribute. It only has the "ordered" attribute. I think 4-12 needs to add a 2nd attribute to the comments attribute called "not unique".

Anonymous   
Printed Page 75
4th paragraph

The first sentence of the fourth paragraph on page 75 says "...different types attribute properties", but should say "...different types of attributes properties".

Anonymous  Feb 25, 2010 
Printed Page 75
4th paragraph

The first sentence of the fourth paragraph on page 75 says "...different types attribute properties", but should say "...different types of attribute properties".

Anonymous  Feb 25, 2010 
Printed Page 81
Figure 4-24

The text below the figure mentions the "static accountController attribute". This should be the "static accountCounter attribute".

Anonymous  Feb 26, 2010 
Printed Page 87
On the second line of the BlogEntry Class

The class is missing an attribute entry for the BlogEntry Class. The line under the attribute 'name' should contain the following:

private String contents;

Anonymous   
Printed Page 93
Example 5-4 caption

"...implementation of the play() operation..." should read "...implementation of the
store(...) and retrieve(...) operations..."

Anonymous   
Printed Page 97
Example 5-8

The last Java code comment in example 5-8 pertains to a "Guitarist" class:

// ... Implementations of the other operations on the Guitarist class ...

But there does not appear to be a "Guitarist" class involved in this example. Perhaps the comment should instead pertain to the "SMTPMailSystem" class:

// ... Implementations of the other operations on the SMTPMailSystem class ...

Anonymous  Mar 11, 2010 
Printed Page 104
Figure 6-6

The caption for figure 6-6 says:
"To play some tunes..."
which seems to pertain to a "musical instrument" example. To be relevant to the "CMS" example, it should probably be changed to something like:
"To display a blog entry..."

Anonymous  Mar 17, 2010 
Printed Page 109
4th paragraph

"...can be named in number of different ways..."
should be
"...can be named in a number of different ways..."

Anonymous  Mar 19, 2010 
Printed Page 117
Example 7-2

In example 7-2, the MessageReceiver class implements the "Runable" interface. This should be the "Runnable" interface.

Anonymous  Mar 23, 2010 
Printed Page 117
Example 7-2

The MessageReceiver class contains an "operation1" operation. In keeping with figure 7-10 (pg 117), and with the comments in the MessageReceiver class' "run" operation, the "operation1" operation should probably be renamed to "foo".

Anonymous  Mar 23, 2010 
Printed Page 117
Example 7-2

The Java implementation in example 7-2 attempts to demonstrate the invocation of an asynchronous message. Although the resulting behavior of the implementation is as desired, the implementation is incorrect.

The error is that the asynchronous behavior has been implemented in the MessageReceiver class itself. The MessageCaller object *synchronously* invokes the MessageReceiver object's operation - that is, the MessageCaller object waits until the MessageReceiver object's operation returns; the MessageReceiver object in turn *asynchronously* invokes another operation. A better implementation would be for the MessageCaller class to implement the asynchronous behavior itself. In this way, the caller does not need to know implementation details of the receiver; this leaves the caller free to invoke the operation either synchronously or asynchronously as it chooses, independently of the receiver's implementation.

In light of this, example 7-2 might be rewritten as follows. (Certain typographical errors have been left in the example for the sake of comparison to the original example.)

public class MessageReceiver {

public void operation1() {
// This is where the work for the foo() message
// invocation will be executed.
}
}

public class MessageCaller implements Runable
{
private MessageReceiver messageReceiver;

// Other Methods and Attributes of the class are declared here

// The messageReceiver attribute is initialized
// elsewhere in the class.

public void doSomething(String[] args) {
// Trigger off the thread

Thread fooWorker = new Thread(this);
fooWorker.start(); // This call starts a new thread, calling
// the run() method below

// As soon as the thread has been started, the call to
// fooWorker.start() returns, allowing the MessageCaller
// object to immediately carry on with the rest of its work.
}

public void run() {
// The MessageCaller invokes the operation1() operation

this.messageReceiver.operation1()
}
}

Anonymous  Mar 23, 2010 
Printed Page 126
First 3 words on the page

The first three words on the page are "In Figure 7-18", and should be changed to "In Figure 7-17". The rest of the sentence makes it clear that it is referring to figure 7-17 that shows the clickSubmit() message as a synchronous message. Figure 7-18 shows the results of converting the clickSubmit() message to an asynchronous message.

iberia99  Oct 21, 2012 
Printed Page 127
first paragraph

The last sentence in the paragraph says "...the result of the fragments guard condition parameter."
This should be "...the result of the fragment's guard condition parameter."
(The apostrophe is missing.)

Anonymous  Mar 25, 2010 
Printed Page 128
Figure 7-20

The ref sequence fragment "Select Account Type" should read, "Select Blog Account Type"

Anonymous   
Printed Page 130
Table 7-4

The last sentence describing the "region" type says:
"Has similarities synchronized blocks and object locks in Java."
This should be:
"Has similarities to synchronized blocks and object locks in Java."
(The word "to" is missing.)

Anonymous  Mar 25, 2010 
Printed Page 133
Figure 8-3

In the diagram, the message between participant2 and participant3 is called "message2()", but in the text below the diagram, it is called "nestedmessage2()". One of them should be changed to match the other one.

Anonymous  Mar 26, 2010 
Printed Page 152
1st paragraph

In the last sentence, "...see how participant's current state..." should be "...see how a participant's current state...". (The word "a" is missing.)

Anonymous  Mar 31, 2010 
Printed Page 161
Figure 9-17

The text in the top half of the figure ("The regular timing diagram notation...") should probably be put into a Note, same as the text in the bottom half of the figure was.

Anonymous  Apr 01, 2010 
Printed Page 163
4th paragraph

The first sentence says "...understand a interaction...", but should be changed to say "...understand an interaction...". (Change the word "a" to "an".)

Anonymous  Apr 05, 2010 
Printed Page 168
Figure 10-5

The caption below the figure says:
"Some interactions to are best modeled..."
It should say:
"Some interactions are best modeled..."
(The word "to" should be removed.)

Anonymous  Apr 05, 2010 
Printed Page 192
4

The paragraph states "you can also show a component's realizing classes by drawing them outside the component with a dependency arrow".

Instead of a dependency arrow, a realization arrow should be used. This is shown on https://www.uml-diagrams.org/dependency.html and it also is more consistent with similar cases (e.g., a class realizing an interface).

Anonymous  Jul 21, 2019 
Printed Page 244
2nd paragraph

"With other languages, you have to either implement constraint handing yourself or use a package such as iContract for Java."

In the above sentence, the word "handing" should probably be "handling". (The letter "l" is missing.)

Anonymous  May 18, 2010 
Printed Page 246
3rd paragraph

The word "guillemots" should be changed to "guillemets". A "guillemot" is a type of bird, whereas a "guillemet" is a type of punctuation mark.

Anonymous  May 21, 2010 
Printed Page 247
Figures B-4 and B-5 with others following.

Figures B-4, B-5, B-6 and B-8 have examples of Tagged Values. However in each of
them the dashed line from the folded rectangle does not end in a circle at the
element as was specified in the final paragraph of p17 and has been acknowledged as
an existing error in figure 1-13.

Anonymous   
Printed Page 249
Figure B-6

Enumeration "EncodingService" should be "EncodingStyle". This error can be found in Figure B-6 in Appendix B.

Anonymous  Jul 09, 2009 
Printed Page 250
In the note at the top of the page

The following is a comma splice:
"This is actually not the case, profiles are a safe and controlled way..."
One possible solution would be to separate it into two sentences:
"This is actually not the case. Profiles are a safe and controlled way..."

Anonymous  May 26, 2010 
Printed Page 255
Last paragraph

"...however, in an act of excellent foresight, the group organized its first meeting targeted at creating a standard modeling language Hosted by Tandem Computer in San Jose, California, almost every major methodologist or representative of every major methodologist made it to that meeting."
There seems to be a period missing between the words "language" and "Hosted".

Anonymous  May 27, 2010 
Printed Page 259
"Symbols" section

"Guillemots" should be "guillemets".

Anonymous  May 28, 2010 
PDF, ePub, Mobi Page 10672
text

Typos:

Suggested
"all guitarists are musicians." should be "all musicians are guitarists ?"

"and 5-17 and" should be "and 5-17"

"Guitarist" should be "SMTPMailSystem"

"Example 6-1" should be "example 8.1"

"pariticipant" should be "participant"

Anonymous  Sep 18, 2019