Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
UML @ classroom : an introduction to object-oriented modeling
Seidl M., Scholz M., Huemer C., Kappel G., Springer Publishing Company, Incorporated, New York, NY, 2015. 206 pp. Type: Book (978-3-319127-41-5)
Date Reviewed: May 7 2015

I taught the unified modeling language (UML) as an integrated part of a BS and a BA degree for more than ten years [1]. This short book covers part of the material I taught. The UML was designed to be the standard graphical notation for describing requirements and object-oriented software. It is used in four different ways [2]. Analysts and designers can sketch ideas with it rapidly, informally, but with rigor. It can be used as a blueprint for a particular design ready for coding. It can, given a suitably tuned tool, be used to generate code directly. It is mostly used by developers for post hoc presentations to clients, managers, and professors.

This book has been used as a textbook for computer science students who have already mastered an object-oriented programming language. The first chapter motivates the use of the UML and introduces the key ideas of object-oriented software (classes, objects, encapsulation, messages, inheritance, and polymorphism). Students will be lost if they have not already encountered these ideas. The second chapter has a good history of UML and gives capsule summaries of all the diagram types. It ends with a list of the diagrams covered in the book. Chapter 3 is about use case diagrams. These diagrams organize requirements by focusing on the types of users and what they want to get out of a system. The chapter is thorough and covers most aspects of the diagrams and most common mistakes. It does not stress written use case descriptions. Worse, the numbering scheme the authors selected for alternative scenarios is ambiguous. This suggests that the authors do not understand that requirements analysis is about writing, not drawing. Chapter 4 describes class diagrams. These diagrams name and clarify the ideas implemented in a system. The chapter is pretty complete and accurate. However, I was entertained by Figure 4.2 that states that every lecture hall has a “Beamer.” I guess this should have been translated as “projector.” This chapter describes “visibility,” but most later diagrams in the book omit the “+,” “-,” and other similar symbols.

Chapter 5 is a good description of state diagrams: clear, correct, and complete. These diagrams allow a detailed analysis of how objects change. Chapter 6 covers sequence diagrams and mentions communication and timing diagrams. Sequence diagrams describe the sequence of messages between objects. Pages 109 and 110 mention the object “self.” This is nonstandard. An Active object is misdrawn with a single activation; indeed, activations are omitted in most diagrams. These little vertical boxes on the lifelines are visual representatives of the code that is executed when a message is passed or a function called. When omitted, the diagrams can be unclear (Figure 6.9 is an example). Figure 6.10 uses the “:” in a strange way to express equality. The standard uses a notation like this “register(.)=‘ok.’” Figure 6.30 omits “student=.”

Chapter 7 is about activity diagrams. Activity diagrams are flow charts with 21st century semantics. The chapter is complete and as far as I can see correct. Chapter 8 gives three case studies: a coffee machine, a student work submission system, and a stack. These examples hint at how the diagrams fit together. I prefer to give more guidance. The stack should have been described as a parameterized class. Figure 8.16 describes how a stack is popped. It shows an element destroying itself. In the UML, this should be the result of a message. Correcting this would make it clear that the design is buggy. Chapter 9 describes some other parts of the UML. Here, the symbol for a package is said to be like an index card; it is actually an image of a file folder.

The book ends with 56 references and a good index. The worst feature of this book is that it only covers the UML. Methodology is not discussed: what makes one model or design better than another? Further, process is mostly ignored. One sentence on page 179 recommends refining the model until “you have an exact specification of the system to be developed.” This is bad advice. One needs to select the most critical requirements and aim to have these analyzed, designed, coded, and tested first.

Notwithstanding the above faults, this a good academic UML book. It uses examples from college life. It doesn’t provide any exercises, key points, review questions, or other pedagogical materials. But this is also true of two books that I prefer. Fowler [3] covers more diagrams and spends some time on process. Larman [4] is a better guide to the development of robust object-oriented software. It uses the UML and the unified process, but stresses the importance of use case descriptions (not diagrams) and patterns of good design.

Reviewer:  Richard Botting Review #: CR143424 (1508-0654)
1) Concepcion, A. I.; Botting, R. J.; Scroggins, D. D. ROOT project: an integration of an OOA/D methodology in the computer science curriculum. In Sci/ISAS2000. SCI, 2000, 401–405.
2) Farquhar, C. MS Thesis: An empirical study: usage of the unified modeling language in the Bachelor of Science and Master of Science degree programs at California State University, San Bernardino, March 2005.
3) Fowler, M. UML distilled (3rd ed.): a brief guide to the standard object modelling language. Pearson Education, Boston, MA, 2004.
4) Larman, C. Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development (3rd ed.). Prentice Hall, Upper Saddle River, NJ, 2008.
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Object-Oriented Design Methods (D.2.2 ... )
 
 
UML (D.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Object-Oriented Design Methods": Date
Understanding UML: the developer’s guide
Harmon P., Watson M., Morgan Kaufmann Publishers Inc., San Francisco, CA, 1998. Type: Book (9781558604650)
May 1 1999
Advanced object-oriented analysis and design using UML
Odell J., Cambridge University Press, New York, NY, 1998. Type: Book (9780521648196)
Oct 1 1998
Object modeling and design strategies
Gossain S., Cambridge University Press, New York, NY, 1998. Type: Book (9780521648226)
Oct 1 1998
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy