[comp.object] Intro to OOP summary

paul@tredysvr.Tredydev.Unisys.COM (Paul Siu) (10/22/90)

I posted a news article requesting information introductory information on
understanding OOP and its relation to software engineering.  I am now posting
the responses from the helpful individuals on the net.  I like to thank the
following people who responded:

     Lise-Lotte Hjorth
     Rich Murphey
     Bill Hahn
     Michael Assels
     Magnus Ramstr

------------------------------------------------------------------------------

Hi there,

on notes you asked for an introduction to OOP. As a student I read a
very good article which explained the basic concepts of OOP. I do not
remember the title of the article or all the names of the authors. But
here is what I do remember:
   - one of the authors is Ole Lehrmann Madsen, Aarhus University,
Denmark. I guess Birger Moller-Pedersen is one of the other authors.
   - the article is in the procedings from ECOOP'88. It is the article
with Garfield illustrations. The procedings are from Springer-Verlag.

The article explains the Scandinavian view of OOP, the difference
between OOP / structured programming / functional programming /
constrained programming. The article is used as introduction to
OOP at Aarhus University, Computer Sience Dept. It is about 20 pages
long. 

Lise-Lotte Hjorth

------------------------------------------------------------------------------

I just bought the new Booch book about object oriented design.  It
does begin by adressing the approach to software engineering design
and its relation to design in other disiplines and to orgainization in
biological and other physical systems.

Grady Booch, Object Oriented Design with Applications
Benjamin/Cummings , 1991 ISBN 0-8053-0091-0 Covers OOD mapping into
processes.

It seems to take a very broad approach to understanding OOD.

Good luck! Rich

------------------------------------------------------------------------------

Have you tried "Object-Oriented Software Construction" by Bertrand
Meyer?  

The first four chapters are concerned with explaining OOP.  The subsequent
chapters continue the explanation in terms of the language Eiffel.  (Yes,
Mr. Meyer is in business selling this language.)  However, there is
a detailed discussion of differences between Eiffel and Smalltalk and Simula, 
etc.

I found it much easier to understand other OOPL's after reading this book.
One thing you might like is his explanation of his first four wrong(!) 
attempts in designing a linked-list class; you'll learn that object-oriented
design doesn't necessarily come easily.  Also he has an entire chapter
where he does examples (undo feature in an editor, airline ticket system).

A good book, even if you never write an Eiffel program....
--
Bill Hahn               bhahn@bogus.sw.stratus.com
Stratus Computers      "I would no more lie to my government than my
Marlboro, MA, USA        government would lie to me." - graffito in Maryland
--------- These are my opinions and not necessarily those of Stratus.------

------------------------------------------------------------------------------

A good book that explains OOP in general is 

        Object Oriented Software Construction, by Bertrand Meyer

Meyer is the creator of Eiffel, and he uses Eiffel in his examples, but
the book is about OO principles, not about Eiffel.

You are absolutely right to be confused about the exact meaning of the
word 'paradigm'.  Its literal meaning is 'an example used to illustrate
a general rule'.  For example, when Latin was taught in schools, the
verb 'amare' was used as the paradigm of 1st conjugation verbs; students
recited "amo, amas, amat, ...".  Once they had learned that, they would
know how to conjugate any -are verb: Just replace -are with -o, -as, -at,
...

In Computer Science, and in many other disciplines, people have been
abusing the word 'paradigm' ever since the appearance of Thomas Kuhn's
influential book "The Structure of Scientific Revolutions".  (Kuhn used
the word correctly, but many of his readers missed the point.)  It now
means something like "style of doing things".  Hence, we have the
procedural, functional, logical, and OO programming paradigms.  Typical
examples (REAL paradigms) are, respectively, Pascal, LISP, Prolog, and
Smalltalk.

As for "petra nets", could these be Petri nets?  I can't tell you much
about them except that they are used in modeling data flow.

I hope some of this may be helpful.

Regards,

Michael Assels
Logic, Formal Methods, and Coffee Lab
Dept. of Comp. Sci.
Concordia University

------------------------------------------------------------------------------

References to issues of BYTE dealing with object oriented programming:

vol. 14, nr. 3, March 1989.

vol. 11, nr. 8, August 1986.

vol. 15, nr. 4, April 1990.

vol. 6, nr. 8, August 1981.


Many excellent articles explaining object oriented programming have been
posted in Usenet, my personal "favorite" is Edward V. Berard
(eberard@grebyn.com) who (to my knowledge) has posted three articles on
different aspects of object oriented programming and one followup, which
in itself could be an article.

Personally I would say that it is easy to write down the definition of
object orientation in a fairly understandable manner, but you have to
use it before you fully understand it (it really comes quite natural
once you have passed the threshold built from knowledge of less natural
programming strategies).

Good luck (hope this can be of some use to you)-- 
d87-mra@nada.kth.se (Magnus Ramstr|m). Student @ Dep. of Computer Science.

----------------------------------------------------------------------------

--Paul Siu
  paul@tredysvr.Tredydev.Unisys.COM

bll@seer.UUCP (Brad Lanam) (10/25/90)

>                  my personal "favorite" is Edward V. Berard
>(eberard@grebyn.com) who (to my knowledge) has posted three articles on
>different aspects of object oriented programming and one followup, which
>in itself could be an article.

    I have the following articles by Ed Berard saved off.  If anyone has
others by Ed Berard that are not listed here, please e-mail me.  Thanx.

-- Brad

--
Until the next disk seek...
   -- Brad Lanam    ...!uunet!{seeker|unisoft}!seer!bll    bll@seer.uucp



Subject: Object-Oriented Methodologies
Keywords: methodologies
Date: 25 Oct 89 07:42:06 GMT

Subject: What is "object-oriented ..."
Keywords: object-oriented, history, etc.
Date: 29 Oct 89 03:20:41 GMT

Subject: Re: programming design methodologies for object-oriented programming
Summary: JSD: Good News and Bad News
Date: 31 Oct 89 02:35:49 GMT

Subject: Understanding the Object-Oriented Life-Cycle
Keywords: life-cycle, object-oriented, models
Date: 31 Oct 89 18:35:25 GMT

Subject: Object-Oriented Design: An Introduction
Keywords: object-oriented design, history, bibliography
Date: 21 Nov 89 13:09:05 GMT

Subject: Object-Oriented Requirements Analysis: An Introduction
Keywords: object-oriented, analysis, bibliography
Date: 23 Nov 89 15:34:57 GMT

Subject: A Closer Look At the Recursive/Parallel (OO) Life-Cycle
Keywords: object-oriented, recursive/parallel, life-cycle
Date: 22 Dec 89 03:08:42 GMT

Subject: Object-Oriented Domain Analysis: An Introduction
Keywords: object-oriented, domain analysis, reuse, bibliography
Date: 24 Dec 89 01:13:51 GMT

Subject: Evaluating "Object-Oriented" Programming Languages
Keywords: object-oriented, programming languages, evaluation, bibliography
Date: 3 Jan 90 03:18:09 GMT

Subject: Re: Evaluating "Object-Oriented" Programming Languages
Summary: Answers and References
Keywords: object-oriented, programming languages, evaluation, bibliography
Date: 7 Jan 90 03:31:53 GMT

Subject: Re: Evaluating "Object-Oriented" Programming Languages
Summary: clarifications
Keywords: object-oriented, programming languages, evaluation, bibliography
Date: 11 Jan 90 15:30:43 GMT
-- 
Until the next disk seek...
   -- Brad Lanam    ...!uunet!{seeker|unisoft}!seer!bll    bll@seer.uucp