For all undergraduate courses in object-oriented analysis and design. Builds on the overwhelming success of the First Edition. The topics covered in this book are increasingly recognized as core competencies by virtually all contemporary computer science departments, and in virtually all computer science curricula.
This book teaches object-oriented analysis and design through iterations of a single, cohesive case study―incrementally introducing key OO&AD skills while emphasizing practical activities and principles. Renowned object technology leader Craig Larman introduces the popular UML 1.4 diagramming notation as a superior vehicle for expressing OO&AD thoughts. Since OOA&D should be taught (and practiced) within a coherent process, he presents a lightweight, agile version of the market-leading Unified Process (UP). Within his case study's context, he also introduces patterns―robust, best-practice solutions to the most widely encountered design problems.
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