Cider - Shop now
Buy new:
$71.72
$13.73 delivery May 30 - June 23 to Nashville 37217
Ships from: Agapea_Libros_Urgentes
Sold by: Agapea_Libros_Urgentes
$71.72
$13.73 delivery May 30 - June 23 to Nashville 37217. Details
Or fastest delivery May 14 - 19. Details
Only 1 left in stock - order soon.
$$71.72 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$71.72
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Agapea_Libros_Urgentes
Agapea_Libros_Urgentes
Ships from
Agapea_Libros_Urgentes
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt. You may receive a partial or no refund on used, damaged or materially different returns.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$34.96
Item in good condition. Textbooks may not include supplemental items i.e. CDs, access codes etc... Item in good condition. Textbooks may not include supplemental items i.e. CDs, access codes etc... See less
$3.98 delivery Saturday, May 17 to Nashville 37217. Details
Or fastest delivery May 14 - 16. Details
Only 1 left in stock - order soon.
$$71.72 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$71.72
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Ships from and sold by glenthebookseller.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Object-Oriented Design Heuristics (paperback) 1st Edition

4.7 out of 5 stars 44 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$71.72","priceAmount":71.72,"currencySymbol":"$","integerValue":"71","decimalSeparator":".","fractionalValue":"72","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"jGhGqrJoyN%2FV0EpWy9orUAF5EwWPHRjDctBkjObNTK%2BDSztfGQvEPmzqR0THogt2cHqDquShOvqnGmvGHc%2FaTJ8RmKqCBsEV%2FG9jJpOtFrfWo8qVzaguTo1Ae%2BgbrO5F9mRrJ0UDN01g8vcsoC6oETopldihVv7Qd53vZ4xIOQ8eYbJR148DaA%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$34.96","priceAmount":34.96,"currencySymbol":"$","integerValue":"34","decimalSeparator":".","fractionalValue":"96","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"jGhGqrJoyN%2FV0EpWy9orUAF5EwWPHRjDI5lCZjZ%2BY3VTTMDc59C3%2FSVEF26QeET7rgu4XqAFuIa0YyF0UuLVCHP19WXuM7qIAFOwgPUEBMTQAvVEr90prItneMlTRNq8UL2XgNDWh4kPWFFknuMSPDK%2BVtetTEq32mOAIqjgg%2BaWRAq%2Bs1HX0x2qaPwd0TRA","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

Object-Oriented Design Heuristics offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design. The heuristics are not written as hard and fast rules; they are meant to serve as warning mechanisms which allow the flexibility of ignoring the heuristic as necessary. This tutorial-based approach, born out of the author's extensive experience developing software, teaching thousands of students, and critiquing designs in a variety of domains, allows you to apply the guidelines in a personalized manner.
The heuristics cover important topics ranging from classes and objects (with emphasis on their relationships including association, uses, containment, and both single and multiple inheritance) to physical object-oriented design. You will gain an understanding of the synergy that exists between design heuristics and the popular concept of design patterns; heuristics can highlight a problem in one facet of a design while patterns can provide the solution.
Programmers of all levels will find value in this book. The newcomer will discover a fast track to understanding the concepts of object-oriented programming. At the same time, experienced programmers seeking to strengthen their object-oriented development efforts will appreciate the insightful analysis. In short, with Object-Oriented Design Heuristics as your guide, you have the tools to become a better software developer.

Product details

  • Publisher ‏ : ‎ Addison-Wesley Professional; 1st edition (April 30, 1996)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 400 pages
  • ISBN-10 ‏ : ‎ 0321774965
  • ISBN-13 ‏ : ‎ 978-0321774965
  • Item Weight ‏ : ‎ 1.46 pounds
  • Dimensions ‏ : ‎ 7.4 x 0.91 x 9.1 inches
  • Customer Reviews:
    4.7 out of 5 stars 44 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Arthur J. Riel
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Discover more of the author’s books, see similar authors, read book recommendations and more.

Customer reviews

4.7 out of 5 stars
44 global ratings

Review this product

Share your thoughts with other customers

Customers say

Customers find this book to be a perfect OOP resource that provides solid insight into object-oriented software development. One customer notes it contains numerous suggestions for improving program design, while another mentions it is very well put together.

AI-generated from the text of customer reviews

Select to learn more

15 customers mention "Design advice"11 positive4 negative

Customers appreciate the design advice in the book, which provides numerous suggestions for improving program design and offers solid insight into object-oriented software development.

"...This book has influenced my software development more then any other book i've read and that's a fact. This is truly a rare gem...." Read more

"...since knowing how to apply the heuristics to come up with a good design is where the real value is...." Read more

"...Still, the suggestions are generally good. Even better, they are phrased so as to invite thought and thoughtful critique by the reader...." Read more

"...This is the book. This is the book for UNDERSTANDING object-oriented software development...." Read more

12 customers mention "Enjoyment"12 positive0 negative

Customers find the book enjoyable and consider it a perfect OOP book, with one customer noting it's worth every penny.

"...This book will bridge that gap. This is the best book i've read by far on OOA/D. This book will apply to you no matter what your skill level is in..." Read more

"...I am definitely glad I did. It was worth every penny...." Read more

"...Overall I think this is a pretty good book advocating for a somewhat different process for OO Design relative to other books...." Read more

"First, the greatness. These heuristics, rules of thumb, are true gems. The are short, memorable, and widely applicable...." Read more

3 customers mention "Design"3 positive0 negative

Customers appreciate the design of the book, with one customer noting it is very well put together.

"...Don't learn OOD by making mistakes. Buy this book and design with confidence." Read more

"...This is very well put together book that tackles OO design from seemingly every angle...." Read more

"Nice Work..." Read more

Top reviews from the United States

  • Reviewed in the United States on August 9, 2006
    I have been studying the object oriented methodology for some time now. I felt that I had a good understanding of what OOP was all about. I have studied OOA/D and design patterns from numerous sources. All of my sense for OOA/D knowledge changed completely when I read this book. This book really showed me that I was stuck somewhere in the middle of the paradigm shift between action oriented programming (aka procedural programming) and object oriented programming. After reading this, I feel like my knowledge in OOA/D has truly advanced to the next level.

    Are you the type of person that knows what OOP is? I mean, if you've studied up on OOP then you are probably aware of what an abstract class is. You know what interfaces, inheritance, polymorphism, information hiding (...etc) are. You may have a sense in when you should use inheritance and when you should use containment. You probably follow certain OOP practices like keeping all of your variables private, hiding secrets from other objects (information hiding). This may all make sense to you but are you also the type of person that just never feels comfortable about your designs? Do you look at your classes and just get a sense that something doesn't seem right, yet you just can't figure out what it is even if your software system is running fine? I am willing to wager that you are in the middle of a paradigm shift. You are probably taking the route that a lot of developers take when they shift from thinking in a procedural fashion (action-oriented design) into object oriented design. There is nothing wrong with this, but if you're like a lot of developers you will have a long hard journey utilizing a lot of experience before you really make that shift. This book is an essential tool that will help you make that shift a LOT faster. After reading this book you will see why you felt your designs were't quite right.

    One of the first topics that really hit home for me was when the author Arthur Riel talks about God classes in chapter 3. God classes are classes that have too much implementation in them. Most of the complexity of a piece of software resides in these classes. They are the all-knowing classes that delegate messages between the much smaller, less complex classes. Signs of God classes are classes that have words in their name such as "Manager" or "System" in them. This one hit home because there are numerous classes in the software i'm working on now with the name Manager in them. For example one of our classes is called the "BiDirectional_Dataflow_Manager". This is definitely a God class through and through. While I was reading about the disadvantages of these types of classes I couldn't help but agree with everything Arthur was saying. I began to see the light already and I was just on chapter 3. There are 59 other Heuristics, all equally important in this book.

    Most books that teach OOA/D seem to really only teach the definition of OOA/D and perhaps clue you in to the whole idea. You learn the terminology well and you see a few examples (I'm sure you've seen an animal hierarchy a time or two), but you don't really gain a solid understanding in how you actually think in objects. This book will bridge that gap. This is the best book i've read by far on OOA/D. This book will apply to you no matter what your skill level is in OOA/D, unless you're a complete beginner then you might find yourself a little bit lost. If you are brand new to OOA/D then you should probably read a short book on OOP, just to gain the basic concepts first. "Object Oriented Thought Process" might be a good start as it's short and sweet, then you should move on to this book. If you are advanced then you may know a lot of this information, but this book will probably help tweak your OOA/D skills; helping you become an even more solid developer. But for you guys and gals out there that know what OOP is and read a few books on it, but still don't feel quite right about your designs, this book is essential. You guys out there are the sweet spot for a book like this. That's how I was. Now I feel so much better, I feel like i've gained more knowledge in OOA/D with this book then all other books on OOA/D and OOP that i've read combined - and then some.

    Arthur Riel is a very talented programmer and author. He is able to communicate ideas to you that are sure to hit home, as if he's right there with you and understands your problems in OOA/D. This book is densly packed. Not including the bibliography and index this book is a mere 367 pages. Even more, if you don't include the example code at the end of the book (all C++ code) this book is only 243 pages. The real meat of this book is in the first 9 chapters (where he talks about all of the heuristics), which totals 182 pages. After that he talks about topics such as handling memory leaks and such. Most of the dim lights will shine brightly after a mere 182 pages! This may sound too good to be true, but as I said earlier Arthur is VERY talented in communicating his ideas. You just have to read this book very carefully, don't skim! Because it's so dense, it may take a couple of passes before you really get the idea but once you understand it you will surely belt out a resounding "AH HA!". This book is 10 years old at the time of this review, but the information inside is far from being outdated.

    To conclude this lengthy review (sorry about that) I would like to say that I give this book my highest recommendation. In fact, this may be the best book on software development that i've ever read! This book has influenced my software development more then any other book i've read and that's a fact. This is truly a rare gem. The only downside (not this books fault) is that it's become a bit harder to work on the software that i'm currently working with because I now see where all of the pitfalls are. My co-workers think i'm just being anal about design now, but you don't have to be like them. Step up, become the best software developer that you can be. Just read this book and you will take a giant leap forward in your OOA/D understanding, especially if you're stuck in a paradigm shift like I was. Thank you very much Arthur!
    14 people found this helpful
    Report
  • Reviewed in the United States on February 19, 2010
    I'm utterly astonished that I had never heard of this book until about a month ago. I read a mention about it in another review, did a search, saw the excellent (though scarce) reviews here, and decided to buy it. I am definitely glad I did. It was worth every penny.

    As someone who has been programming professionally for nearly 5 years, I came to realize something soon after joining the industry: a computer science university program doesn't teach you how to design and write software. Oh, sure, you'll feel pretty smart when you write a quick-sort or a binary search tree and then do the Big-O analysis on it (even though just about any language you use will already have these optimized and packaged up somewhere for you). You'll do calculus and differential equations, some discrete math, maybe combinatorics. And of course, you'll take some programming classes, where you'll learn the syntax of one or more languages. You'll get fed buzzwords, and you'll memorize their definitions so you can spit them back out on a test. "Inheritance". "Polymorphism". But you really can't sink into anything deeply enough to understand what they really are, or why they're important. So you end up getting a job and writing terrible code, built on top of the terrible code that already exists, because the last fresh-out was in the same position as you, and he did it because of the people before him. But after awhile, you start to realize that making simple changes is unusually difficult, and you start to wonder what's wrong. That's when you start doing a little self-study and, hopefully, you stumble across a book like this. I just wish I'd stumbled 5 years ago.

    As the title suggests, the book is full of heuristics (rules-of-thumb, if you will) related to good object-oriented design. But it's really much more. The book is not built around the heuristics. One might expect the author to go through the book listing the heuristics one-by-one, then explaining them, in a sort of catalog fashion. But what you get instead is a discussion of OOP topics, starting from the most basic. After he explains the reasoning behind the topics and the pitfalls encountered when dealing with them as they pertain to design, he gives the proper heuristic to help you on your way.

    Arthur Riel spends the book citing his experiences in industry to relate these numerous OO topics to the real world. He is also able to reflect on his experience in teaching courses on OOD to others in order to address common misconceptions and confusions. Riel is able to explain every topic in the book with such stunning clarity that it's actually a disappointment to see that he hasn't written any other books. One can easily breeze through the Object-Oriented Design Heuristics in a few days, and it should absolutely be read cover-to-cover. I found that just about any question I've ever had on good object-oriented design was explained at some point. Some could certainly argue about some of the heuristics, but Riel is never dogmatic about them. He freely admits in the foreword that sometimes they conflict with what more closely models the real world, and some of the heuristics even conflict with each other. It is up to the designer to pick the best design choice for the situation. With this book in hand, that should be no problem.
    8 people found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • CAPLA
    5.0 out of 5 stars Five Stars
    Reviewed in the United Kingdom on December 31, 2014
    Gives a solid grounding in OOD, consider this my bible.
  • Alberto T.
    5.0 out of 5 stars Muy bueno para refrescar conceptos.
    Reviewed in Spain on September 16, 2014
    Directo, claro y esclarecedor. Un gran libro para repasar las buenas prácticas en la programación orientada a objetos. Creo que es requisito obligatorio tener claros los conceptos de POO antes de usar este libro. No solo son reglas, también trae ejemplos muy claros.
    Report
  • Carsten Alder
    5.0 out of 5 stars Great book
    Reviewed in Germany on August 16, 2005
    This book is a must-read for OO-developers, because every heuristic is explained in detail and motivated by examples. It does not use the UML! The author explains in detail what object orientation really is: decentralized programming. Moreover, he discusses how to accomplish this goal.
  • Sébastien Wilmet
    5.0 out of 5 stars Autre titre possible du livre : Object-Oriented Design Best Practices
    Reviewed in France on December 27, 2018
    Malgré son age, ce livre est toujours très utile selon moi. Ça explique toute une série de bonnes pratiques en Programmation Orientée Objet (POO). Chaque « heuristique » (ou bonne pratique) est discutée en détails, avec des exemples. Ce livre m'a été très utile pour faire du design d'API de librairies, mais c'est utile pour tout projet orienté objet.

    Juste une petite chose qui pourrait être améliorée, à un moment donné dans le livre, il est proposé que la classe « container » fasse du polling sur la classe contenue, pour éviter d'avoir une référence dans l'autre sens (ce n'est pas une bonne pratique qu'un objet sache dans quel autre objet il est contenu). Mais en programmation évènementielle (event-driven programming), il suffirait d'attacher une fonction callback, en C ou C++ ce serait avec un pointeur de fonction. Les librairies pour faire de la GUI, avec une main event loop, ont généralement un système de callbacks comme ça, le polling se fait à plus bas niveau.
  • anortef
    5.0 out of 5 stars ¿eres programador? leelo
    Reviewed in Spain on July 11, 2018
    SI eres programador de POO la lectura de este libro es algo absolutamente necesario. Cada página es un mundo nuevo de conocimientos y perspectivas.