This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Trying to develop a Java application without first developing a model can lead to a poorly designed application that fails to fulfill the needs of users, lacks reusability, and is difficult to maintain. The Unified Modeling Language (UML) was developed as an open standard notation to assist developers in modeling OO applications. As enterprise developers we are finding that we are expected to be able to design applications using the UML, explain UML diagrams to our users, or be able to develop applications from UML diagrams. The UML can be difficult and confusing to use and many of the books available fail to clearly explain the proper use of this development tool. "Enterprise Java with UML", by CT Arrington is an excellent introduction into the complexities of the UML. Arrington takes us through the entire lifecycle of a sample EJB application (a timecard system) from requirements gathering to implementation. In alternating chapters he explains the use of the UML (use cases!, sequence diagrams, class diagrams, etc.) for that step in the development cycle and then uses what he just explained to develop the timecard system. Along the way we make technology decisions, develop our design, and ultimately convert our design into actual code. By the time we are done the UML has become a new tool in our toolbox. Arrington has done a very good job explaining the UML although some familiarity with UML notation (or at least a handy manual) would be helpful. This is a must have book for any Java developer wishing to learn the UML.(Thomas Paul - Bartender, Feb 2001)
<pre>Author/s : C.T.Arrington, Syed H. Rayhan Publisher : John Wiley & Sons Category :Design Patterns, UML, and Refactoring Review by : Thomas Paul Rating : 7 horseshoes</pre> This book takes you through the development of an application from proposal to implementation. In alternating chapters the authors explain the use of UML for a particular step in the development lifecycle and then demonstrate what they just explained to develop a sample timecard system. The best part of the book, which is not significantly different than the first edition, is the first half in which the authors discuss requirements gathering and object oriented analysis. The book is worth the price for this first part alone. The second half of the book has been expanded to discuss new J2EE technologies. The chapters on evaluating technologies are good as far as discussing how to evaluate technologies but the actual analysis is weak as they ignore candidate technologies such as Struts in favor of their own homegrown HTML production framework. They also fail to explain why EJBs are a better choice for their sample application than simply using Servlets/JSPs/JDBC. The final section on design gets bogged down with too many pages of code listings and not enough explanations for the code. Arrington has done a very good job explaining UML although some familiarity with UML notation (or at least a handy manual) would be helpful. If you already own the first edition then you can ignore this edition. If you don't own it then you will definitely want to read this book. This is a must have book for any Java architect/developer doing OOAD.