Newsgroups: comp.software-eng,comp.object,comp.lang.eiffel,comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!travelers.mail.cornell.edu!news.kei.com!news.mathworks.com!tank.news.pipex.net!pipex!newsfeed.internetmci.com!uunet!in1.uu.net!comp.vuw.ac.nz!actrix.gen.nz!dkenny
From: dkenny@atlantis.actrix.gen.nz (Des Kenny)
Subject: Re: Comparing OO against Structured Methodologies
Keywords: Analysis, Structured, Object-Oriented
Message-ID: <DGyE3F.LB4@actrix.gen.nz>
Sender: Des Kenny
Summary: Order of thinking is the difference. 
Organization: Actrix - Internet Services
Date: Tue, 24 Oct 1995 12:45:15 GMT
References: <456e5q$3kve@news-s01.ny.us.ibm.net> <45eg19$b81@taco.cc.ncsu.edu> <45eppi$ban@natasha.rmii.com> <468731$ai9@snlsu1>
X-Nntp-Posting-Host: atlantis.actrix.gen.nz
Lines: 98
Xref: glinda.oz.cs.cmu.edu comp.software-eng:38159 comp.object:39750 comp.lang.eiffel:11328 comp.lang.smalltalk:29800

In article <468731$ai9@snlsu1>,
Patrick Frend  <frend@ferndown.ate.slb.com> wrote:
> cjames@cec-services.com (Colin James III (The Rt Rev'd)) wrote:
> >ichudov@espcbw.stat.ncsu.edu (Tentacle of Igor Chudov) wrote with
> >possible deletions:
> >
> >| Colin James III (The Rt Rev'd) (cjames@cec-services.com) wrote:
> >| : ark@research.att.com (Andrew Koenig) wrote with possible deletions:
> >| : | In article <4570g8$c67@natasha.rmii.com> cjames@cec-services.com writes:
> >| : | > Object-oriented analysis (OOA) is the process of abstracting the
> >| : | > problem domain to the point where it is isolated, definable, in its
> >| : | > most generic form, and reduced to requirements.
> >| : | 
 

Both involve Analsis, the opposite of Synthesis. Analysis means breaking 
a system down into parts.

The distinction is quite simply how do you define those parts and in what 
order do you break them down. 

People tend to forget that Analysis techniques historically almost always 
evolve from programming concepts scaled up to solve more extensive problems.
Many "Analysts" have never been "programmers" so they learn methods by rote
without really understanding the evolution of the methods. This leads to 
interminable arguments about whether boiled eggs should be cracked slowly or 
cut swiftly and decisively before eating, resulting in mighty wars of 
words ( and cold eggs).  

Structured Analysis derives from structured programming where the 
parts are programs or in more general terms processes with inputs , 
outputs and permanent storage. These in turn were derived from the basic 
machine instruction concept that is expressed in the order :
operator first, followed by its operands. For which you can probably blame 
John Von Neumann and other mathematicians that were trying to add 1 + 1 
on machines the size of houses.  Mathematically the thinking was focused on
electro-mechanical "Analysis" not abstract "Algebra". This mindset 
that the operation is the first thing to think about perculated upward 
(downward?)into Programming and then into Systems Analysis.

The order of thinking is process first, usually layered into a functional
decomposition hierarchy. The data definition is secondary and may be found
scattered across processes and usually duplicated in storage definitions.

For some bizzare reason a few program language developers decided to turn 
the thinking round: the operands first and then the associated
operations that may apply to such operands- The Algebraic way of looking 
at the world => Object-oriented programming.

Object-Oriented Analysis changes the order of thinking 
around. The parts are objects that belong to a type hierarchy. They are
expressions of abstract data types ( mathematically composed of: types,
functions, preconditions and axioms ). Objects have behaviour which may be 
considered to be "processes" , but there is no such concept as a disembodied 
process. A process may only be defined in the context of the behaviour of
objects communicating. Mathematically this is more sensible since an operation 
has no meaning outside the context of its domain and range. Disembodied 
functions do not really exist, physically or mathematically. X/3 makes 
sense in the context of Real Numbers, but is horrifying to a duck and 
would definitely violate all duck assertions.


Personally I believe that the "school of Structured Analysis" got lost in 
the bushes because they did not understand or forgot very basic concepts of 
mathematical relations ( We are talking year 1 high school stuff then 
which is probably year 1 primary school stuff by now). Hard to 
believe isn't it, but it sure looks that way to me. Computer Science was 
trying to pretend it was not descended from (Disctrete) Mathematics and
"Systems Analysts" were trying to keep their distance from both of these
"Technical" tribes and cuddling up to the "Business" community who should not
 have to deal with these "Technical" areas. Such is the Anthropology of 
Sofware "Science", as political and bigoted as any other "Science". 
Which brings us full circle to the Context of Human Behaviour - the type 
hierarchy of Human Society. I rest my case. There are Phds in sociology ,
psychology, anthroplogy, political science etc, hiding in all this stuff.
Merry digging!!


Cheers

--Des Kenny

dkenny@swell.actrix.gen.nz







 







