This document contains corrections to the book: R.J.A. Buhr, R.S. Casselman, "Use Case Maps for Object-Oriented Systems", Prentice Hall, 1996. These follow from the use of this book as a textbook in a graduate course at Carleton University beginning Fall 95 and will be continually updated as new ones come to light. Corrections fix errors. Clarifications are in a separate document (in file ucmfoos2.txt). For clarity, the errors are listed under the headings SUBSTANTIVE and COSMETIC. =============================================================== SUBSTANTIVE ERRORS These are errors that are serious enough to cause confusion. Preface- p(xxiii), right hand diagram - Add the annotation "(m:1)" to the synchronize bar and the annotation "(1:m)" to the desynchronize bar. Chapter 2- p26, Fig2.14 - Relabel the timeline on the far right "Op2" instead of "Op1". p29, 10th line down - Change " responsibility (3)" to "responsibility (2)". Chapter 3- p53, line just above Fig3.2 - Replace "(c)" by "(d)". Chap 5- p83, 4th line up from bottom - Replace second "producer" by "consumer". Chap 6- p106, Fig6.5 - Add a CreateText subclass of class Tool. p114, Fig6.12 - Change the move-delete arrow from the CutFigure path to the Figures pool into an aliased move from the pool to the path, touching the path just before point D4. Change responsibility D4 to read "get all selected figures". Change responsibility D5 to read "mark all selected figures deleted". p115, Fig 6.13 - Change the responsibilities C1 to C4 of the SelectFigure path to the ones for that path in Fig6.12 in both the map and the list of responsibilities. Change responsibility A8 of the LoadDrawing path from "update" to "notify" ("update" was an accidentally unfortunate choice of term, because update of the view is actually performed at A10); see also a separate clarification item about this responsibility. p118, Fig6.15 - Change the rightmost subclass of the Tool class from "ShuffleDownTool" to "FigureCreationTool". Chap 7- p132, paragraph above the bottom diagram, first sentence - replace "context" with "visual form of the diagram", replace "number to be synchronized" by "synchronization", and add at the end of the sentence "with (n:m) to indicate n going in and m coming out" p132, diagram at the bottom of the page - Replace the annotation "(2)" by "(2:1)" Chap 8- p154, Fig8.4(d) - Change this diagram by deleting the process stack and replacing it with a pool off to one side from which processes are obtained to perform the responsibilities. The idea is that the pool size would be adjusted to achieve the desired level of concurrency. The idea of dynamically assigning responsibilities to processes is not conveyed by superimposing paths on a fixed stack of processes. p155, point (d) - Change to reflect changed Fig8.4(d) as follows: "Some successful solutions in industrial practice use an approach where an interrupt-driven executive determines the responsibilities and queues them up for a pool of processes. The pool size would be adjusted to achieve the desired level of concurrency (two processes might be enough here)." Chap 10- p191-195, Fig10.2-10.4 - Change the arrow in L that points to the "hrdwr" box in part (b) of these figures so that it comes from the the transmission buffer object, not the interface of L, reflecting the commitment made in part (a) that the object both performs and controls responsibility 3. p192, 4th, 5th, and 6th bullets - Change to read: "- Transmission path passes through responsibility 3: The tx process calls the L team at 3, passing the packet data as a parameter; the call is chained through to the buffer object to store the packet and on through to the hardware to start interrupt-driven transmission. -Transmission path ends: Control returns to the tx process and interrupt-driven transmission continues independently at a level of detail below the map. From the map perspective, the path ends when interrrupt-driven transmission starts. - Reception path starts: Interrupt-driven reception fills the buffer and then the ISR sends a signal to the rx process. From the map perspective the path starts when interrupt-driven reception ends." Chap 11- p224, Fig11.8 and p231, Fig 11.12, use case maps on the left - Reverse the direction of the topmost move arrow. =============================================================== COSMETIC ERRORS These are errors that are so minor or obvious that they are unlikely to cause confusion. Chapter 2- p22, 2nd-last sentence, before "one" - Delete "the". p24, 3rd line below figure, before "interactions" - Delete "the". Chapter 3- p36, second sketch, righthand caption - replace "bap" with "map". Chapter 4- p57, section 4.1, 2nd paragraph, Ist sentence - Change second "in" to "is". p62 , Fig4.3, correct caption "Forward Engineerin" by adding the missing "g". Chap 5- p89, Fig5.13 - Change last sentence of the CAUTION note to read "...it is useful...". Chap 6- p101, Fig6.1 - Add a lightly shaded horizontal line between Detailed Design and Implementation. p110 , Figure 6.9 - Change "TooModel" to "ToolModel" in ToolMVC Team. p110, 7th line up from bottom - Delete "a" after "outside". p112, Fig6.10, in responsibility A6 - Replace "timethread" by "use case path". p116, paragraph at top - Delete the entire paragraph (it duplicates three sentences at the end of the last paragraph on p114). Chap 7 - p140, last paragraph, first sentence - Change "regard" to "regarded". p140, last paragraph, third sentence - Change "This" to "The". Chap 8 - p155, fourth line from the bottom of point (c) - Put a space after the period following "stimuli". Chap 10 - p201, under Transmission, last sentence under L - Insert "could" before "overrun". Chap 11- p217, 2nd and 3rd paragraphs - Reverse the order of the names "Johnson" and "Helm" in the two author lists.