|
Object Mentor Recommended Design Books
|
|

Proven strategies for maintaining and enhancing legacy code!
|
Working Effectively with Legacy Code
By Michael Feathers

Michael Feathers is one of Object Mentor's Senior Consultants. He provides training and mentoring in Agile and Extreme Programming methodologies, refactoring, object-oriented design, Java, C#, and C++. more about Michael...
Get more out of your legacy systems: more performance, functionality, reliability, and manageability. Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.
The topics covered include:
- Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance
- Getting legacy code into a test harness
- Writing tests that protect you against introducing new problems
- Techniques that can be used with any language or platform with examples in Java, C++, C, and C#
- Accurately identifying where code changes need to be made
- Coping with legacy systems that aren't object-oriented
- Handling applications that don't seem to have any structure
- Plus a catalog of 24 dependency-breaking techniques that help you work with program elements in isolation and make safer changes.
|

Winner of the 2002 Jolt Award!
|
Agile Software Development: Principles, Patterns, and Practices
By Robert C. Martin (2002)

Robert C. Martin is the founder and president of Object Mentor. He is an industry-recognized expert in Agile methodologies and object-oriented design. More about Bob
This book was written for the software developer in the trenches. It describes Agile Software Development from a practitioner's point of view. Through dozens of case studies it describes and teaches the principles of object-oriented software design, the patterns that embody those principles, and the practices that enable individuals and teams to use those principles.
It is a book of Java and C++ code -- lots of code. Every point the book makes about software development is amplified with examples in code and UML diagrams. What's more, the code and UML are not presented in completed form, leaving the reader to wonder how they got there. Rather the code and UML are presented in stages throughout a project. By following the code and the accompanying text, you see the process of software design.
If you want to learn UML, if you want to learn how to design software, if you want to learn design patterns, or if you want to learn the best practices of software development, this is the book to read.
What the industry experts are saying...
- "Bob has an enormous amount to teach about the pragmatics
of mastering our craft."— Martin Fowler
- "You hold in your hands a lifetime's worth
of "good object thoughts"—Kent Beck
- "This book is crammed with sensible advice
for software development."— Erich Gamma
- "When Bob Martin speaks, better listen up."— John Vlissides
- "Bob Martin demonstrates his gift as both master developer
and educator. These are important lessons, and a delight
to read." — Craig Larman
|
 |
Refactoring: Improving the Design of Existing Code
By Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts (1999)
This book enumerates a suite of operations that allow developers to make many minor changes to their software in a disciplined and methodical manner. The goal of these changes is to move the software into a shape that is better able to survive the rigors of its lifecycle. Though the catalog of refactorings, and the examples of how to apply them, are invaluable; the real pearls in this book are the nuggets of pragmatic attitude and hard bitten advice that the authors convey to the reader. One of the most important books of 1999.

|
 |
The Unified Modeling Language User Guide
By Grady Booch, James Rumbaugh, and Ivar Jacobson (1999)
This book describes the UML better than any other currently in print. It is easy to read and very complete. Anyone serious about UML should read this.

|
 |
Object-Oriented Software Construction Second Edition
By Bertrand Meyer (1998)
An excellent book written by the man who gave us "The Open-Closed Principle" and design by contract. It's 1296 pages are worthy of much study.

|
 |
Object-Oriented Analysis and Design with Applications Second Edition
By Grady Booch
Arguably the most popular book on object oriented design in print. This book provides a overarching view. No serious professional should be without it.

|
 |
Designing Object-Oriented C++ Applications using the Booch Method
By Robert C. Martin (1995)
Robert C. Martin is the founder and president of Object Mentor. He is an industry-recognized expert in Agile methodologies and object-oriented design. More about Bob
A pragmatic approach for object oriented designers in the trenches.

|
 |
Object-Oriented Software Engineering: A Use Case Driven Approach
By Ivar Jacobson (1992)
The definitive work on use cases. An extremely pragmatic approach to object oriented development. It is clear that the author is a consummate engineer, and his profound experience virtually oozes from these pages.

|
 |
Designing Object-Oriented Software
By Rebecca Wirfs-Brock (1991)
Probably one of the best tutorials on object oriented design in print. Especially the first few chapters. The notation shown in the book has never become very popular, and can probably be ignored. But the principles expounded in the book are timeless.

|
 |
Structured Analysis and System Specification
By Tom DeMarco (1978)
The best and most accessible book on structured analysis, bar none. DeMarco's style is delightful, and the information content in this book is worth much more than the cover cost. Though the technique

|
|