[net.lang.ada] OOD References

EBERARD@USC-ECLB.ARPA (Edward V. Berard) (10/25/85)

Paul,
   In reference to your request for more information on Object Oriented
Design approached, the following references should prove helpful:

- R.J. Abbott, "Program Design by Informal English Descriptions,"
Communications of the ACM, Vol.26, No. 11, November 1983, pp.882-894.

- G. Booch, "Object Oriented Design," Ada Letters, Vol. 1, No. 3, March
1982, pp.64-76.

- B.J. Cox, "The Message/Object Programming Model: A Small Change at a
Deep Conceptual Level," in IEEE Proceedings of the Softfair: A
Conference on Software Development Tools, Techniques, and Alternatives,
July 25-28, 1983, pp.51-60.

- T. Love, "Experiences With SMALLTALK-80(TM) for Application
Development," in IEEE Proceedings of the Softfair: A Conference on
Software Development Tools, Techniques, and Alternatives, July 25-28,
1983, pp. 61-65.

- D.A. Boehm-Davis and L.S. Ross, "Approaches to Structuring the
Software Development Process," General Electric Technical Report Number
TR-84-B1V-1, October 1984. [For a copy of this report, contact Deborah
Boehm-Davis at: George Mason University, Psychology Dept., 4400
University Drive, Fairfax, VA, 22030]

- B.J. Cox, "Object Oriented Programming, A System-Building Tool,"
published by Productivity Products International, 27 Glen Road, Sandy
Hook, CT.

- G. Booch, "Object-Oriented Development" to be published soon

- Rentsch, T. "Object Oriented Programming," SIGPLAN Notices, Vol. 17,
No. 9, September 1982, pp. 51-57.

- G. Buzzard and T. Mudge, "Object-Based Computing and the Ada
Programming Language," IEEE Computer, Vol. 18, No. 3, March 1985, pp.
12-19.

- B. MacLennon, "Values and Objects in Programming Languages," SIGPLAN
Notices, Vol. 17, No. 12, December 1982, pp. 70-79.

- G. Booch, "Object-Oriented Design," (Adapted from Software Engineering
With Ada, 1983) in IEEE Tutorial on Software Design Techniques, Fourth
Edition, Edited by P. Freeman and A.  Wasserman, pp. 420-436.

- G. Booch, Software Components With Ada, to be published by Benjamin
Cummings. 

- A. Goldberg and D. Robson, Smalltalk-80, The Language and Its
Implementation, Addison-Wesley, 1983.

You might also try contacting Bill Riddle at the Rocky Mountain
Institute for Software Engineering, regarding some recent sessions on
"Comparative Software Methodologies." There are other references, but
these should get you started.

                                -- Ed Berard 
                                   (301) 251 - 1626
-------

mss@DARTMOUTH.CSNET (10/27/85)

One should be careful when referring to "Object Oriented Design". There
are two separate design approaches that share that name: abstract data
types (a.k.a., data abstractions, information hiding) and hierarchical
types (a.k.a., classes). The former focuses on the idea that an
object's type should be defined by a name (rather than by a storage
structure) and a set of operations on the objects. One thinks of Ada's
packages (with private types), Modula's modules, Clu's clusters or
Alphard forms in this category (no pun intended). Hierarchical types
allow one to provide a "general" interface which can be refined as
necessary, for example, a graphics-object may be further refined into
rectangles and ovals. One thinks of Smalltalk's classes, Simula-67's
classes, Object Pascal's Objects and Scratchpad-8? (84 I think) as
examples. Note that these are orthogonal concepts. One can have
hierarchies without hiding (e.g., Simula classes without the use of
"hidden" attribute) and hiding without hierarchies (e.g., Ada
packages). Smalltalk has hiding and hierarchies.

In reading the literature, one should be especially careful of
separating concerns of "Object-Oriented" systems. A lot of discussion
about the Smalltalk-80 system implies that its Object-Orientation is
what makes the bit mapped graphics, interactive debugging, automatic
garbage collection, symbolic debugger (a.k.a. browser) and other
development aids available. This is not true. For example, MacPascal
(limited though it is) gives many of the same features w/o any pretense
of "Object Orientation". Historically, the development features just
weren't available elsewhere besides Smalltalk-80, hence there is an
implication that the development features and OOD must be synonymous.
In fact, you can get the same features for an assembler system if you
are willing to "pay" for it.  The LRG was willing to pay, the Mesa
group was willing to pay less, others were not willing to pay at all.

			-Mark Sherman (mss@dartmouth.csnet)

GBOOCH@USC-ECLB.ARPA (10/28/85)

Regarding OOD references, I might also recommend the book 'On Conceptual
Modeling' published by Springer-Verlag in 1984. Among other things, this
book provides perspectives on object-oriented approaches from three
different subcultures: AI, databases, and programming languages.

Also, the 'to appear' article that ed mentioned I wrote is scheduled to
appear in the January issue of IEEE Transactions of Software Engineering
( a special issue on design methods).

egb

p.s. there is an object-oriented programming systems conference in the
planning, to be held sometime in the fall of 86. more details as they become 
available. this will be an acm sponsored event.
-------