Path: utzoo!mnetor!ghp!tom
From: tom@ghp.UUCP (Tom Huras)
Newsgroups: comp.lang.smalltalk
Subject: Object-Oriented Analysis
Keywords: Object-oriented analysis, data modeling, conceptual
Message-ID: <125@ghp.UUCP>
Date: 27 Sep 88 23:46:28 GMT
Distribution: na
Lines: 55


This is a request for techniques or methodologies for analysing
complex engineering systems.  There is much said about object-oriented
programming, a tiny bit on object-oriented design (a few rules of
thumb), but there is a paucity of material on object-oriented
analysis.  In this posting I explain why the traditional techniques
are insufficient, and what I'm trying now.  If there are no
methodologies available, it would be nice if someone confirmed what
I'm trying.

In software engineering, there seems to be a shortage of analysis
techniques.   The traditional "data processing" techniques:
-  structured analysis (Gane & Sarson dataflow diagrams and process
diagrams)
-  data modeling (Chen's entity-relationship diagrams)
tear out the procedural aspects from the data.  In complex
engineering systems, the principles of information hiding,and data
abstraction say that the traditional approaches are inadequate.

The concept I'm using right now is to model the "enterprise" by its
fundamental objects.  I've started with an entity-relationship model
to get a model of the passive, data objects.  I've enhanced the model
by associating methods with the objects, and I have allowed for
inheritance to capture the generalization aspects.  Going at the model
from the other end, I've modeled the high-level, active objects as
resources accessing and using the passive, data objects.

The overall goal is to use the model to partition the system into real
computer systems and human tasks.  Then, further expand the objects
into greater detail for eventual implementation (maybe even using an
object-oriented language).

Just so that you know where I've been, my prime sources of motivation
at this time are:

-  Bertrand Meyer's Object-oriented Software Construction  (1988):
provides compelling reasons for using object-oriented techniques

-  Brodie/Mylopoulos/Schmidt's On Conceptual Modelling (1982): deals
with the need for conceptual modeling borrowing techniques of
knowledge representation from AI, semantic data models from databases,
and abstractions from programming languages.

-  Rumbaugh, "Relations as Semantic Constructs in an Object-Oriented
Language", OOPSLA '87: this tells how relations in an
entity-relationship model should be implemented in an object-oriented
language.

Comments?  I'll summarize if appropriate.
-- 
"Wisdom is supreme;          | Tom Huras, Gellman.Hayward & Partners Ltd.
  therefore get wisdom.      | 33 Yonge St., Toronto, Ontario, Canada, M5E 1G4
Though it costs all you have,| UUCP:{decvax|allegral|ihnp4|linus|utcsri}
  get understanding."        |      !utzoo!mnetor!ghp!tom
               Proverbs 4:7  | Disclaimer: These are only my opinions.