Re: Basic books on OOA&D

From: H. S. Lahman (h.lahman_at_verizon.net)
Date: 10/18/03


Date: Sat, 18 Oct 2003 19:22:40 GMT

Responding to Atzen...

> So the question is: Where should I start?
>
> As inspiring as the GOF book is, I feel I need a more high level
> reference of the analysis and design process of small- to mediumsized
> projects. I've browsed Amazon and came across Agile Software
> Development which seems to match my wishes and also Meyer's OO
> Software Constrution. Would these be a good starting point or should I
> look somewhere else?

I would suggest browsing at a book store rather than on Amazon. What
you need is a good OOA/D book. However, 'good' will subjective. There
are lots of OOA/D methodologies around and each has its own perspective
on the same underlying fundamentals. What you need is a book that seems
to make sense to /you/. IOW, you need an OOA/D book that provides the
best clarity from your perspective. SO I usually only recommend some
screening techniques for browsing.

(1) It must be an OOA/D book, 'OO' with 'Analysis' and/or 'design'
should be in the title somewhere.

(2) Ignore books with 'UML' or a specific OOPL in the title. The vast
majority of these are about manipulating the notation syntax. They are
very good at explaining how to express what you want to do but they tend
to be short on ideas for what you should be wanting to do. Today one
needs UML to talk about OOA/D, but it should be just a notation vehicle.

(3) Certain keywords in the index are mandatory: abstraction, behavior,
class, cohesion, encapsulation, implementation hiding, inheritance,
message, method, object, polymorphism, property, relationship,
responsibility.

(4) Be wary of any book where there are more index entries for 'type'
than for 'class'. OOA/D is implemented with type systems in the OOPLs,
so this is usually a good indication of bias towards OOP.

(5) Browse the entries for the items in (3). In particular look to see
if the explanations are good enough so that you understand the
differences between: message and method; between subclassing,
inheritance, and polymorphism; behavior and knowledge; and cohesion,
encapsulation, and implementation hiding.

If the author's exposition makes a lot of sense to you for (5), then buy
it. If the book explains WHY those distinctions are important to the
way one builds OO software, let me know and I'll buy it.

*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl@pathfindermda.com
Pathfinder Solutions -- Put MDA to Work
http://www.pathfindersol.com
(888)-OOA-PATH



Relevant Pages

  • Re: DFD equivalent in OOAD
    ... > polymorphism makes OOP better than SP. ... The first only worked partially because the OOA/D ... this sort of problem space abstraction can be ... This is the reason that in OOA/D the message and the responding method ...
    (comp.object)
  • Re: DFD equivalent in OOAD
    ... The first only worked partially because the OOA/D ... this sort of problem space abstraction can be ... > All collaborations navigate to the target object via a relationship ... > This is the reason that in OOA/D the message and the responding method ...
    (comp.object)
  • Re: How to start with OOP?
    ... Responding to Kret... ... first thing you need is a book on OOA/D to get a grip on the fundamentals. ... I would be cautious about relying on reviews. ...
    (comp.object)
  • Re: Why Software Is Bad and What We Can Do to Fix It
    ... Responding to Traveler... ... the practice of using the algorithm as the basis for ... Many of those articles were proposing OOA/D as an alternative. ... structure rather than algorithmic sequencing and decomposition. ...
    (comp.object)