Always Learning

UML for Java Programmers
Robert C. Martin

ISBN-10: 0131428489
ISBN-13:  9780131428485

Publisher:  Prentice Hall
Copyright:  2003
Format:  Paper; 288 pp
Published:  05/27/2003
Status: Instock


Customers outside the U.S., click here.


Print this content

In this section:


Description

The Unified Modeling Language has become the industry standard for the

expression of software designs. The Java programming language continues to

grow in popularity as the language of choice for the serious application

developer. Using UML and Java together would appear to be a natural

marriage, one that can produce considerable benefit. However, there are

nuances that the seasoned developer needs to keep in mind when using UML

and Java together. Software expert Robert Martin presents a concise guide,

with numerous examples, that will help the programmer leverage the power of

both development concepts. The author ignores features of UML that do not

apply to java programmers, saving the reader time and effort. He provides

direct guidance and points the reader to real-world usage scenarios. The overall

practical approach of this book brings key information related to Java to the

many presentations. The result is an highly practical guide to using the UML

with Java.


Features

Software development guru Robert Martin shows readers how to effectively and efficiently use UML to design and implement real-world Java.

° Compliant and up-to-date with the latest version of the industry standard for modeling software programs, UML 2.0

° Concise and practical; written for the Java programmer

° Contains thorough Java code examples AND their related UML diagrams -- a critical and proven approach to learning


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.



Back to top

Print this content

In this section:


Sample Chapter

View a Sample Chapter PDF:/samplechapter/0131428489.pdf


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.


Backcover Copy

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

Back to top

Print this content

This product is a member of the following series. Click on the series name to see the full list of products in the series.

Back to top

Log in to the Instructor Resource Center

Login name: 

  Password: 

Forgot login/password?  |  Need to redeem an access code?

        

Instructor Resource Center File Download

This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.

Cancel     I accept, proceed with download

Print this content

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.

Back to top