I need a message-goto object language

Lynn H. Maxson lmaxson@pacbell.net
Tue, 25 Jul 2000 07:18:26 -0700 (PDT)


I'm somewhat surprised that the method of 
structured analysis and design, which has dominated 
"large" contract software in the United States 
since the late 70's, never made it to France.<g>  
Basically the method was developed by Larry 
Constantine who published under the Yourdan Group 
and taught at IBM's System Research Institute 
(SRI).

Structured analysis uses dataflows.  Basically the 
only purpose is to insure that the system works in 
terms of completeness, having a continuous "flow" 
(connection) from the outputs in a system to their 
inputs into the system.  Structured design follows 
analysis by offering a heuristic that converts the 
dataflows into structure charts, giving you 
essentially the functional programming.

It is a two-step procedure.  More to the point in a 
recent UML conference participants heard from 
several large scale OO projects that UML had to be 
supplemented by structured analysis and design to 
support (people) communication.

I will put in a plug here for you to consider a 
specification language instead of a programming 
language as this will allow automated generation of 
dataflows, structure charts, and executables from 
the writing of a single set of specifications.  
Thus the only "people translation" that takes place 
is that from user requirements to specifications.

If you insist on an OO-only language, then you 
admit to using at least two languages, one for OO 
and one for converting it to a form (procedural) 
usable by the computer.  I would probably recommend 
a specification language which will allow either 
form in the same manner (and for the same reason) 
that it supports both declarative and 
non-declarative styles.

Language authors should not dictate user styles.  
The function of a language author, at least one not 
so arrogant to believe that "he" knows what's best 
for you, is to "enable" the user and support his 
style.  That's a far more difficult task than what 
we see reported here.  It is the one adopted by the 
PL/I committee in the early 60's.  I would suggest 
that if you want to see what's possible in a 
programming language, particularly a 
procedural-based one, that you take a close look at 
PL/I.

As a historical note Kenneth Iverson's book "A 
Programming Language" is slightly misnamed as he 
proposed its use as a specification language to 
replace flowcharting.  I would recommend highly 
your reading at least Chapter 1 to see how to 
visually represent functions and their 
interconnection.  I say visually because you can 
"see" the difference between a well-structured 
program and one of spaghetti "go-to" code.

There is nothing wrong with using structured 
programming control structures despite their 
embedded "go-to"s.  Not all "go-to"s are created 
equal.<g>  The purpose lies in creating more 
readable code in a linear manner (top-down).  The 
rules are topologically simple (one-in, one-out).

To be clear dataflows are "data passing" only, not 
"message passing".  Another difference lies in the 
processes, even their names, being unimportant in a 
dataflow analysis.  All the process represents is 
some form of a filter which maps the outputs back 
onto the inputs without concern (at this time) for 
the rules involved.  That's why it is called 
"structured" (one step at a time) analysis and 
design.  The second step, structured design, 
fleshes in the processes as well as creating their 
hierarchical structure.