UML for Java Programmers (Robert C. Martin Series) / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $9.41
Usually ships in 1-2 business days
(Save 79%)
Other sellers (Paperback)
  • All (14) from $9.41   
  • New (6) from $27.34   
  • Used (8) from $9.41   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$27.34
Seller since 2008

Feedback rating:

(90)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
2003 Paperback New Ships Fast! Satisfaction Guaranteed!

Ships from: Skokie, IL

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$28.48
Seller since 2008

Feedback rating:

(169)

Condition: New
0131428489 BRAND NEW NEVER USED IN STOCK 125,000+ HAPPY CUSTOMERS SHIP EVERY DAY WITH FREE TRACKING NUMBER

Ships from: fallbrook, CA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$35.41
Seller since 2008

Feedback rating:

(17544)

Condition: New
Brand New, Perfect Condition, Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$35.42
Seller since 2007

Feedback rating:

(23362)

Condition: New
BRAND NEW

Ships from: Avenel, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$56.00
Seller since 2010

Feedback rating:

(7)

Condition: New
5-27-03 other 1 BRAND NEW! ONLY Expedited orders are shipped with tracking number! *WE DO NOT SHIP TO PO BOX* Please allow up to 14 days delivery for order with standard ... shipping. SHIPPED FROM MULTIPLE LOCATIONS. Read more Show Less

Ships from: San Jose, CA

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$61.76
Seller since 2014

Feedback rating:

(2)

Condition: New
New

Ships from: Idyllwild, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

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
Read More Show Less

Product Details

  • ISBN-13: 9780131428485
  • Publisher: Prentice Hall
  • Publication date: 5/22/2003
  • Series: Robert C. Martin Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 249
  • Product dimensions: 6.92 (w) x 8.97 (h) x 0.78 (d)

Meet the Author

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.

Read More Show Less

Read an Excerpt

Preface

It was 1991 when I got my first copy of Booch's classic Object Oriented Design with Applications (first edition). I had learned several OO languages by then, including C++ and Smalltalk. I was absolutely thrilled by the concept of Booch's notation. Those clouds! Those relationships! The message passing diagrams! As a software designer it was just what I needed!

I also needed a tool to draw the diagrams. So I started writing a CASE tool in Think-C for the Macintosh. I remember spending a lot of time getting the cloud icon to look just right. Though I never finished that CASE tool, one artifact of it remains. The cloud icon I created has followed me from computer to computer, from Macintosh to Windows, and has been the source of all the cloud icons I have ever drawn in any book or article.

I remember the incredible day that my office partner, Billy Vogel, was talking on the phone to a head-hunter. He looked over at me and said: "Uncle Bob, I think you should take this call." The recruiter was looking for consultants to work at Rational, with Grady Booch, on a CASE tool to draw Booch Diagrams! How could such luck drop right into my lap?

A dozen years have passed. I still have my original copy of Booch's book. It's a bit frayed and dog-eared, but the book still has the power to evoke echoes of the same old thrills.

Today, of course, we use UML — the one-third offspring of Booch's notation. UML is a powerful and comprehensive notation, far grander in its sweep and scope than Booch's was. Whereas Booch's notation was good for drawing pictures of software, UML is apparently good for creating models of just about anything you can imagine — or so say some of its pundits. As grand and all-encompassing as UML may be, I find that a reasonable subset is all I need for drawing pictures of software. The same kind of pictures I used to create with Booch's notation.This book is about that subset, and about those pictures. This book takes the vast richness of UML 2.0 and boils it down to the essence that every programmer needs in order to draw pictures of his, or her, software designs. This book reduces the panoply of UML widgets, icons, diagrams, relationships, and arrowheads, into a simple suite of tools that Java programmers can use to record their design decisions.

Make no mistake about it. This book will not teach you everything about UML. But if you are a Java programmer, it will teach you what you need to know.

Read More Show Less

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.

Read More Show Less

Preface

Preface

It was 1991 when I got my first copy of Booch's classic Object Oriented Design with Applications (first edition). I had learned several OO languages by then, including C++ and Smalltalk. I was absolutely thrilled by the concept of Booch's notation. Those clouds! Those relationships! The message passing diagrams! As a software designer it was just what I needed!

I also needed a tool to draw the diagrams. So I started writing a CASE tool in Think-C for the Macintosh. I remember spending a lot of time getting the cloud icon to look just right. Though I never finished that CASE tool, one artifact of it remains. The cloud icon I created has followed me from computer to computer, from Macintosh to Windows, and has been the source of all the cloud icons I have ever drawn in any book or article.

I remember the incredible day that my office partner, Billy Vogel, was talking on the phone to a head-hunter. He looked over at me and said: "Uncle Bob, I think you should take this call." The recruiter was looking for consultants to work at Rational, with Grady Booch, on a CASE tool to draw Booch Diagrams! How could such luck drop right into my lap?

A dozen years have passed. I still have my original copy of Booch's book. It's a bit frayed and dog-eared, but the book still has the power to evoke echoes of the same old thrills.

Today, of course, we use UML -- the one-third offspring of Booch's notation. UML is a powerful and comprehensive notation, far grander in its sweep and scope than Booch's was. Whereas Booch's notation was good for drawing pictures of software, UML is apparently good for creating models of just about anything you can imagine -- or so say some of its pundits. As grand and all-encompassing as UML may be, I find that a reasonable subset is all I need for drawing pictures of software. The same kind of pictures I used to create with Booch's notation.This book is about that subset, and about those pictures. This book takes the vast richness of UML 2.0 and boils it down to the essence that every programmer needs in order to draw pictures of his, or her, software designs. This book reduces the panoply of UML widgets, icons, diagrams, relationships, and arrowheads, into a simple suite of tools that Java programmers can use to record their design decisions.

Make no mistake about it. This book will not teach you everything about UML. But if you are a Java programmer, it will teach you what you need to know.

Read More Show Less

Introduction

Preface

It was 1991 when I got my first copy of Booch's classic Object Oriented Design with Applications (first edition). I had learned several OO languages by then, including C++ and Smalltalk. I was absolutely thrilled by the concept of Booch's notation. Those clouds! Those relationships! The message passing diagrams! As a software designer it was just what I needed!

I also needed a tool to draw the diagrams. So I started writing a CASE tool in Think-C for the Macintosh. I remember spending a lot of time getting the cloud icon to look just right. Though I never finished that CASE tool, one artifact of it remains. The cloud icon I created has followed me from computer to computer, from Macintosh to Windows, and has been the source of all the cloud icons I have ever drawn in any book or article.

I remember the incredible day that my office partner, Billy Vogel, was talking on the phone to a head-hunter. He looked over at me and said: "Uncle Bob, I think you should take this call." The recruiter was looking for consultants to work at Rational, with Grady Booch, on a CASE tool to draw Booch Diagrams! How could such luck drop right into my lap?

A dozen years have passed. I still have my original copy of Booch's book. It's a bit frayed and dog-eared, but the book still has the power to evoke echoes of the same old thrills.

Today, of course, we use UML -- the one-third offspring of Booch's notation. UML is a powerful and comprehensive notation, far grander in its sweep and scope than Booch's was. Whereas Booch's notation was good for drawing pictures of software, UML is apparently good for creating models of just about anything you can imagine -- or sosay some of its pundits. As grand and all-encompassing as UML may be, I find that a reasonable subset is all I need for drawing pictures of software. The same kind of pictures I used to create with Booch's notation. This book is about that subset, and about those pictures. This book takes the vast richness of UML 2.0 and boils it down to the essence that every programmer needs in order to draw pictures of his, or her, software designs. This book reduces the panoply of UML widgets, icons, diagrams, relationships, and arrowheads, into a simple suite of tools that Java programmers can use to record their design decisions.

Make no mistake about it. This book will not teach you everything about UML. But if you are a Java programmer, it will teach you what you need to know.

Read More Show Less

Customer Reviews

Average Rating 5
( 1 )
Rating Distribution

5 Star

(1)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted July 1, 2003

    Best overall book on UML (even better if you code in Java but not necessary)

    This is a great book for learning or improving with UML. Topics are introduced at a level appropriate for beginners but each topic progresses at a nice pace into intermediate territory. There's even advice in here suitable for the best programmers I know. I love the liberal use of source code throughout this book. We model in order to write code and Bob Martin clearly presents that perspective in this book. If code is the goal then it is worthwhile understanding the relationship between our models and our code. While all of the example code is in Java I'd still recommend this book to anyone who wants to learn more about modeling and who has even a passing familiarity with Java. C++ or other programmers should have no problem reading it, for example. I like that the author goes beyond just describing each of the UML diagrams and takes the opportunity to teach good design while he's at it. As just one example, the 'Single Responsibility Principle (SRP)' is discussed. This principle tells us that 'a class should have only one reason to change.' In other words, don't put everything into one class. That's pretty obvious but it's still a common mistake. The book shows a brief snippet of Java code that violates this principle and then shows the UML for how to design it better. More importantly, we're told how to recognize this problem in UML diagrams we create or inherit. This book addresses one of the big problems I've had with many other UML books--it tells the reader right upfront that not all diagrams are equally important. I love that the author tells us things like that 'in the last decade I think I have drawn less than a dozen object diagrams of this kind.' That's great to know! Because many other books try to cover every diagram and modeling technique they all end up appearing equally important. In this book Bob Martin tells us that he's only going to cover what we really need to know to be better Java programmers. He achieves that goal with flying colors.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)