Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Object-oriented analysis and design
Ramnath S., Dathan B., Springer Publishing Company, Incorporated, New York, NY, 2011. 450 pp. Type: Book
Date Reviewed: Dec 15 2011

Some areas of computer science, such as operating systems, programming languages, and database systems, have achieved solid consensus about their topics and (largely) their pedagogy; textbooks in these areas reflect this consensus. The field of object-oriented analysis and design lacks such consensus, and this is likewise reflected in textbooks. With regard to topics, some texts present particular methods while some try to be more general; most texts discuss patterns and architectures, though some focus almost exclusively on them while others barely mention them. Some texts cover the fundamentals of object-oriented programming while others assume this knowledge; everyone uses unified modeling language (UML), but some books present it in detail while others simply employ it without explanation.

Dathan and Ramnath’s book begins with an extensive introduction to object-oriented concepts that comprises a quarter of the book. The discussion relies on extensive examples in Java, which are explained in considerable detail, and UML, which is mostly used without explanation. It appears that the authors expect students to be learning Java while they are working through this material.

The next portion of the book, which is also about a quarter of the text, begins by introducing design patterns, and then runs through a fairly standard process of object-oriented analysis and design of a library circulation system. It begins with use cases and conceptual models for analysis, followed by a design documented with sequence diagrams and implementation class models, followed by an implementation illustrated with many Java code snippets. A few more patterns and Java facilities are introduced along the way, and refactoring is introduced at the end as a means of criticizing and improving object-oriented designs.

The final half of the book covers various advanced topics, with chapters on inheritance, finite-state machine modeling, user interface implementation using the model-view-controller (MVC) architecture, and designing and implementing distributed systems. These chapters discuss more patterns and Java (including graphical user interface (GUI) programming, remote method invocation (RMI), and servlets).

In summary, with respect to the choice of topics, the book does not present a particular analysis and design method, though it uses standard techniques; patterns are discussed in detail, but architectures hardly at all (except for MVC). The fundamentals of object-oriented programming and Java are discussed in considerable detail; UML is used but not explained.

Textbooks also vary considerably in their pedagogy: some emphasize guidelines, principles, and rules-of-thumb, with examples (often small) to illustrate them; others minimize abstract discussion and focus on case studies to illustrate good design practices. This book is solidly in the latter camp. The library circulation system example is presented in detail in Part 2 of the book, with thorough discussion of all major design decisions. There is also a chapter on finite-state machine modeling, which analyzes, designs, and implements a microwave oven controller. The presentation of these systems does not simply illustrate a separate discussion of design--they embody the discussion and are inextricable from it. It would be difficult to teach a course based on this book without basing it on the case studies as well.

The book is very well written and well manufactured. The discussion of design decisions and their resolution is especially good. However, the book also has a few weaknesses. There is an appendix about Java programming that is too short to help novices and too incomplete to help experts. The index is only five pages long and quite inadequate. Each chapter has projects and exercises, but the projects are often too ambitious and the exercises too few.

This book fills a niche in the range of texts covering object-oriented analysis and design: it is for a course teaching general object-oriented analysis and design techniques using Java that emphasizes patterns and is based on extensive case studies. Instructors wishing to emphasize different topics or teach in a different way will find other texts more appropriate.

Reviewer:  Christopher Fox Review #: CR139681 (1205-0434)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Object-Oriented Design Methods (D.2.2 ... )
 
 
Java (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