Updates

Latest Tweet



What's New?

Check out for latest innovation, a computer based training video collection


Like this Page

UML for Database Design Review by H. Hemken

Needs a revision

I am halfway through this book, which was given to me by a design team member. I agree with a previous reviewer that this book is too long and has numerous opaque passages. It is a narrative of a presumably fictitious project, and must therefore be read from beginning to end. Given enough time, that would be OK, however my reading list for software engineering already has several books waiting in a holding pattern.

It is useful to compare this book with related works that readers might hope to complement their database design and implementation work. Database Programming with JDBC and Java (G. Reese, O'Reilly) is more concise and more practical to read one or a few chapters at a time, intercalated with other readings. It also includes mention of design patterns in the object oriented design of persistent objects, a serious omission in Naiburg and Maksimchuk. Reese does not delve much into database design proper, which is why one might want to have Naiburg and Maksimchuk handy. Unfortunately, they don't complement each other that well.

Building Object Applications that Work (Scott Ambler, Cambridge Univ. and SIGS Press) is a much better introduction to object oriented analysis and design, and provides a simple (though not necessarily ideal) means to persist objects to a database. If you are in a horrendous hurry to learn a way to do it, Ambler's book would be better. Beware: Scott Ambler is an opinionated guy.

The authors also introduce a few notational elements to the UML to distinguish business actors and use cases from their non-business counterparts. Oddly enough, these notations don't appear in Rational Rose, presumably one of the tools the authors use given that the book is part of the Booch Jacobson Rumbaugh series.

This book could be improved in a future edition by:
1) De-emphasizing the lengthy narrative of the example project
2) Avoiding UML notation that is not available in commonly used tools such as Rational Rose and Together ControlCenter
3) Detailed discussion of strategies for mapping design patterns for persistent objects to database design, and
4) Cleaning up the prose and removing lengthy and uninformative passages, some of which must have been written either at wee hours of the morning or with a Damoclean publishing deadline hanging over the authors' heads.

The book is useful, but neither a must-have nor a source of rapidly deployable knowledge.