Good software starts with a good design, and Applying UML and Patterns
' subtitle, "An Introduction to Object-oriented Analysis and Design (OOA/D) and the Unified Process" reflects this.
The first edition of Applying UML and Patterns became a standard. The second edition uses the unified process (UP) as the interactive process within which OOA/D is introduced and extends the case study used in the first edition. Other changes have been made to reflect the growing consensus on the most effective ways to work with OOA/D and patterns.
Although you will learn UML this isn't what Applying UML and Patterns is all about. It's designed to teach you to think of software as a collection of objects with properties and to manipulate the relationships between them. This is far more profound.
The case study enables Craig Larman to carry the design through to Java code. In practice you will need a basic understanding of OO programming to benefit from Applying UML and Patterns though you needn't know Java--you could implement the designs in the OO language of your choice with equal facility.
When it comes right down to it, Applying UML and Patterns is all about providing you with a language in which to think about software design. This is quite a different from learning a language in which to code a design.
A facility with OOA/D will enable you to design and discuss programs independent of code, to produce more elegant and maintainable software and to take a 30,000-foot view of the way your software interacts with the world. In effect, it can shift your viewpoint from that of a mechanic to the more sophisticated viewpoint of an engineer. --Steve Patient
From the Publisher
Table of contents
1. Object-Oriented Analysis and Design. 2. Introduction to a Development Process. 3. Defining Models and Artifacts.
II. PLAN AND ELABORATE PHASE.
4. Case Study: Point-of-Sale. 5. Understanding Requirements. 6. Use Cases: Describing Processes. 7. Ranking and Scheduling Use Cases. 8. Starting a Development Cycle.
III. ANALYZE PHASE (1).
9. Building a Conceptual Model. 10. Conceptual Model-Adding Associations. 11. Conceptual Model-Adding Attributes. 12. Recording Terms in the Glossary. 13. System Behavior-System Sequence Diagrams. 14. System Behavior-Contracts.
IV. DESIGN PHASE (1).
15. From Analysis to Design. 16. Describing Real Use Cases. 17. Collaboration Diagrams. 18. GRASP: Patterns for Assigning Responsibilities. 19. Designing a Solution with Objects and Patterns. 20. Determining Visibility. 21. Design Class Diagrams. 22. Issues in System Design.
V. CONSTRUCT PHASE (1).
23. Mapping Designs To Code. 24. Program Solution In Java.
VI. ANALYZE PHASE (2).
25. Choosing Development Cycle 2 Requirements. 26. Relating Multiple Use Cases. 27. Extending the Conceptual Model. 28. Generalization. 29. Packages: Organizing Elements. 30. Polishing the Conceptual Model. 31. Conceptual Model-Summary. 32. System Behavior. 33. Modeling Behavior in State Diagrams.
VII. DESIGN PHASE (2).
34. GRASP: More Patterns for Assigning Responsibilities.
35. Designing with More Patterns.
VIII. SPECIAL - TOPICS.
36. Other UML Notation. 37. Development Process Issues. 38. Frameworks, Patterns, and Persistence. Appendix A. Recommended Readings. Appendix B. Sample Development Activities and Models. Bibliography. Glossary. Index.
--This text refers to an out of print or unavailable edition of this title.