(ref.doc)rmartin 060395

Next horstman 140395 Prev: egb 121294 Up: Usenet

Newsgroups: comp.object
From: [email protected] (Robert Martin)
Subject: Re: Booch was wrong about DFDs and OOA
Date: Mon, 6 Mar 1995 02:59:21 GMT

[...] Booch provides diagrams that can be used in lieu of DFDs, and
these diagrams are convenient for use in object oriented analysis and
design, whereas DFDs are not.    

Actually, this argument gets to the heart of the matter very quickly.
Data flow analysis is a top down approach which produces a model in
which the high level abstractions depend upon the low level details.
OO analysis, on the other hand, produces a model in which the high
level abstractions are independent, and the low level details depend
upon them. 

This inversion of the dependency structure between the "structured"
methods, and the object-oriented methods is a fundamental difference.
It makes it very difficult to implement a data flow model as an object
oriented program.

The inversion of dependencies is also at the root of the benefits that
OO has over the structured techniques.  When dependencies are
inverted, abstractions are reusable and are not subject to change when
the details need changing.

>The most powerful thing about a DFD is that I can show it to someone
>who knows little nothing about my system, software, or OOP (e.g. marketing, 
>customer, hardware engineers, etc) and they can give me value
>input as to whether I am missing some requirements in my analysis of
>the problem. 

Yes, to a certain extent.  And for this, I agree that DFDs are useful,
and should not be abandoned by the OO community.  However, in the
structured methods, the software design is closely related to the data
flow model.  In OO methods, the data flow model must used only as a
specification document, not as an architectural one.  

automatically generated by info2www version 1.2.2.8