Re: Basic books on OOA&D

From: Jacob Atzen (jacob_at_aub.dk)
Date: 10/18/03


Date: 18 Oct 2003 22:09:55 +0200


"H. S. Lahman" <h.lahman@verizon.net> writes:

> I would suggest browsing at a book store rather than on Amazon.

Not an option. Unfortunately Denmark doesn't really have any
bookstores with much choice on such a specialized topic.

> 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.

I've ordered R. Wirfs-Brocks "Object Design: Roles, Responsibilites,
and Collaborations" as an introduction to Object Oriented
Design. My hope is that it will give me a better understanding of what
constitutes good and bad OO design.

I've also ordered R. Martins "Agile Software Development". This (I
believe) is more of a methodology book on software development in
general than a book on sound OO principles.

I hope these two in combination will give me a reasonable foundation
for my first projects and further study. Whether they make sense to
*me* is hard to tell up front.

> 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.

Very good point. I have the same experience from the books on C++ and
Java I've read/browsed. At the moment I'm reading "UML and the Unified
Process". It seems to be too focused on UML/UP and promoting
technologies surrounding it. Even though it's subtitle is "Practical
Object-Oriented Analysis & Design" I have you to find anything
describing good OOA&D in it. But I guess it's a good counter-weight to
the Agile and XP methods which I plan to study also.

> (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.

I will pay attention to those concepts and let you know if I find the
*why* is explained well :-)

-- 
Thank you,
- Jacob Atzen


Relevant Pages

  • Re: Comparison and criteria of design quality
    ... there is design creativity in every discipline. ... Unfortunately software development is not ... Automation of the computing space is inevitable. ... Most software developers are memebrs of the Cult of Creativity. ...
    (comp.object)
  • Immediate Job Opening for PHP Developers @ WA
    ... This position will include all aspects of the software development ... willingness to maintain existing PHP systems is preferred. ... solid understanding of template driven site architecture such as MVC ... common design patterns ...
    (comp.lang.php)
  • Re: Mapping (CoBOL) Methodologies to Problem Domains
    ... CLC to solicit the CoBOL angle, to wit, what methodologies are you ... I guess it's OK to do some follow up here within this thread in CLC, ... For business application I have found data flow diagrams, ... See "How to Design and Develop Business ...
    (comp.lang.cobol)
  • Urgent Reuirement for Sr.Project Lead with US MNC Juno Online System
    ... Development Pvt Ltd, Hyderabad and they need urgently ... Experience:4- 9 years experience in software development and ... Design, develop, implement and maintain efficient software - ...
    (microsoft.public.vc.language)
  • Urgent Reuirement for Sr.Project Lead with US MNC Juno Online System
    ... Development Pvt Ltd, Hyderabad and they need urgently ... Experience:4- 9 years experience in software development and ... Design, develop, implement and maintain efficient software - ...
    (microsoft.public.vc.language)