Home Books Software Projects Forums

Recommended Books

Object Technology: A Manager's Guide
by David A. Taylor, Ph.D.
introduction, concepts, architecture
Looking for a primer on object technology? How about a refresher course? Are you an expert who'd like to be able to explain object-oriented concepts to co-workers? Teaching a course on objects? Look no further than this acclaimed introductory guide. David A. Taylor, Ph.D. uses clever illustrations and clear, to-the-point text to survey the history and concepts of object-oriented development.

Applying UML and Patterns:
An Introduction to Object-Oriented Analysis and Design

by Craig Larman
process, UML, patterns
Are you lost when it comes to sorting out the object-oriented analysis and design process? Don't know where to start? What step follows next? Craig Larman's ground-breaking book will help you understand that there really is a precise logic behind this process and will guide you through each step.

UML Bible
by Tom Pender
UML 2.0 Guide
With the introduction of UML 2.0, the UML standard has risen to a new level of clarity, but also of complexity. Tom Pender's UML guide cuts through the complexity with clarity and attention to detail not found in any other guide to UML. The author provides a comprehensive treatment of the full UML standard, including OCL, XMI, MDA, Profiles and Action Semantics. In addition, an early chapter is devoted to explaining object-oriented concepts, so the UML is put into the right context, and not just treated as a notation.

Object-Oriented Software Construction
by Bertrand Meyer
concepts, architecture
If you love the elegance of the object-oriented approach to software design then look no further than Bertrand Meyer's masterpiece. Every angle of object technology is defined with the precision of a philosopher or a mathematician.

Improving the Design of Existing Code

by Martin Fowler
refactoring, patterns
If your manager won't let you rewrite the software from scratch, this is the next best alternative: refactor it piece by piece. Refactoring is the process of making incremental changes to software using well-defined, proven patterns of change. Martin Fowler provides a step-by-step guide on how to refactor software until it is truly object-oriented.

Agile Software Development
Principles, Patterns, and Practices

by Robert C. Martin
patterns, agile development
Programmers have an itch to write software from scratch. How can we hope to achieve a measure of reuse and still keep programmers happy? Software patterns provide us an answer: reuse the design principles, if not the code. Robert C. Martin follows in the tradition of his peers in the discipline of software patterns with a book targeted for UML and Java lovers. You will also learn the practice of agile development - iterations, peer programming, unit testing and refactoring.

Design Patterns
Elements of Reusable Object-Oriented Software

by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Often imitated but never equaled, this is the book which started the whole patterns movement. While this is a difficult book to read, the class diagrams use a pre-UML notation, and the code examples are in C++ and Smalltalk, it is nevertheless worth it to struggle all the way through this classic if you want the best reference on patterns available.

Head First Design Patterns
by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra
patterns, UML, Java
The layout of books in the Head First series is highly visual and interactive, frequently with fewer words on a page than pictures, diagrams or drawings. This approach succeeds well with Design Patterns, making a complex topic intelligible. What stands out is the many engaging examples, written in Java and explained using the UML, as well as a number of discussions on object-oriented design principles, including encapsulation, inheritance, coupling, delegation, the open/closed principle and many others.
An Interview with Kathy Sierra

Domain-Driven Design
Tackling Complexity in the Heart of Software

by Eric Evans
domain modeling, patterns
Domain modeling shifts the focus of design to the real-world objects in a particular domain of interest. Eric Evans combines his knowledge of modeling complex domains with UML and refactoring to train the reader how to apply design rules to iteratively improve an object model by focusing on well-defined patterns of domain modeling.

The Unified Modeling Language Reference Manual
by Grady Booch, Ivar Jacobson, James Rumbaugh
UML Reference
The UML standard is complex and full of abstract terminology. If you are an expert in object-oriented design and want to find a clear definition for a UML term, this definitive reference should be in your library. The Encyclopedia of Terms includes helpful diagrams and examples alongside readable definitions of all the elements of the UML notation.

Object Design:
Roles, Responsibilities, and Collaborations

by Rebecca Wirfs-Brock, Alan McKean
CRC, Responsibility Driven Design
We often think of objects from the coding perspective, but this author teaches us to go back to fundamentals and look at the real-world objects being modeled during the analysis phase, to understand their roles and responsibilities during collaboration with other objects, and ultimately arrive at better abstractions that will lead to cleaner software designs.
An Interview with Rebecca Wirfs-Brock

Pitfalls of Object-Oriented Development
by Bruce Webster
Have you ever been part of an object-oriented software project before? Then the situations in this book will conjure up many a deja-vu. With concise style, Bruce Webster explores all of the pitfalls that ensnare object-oriented software projects and offers solid advice on how to escape them.