Home > Store > Programming > Java

larger cover

Add To My Wish List

UML for Java™ Programmers

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Reviews
  • Sample Content

Product Author Bios

ROBERT C. MARTIN is President of Object Mentor Inc., a leading consultancy in object-oriented design, patterns, UML, agile methodologies, and eXtreme programming. He authored the JOLT Award-winning publication Agile Software Development: Principles, Patterns, and Practices (Prentice Hall) and the best-selling Designing Object-Oriented C++ Applications Using the Booch Method (Prentice Hall). He edited Pattern Languages of Program Design 3 (Addison-Wesley), edited More C++ Gems, and co-authored XP in Practice with James Newkirk (Addison-Wesley). A well-known speaker at international developer's events, Martin edited the C++ Report for four years.

UML for Java Programmers

Robert C. Martin

All the UML Java developers need to know

You don't use UML in a vacuum: you use it to build software with a specific programming language. If that language is Java, you need UML for Java Programmers. In this book, one of the world's leading object design experts becomes your personal coach on UML 1&2 techniques and best practices for the Java environment.

Robert C. Martin illuminates every UML 1&2 feature and concept directly relevant to writing better Java software--and ignores features irrelevant to Java developers. He explains what problems UML can and can't solve, how Java and UML map to each other, and exactly how and when to apply those mappings.

  • Pragmatic coverage of UML as a working tool for Java developers
  • Shows Java code alongside corresponding UML diagrams
  • Covers every UML diagram relevant to Java programmers, including class, object, sequence, collaboration, and state diagrams
  • Introduces dX, a lightweight, powerfully productive RUP & XP-derived process for successful software modeling
  • Includes a detailed, start-to-finish case study: remote service client, server, sockets, and tests

Customer Reviews

7 of 8 people found the following review helpful
4.0 out of 5 stars Good book, sprinkle with salt, May 17, 2005
By 
David Bock "javaguy" (Hamilton, VA USA) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: UML for Java¿ Programmers (Paperback)
I just led a study group of 15 people reading this book. The book is very down-to-earth with a lot of practical advice for how a group of programmers can effectively use UML to aid in communication of ideas across a team.

It only covers 5 of the 11 or so UML diagram types, but it covers the ones that will really be used by java programmers day-to-day, in design documents, whiteboards, etc. For each it talks about real world, practical approaches on how to use them to communicate ideas.

Bob Martin is an 'Agile' guy, and it really comes across in this book. A lot of his arguments come down to "A lot of the pomp and circumstance surrounding UML is pretty useless, except when it isn't", and while he tries to instill when that will be, that kind of knowledge reaslly only comes with experience. He also advocates that the diagrams should be 'lightweight enough to be thrown away', which is an opinion that can rub a lot of people the wrong way, is a very valid... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


28 of 38 people found the following review helpful
2.0 out of 5 stars "Why I Hate UML" by Robert C. Martin, July 10, 2003
By 
Thomas Paul (Plainview, NY USA) - See all my reviews
(VINE VOICE)    (REAL NAME)   
This review is from: UML for Java¿ Programmers (Paperback)
This book could have easily been titled, "Bob Martin hates UML". Actually, that it isn't quite fair. Only the first part should have that title. The second section should be named, "UML is boring so let's design an object oriented coffee pot". The last section could be titled, "I don't have anything else to say so let me pad the book with 50 pages of Java code".

As far as UML goes, the book covers five diagrams. The author's advice can be summed up as "don't use UML except on the back of a napkin that you immediately throw away". Use cases are reduced to four pages and he advises against getting any real details. He likes sequence diagrams as long as they are so trivial that they impart no real information. He gives an example of a "too complex" diagram that in half of a page clearly and simply shows the inter-relationship between six classes. Trying to understand this same relationship with code could take hours.

The... Read more

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


27 of 38 people found the following review helpful
1.0 out of 5 stars Uncle Bob's advice could be harmful to your career, June 14, 2004
By 
This review is from: UML for Java¿ Programmers (Paperback)
Before you buy this book, consider your career, what's happening in technology. The advice this book offers is from a programmer-only point of view that may work quite well for small programmer teams, but not scale in the world I'm in--namely aerospace with complex comm protocols, embedded systems, multi-million lines of code for ground systems, hundreds of programmers, testers etc. Many of the premises the book is based on are not true. 1. The long pole in the tent is not the programming but the maintenance. It's when Uncle Bob has long left and the poor guy who has to fix the bugs left behind. Although Bob, who advocates throwing out UML regularly, can recall the key diagrams from 5 years ago, that certainly does my project little good. The architecture begins to rot because of incompleteness. 2. Uncle Bob and most other hacker-oriented programmers think UML is only for communicating to other people. Thus those who demand precision and detail are seen as UML police, creating a... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 14 customer reviews...

Online Sample Chapter

UML Class Diagrams for Java Programmers

Table of Contents



Figures.


Listings.


Forward.


Preface.


1. Overview of UML for Java™ Programmers.

Diagram Types. Class diagrams. Object diagrams. Sequence diagrams. Collaboration diagrams. State diagrams. Conclusion. Notes.



2. Working with Diagrams.

Why Model? Why build models of software? Why should we build comprehensive designs before coding? Making Effective use of UML. Communicating with others. Road maps. Back-end documentation. What to keep and what to throw away. Iterative Refinement. Behavior first. Check the structure. Envisioning the code. Evolution of diagrams. Minimalism. When and How to Draw Diagrams. When to draw diagrams and when to stop. CASE tools. But what about documentation? And Javadocs™? Conclusion.



3. Class Diagrams.

The Basics. Classes. Association. Inheritance. An Example Class Diagram. The Details. Class stereotypes. Abstract classes. Properties. Aggregation. Composition. Multiplicity. Association stereotypes. Inner classes. Anonymous inner classes. Association classes. Association qualifiers. Conclusion. Notes.



4. Sequence Diagrams.

The Basics. Objects, lifelines, messages, and other odds and ends. Creation and destruction. Simple loops. Cases and scenarios. Advanced Concepts. Loops and conditions. Messages that take time. Asynchronous messages. Multiple threads. Active objects. Sending messages to interfaces. Conclusion.



5. Use Cases.

Writing Use Cases. What is a use case? The primary course. Alternate courses. What else? Use Case Diagrams. System boundary diagram. Use case relationships. Conclusion.



6. Principles of OOD.

Design Quality. Design smells. Dependency management. The Single Responsibility Principle (SRP). The Open.Closed Principle (OCP). The Liskov Substitution Principle (LSP). The Dependency Inversion Principle (DIP). The Interface Segregation Principle (ISP). Conclusion. Notes.



7. The Practices: dX.

Iterative Development. The initial exploration. Estimating the features. Spikes. Planning. Planning releases. Planning iterations. The midpoint. Velocity feedback. Organizing the Iterations into Management Phases. What's in an Iteration? Developing in pairs. Acceptance tests. Unit tests. Refactoring. Open office. Continual integration. Conclusion. Notes.



8. Packages.

Java Packages. Packages. Dependencies. Binary Components — .jar Files. Principles of Package Design. The Release/Reuse Equivalency Principle (REP). The Common Closure Principle (CCP). The Common Reuse Principle (CRP). The Acyclic Dependencies Principle (ADP). The Stable Dependencies Principle (SDP). The Stable Abstractions Principle (SAP). Conclusion. Notes.



9. Object Diagrams.

A Snapshot in Time. Active Objects. Conclusion.



10. State Diagrams.

The Basics. Special events. Superstates. Initial and final pseudostates. Using FSM Diagrams. SMC. ICE: A case study. Conclusion.



11. Heuristics and Coffee.

The Mark IV Special Coffee Maker. A challenge. A common, but hideous, coffee maker solution. Missing methods. Vapor classes. Imaginary abstraction. God classes. A Coffee Maker Solution. Crossed wires. The coffee maker user interface. Use Case 1: User pushes brew button. Use Case 2: Containment vessel not ready. Use Case 3: Brewing complete. Use Case 4: Coffee all gone. Implementing the abstract model. Use Case 1: User pushes Brew button. Implementing the isReady() functions. Implementing the start() functions. How does M4UserInterface.checkButton get called? Completing the Coffee Maker. The benefits of this design. How did I really come up with this design? OOverkill. Notes.



12. SMC Remote Service: Case Study.

Caveat Emptor. Unit Tests. The SMCRemote System. SMCRemoteClient. SMCRemoteClient Command Line. SMCRemote Communication Protocols. SMCRemoteClient. The Loggers. The Remote Sessions. RemoteSessionBase. RemoteRegistrar. RemoteCompiler. FileCarrier. SMCRemoteClient Conclusion. SMCRemoteServer. SocketService. SMCRemoteService. SMCRemoteServer. ServerSession. Three-Level FSM. UserRepository. OReillyEmailSender. PasswordGenerator. Conclusion. Tests for SMCRemoteClient. Tests for SocketService. Tests for SMCRemoteServer. Other Tests. ServerController (SMC Generated). Notes.



index.

Downloadable Sample Chapter

Download the Sample Chapter related to this title.

Index

Download the Index file related to this title.

 
Buy

Book  $44.99  $35.99

Usually ships in 24 hours.

This book includes free shipping!

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.