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.
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.
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.
Ask a Question About this Product More... |