[comp.object] OO vs. Information Engineering

schultz@grebyn.com (Ronald Schultz) (08/30/90)

Object-Oriented Development appears to, after watching postings
here, to be a niche software development technique, only suitable
for real-time, graphics software, or operating system
development.  After watching for months, I have seen little to no
posting as to how object-oriented development is in any way a
complete lifecycle development approach for business systems
development.  

My interest in this is from an MIS management perspective. 
Information Engineering (IE) (Finkelstein and Martin) is becoming
the development methodology of choice for most organizations. 
Many of the Fortune 100 are spending millions on CASE tools in
support of these methods.  (In the latest issues of
ComputerWorld, both Ford and GE have recently signed multimillion
$$ agreements with CASE vendors for tools).  Information
Engineering experienced systems analysts command 5K to 15K higher
salaries than their non-IE peers due to the number of companies
trying to hire them.

OOD, as it stands today in what I see in the trade press, on
USENET, and in seminars, seems in no way as robust or as complete
as IE.  Tool support is diverse and complete for IE, from high
level business systems planning support clear to automated code
generation.  The basic question is:

How can an MIS manager in good concience recommend OOD for key,
high visibility business systems again IE?  

As project manager for the IBM mainframe user's group project on
Object-Oriented Development, I am constantly asked this question. 
While I may be a zealot for OO, I have serious doubts that OO
will ever take hold in MIS against IE.  Even the benefits of
object-oriented programming may be soon passe against the code
generation facilities of products like Knowledgeware's IEW and
TI's IEF.  

And so I issue a challenge.  In terms of a complete lifecycle
methodology, from business systems planning through testing and
maintenance, what does OO offer that is better than IE?  Give me
any reasons why a senior MIS manager should bet his job and that
of his staff (and possibly his company - since many MIS systems
are mission critical to an enterprise's survival (e.g. American
Express)).  Is the hype to OO merely a marketing promo for C++
and OODBMSs, or is there something substantial for us in MIS to
deal with ?  

Thanx for listening

Ron Schultz
schultz@grebyn.com

614-759-3127

cox@stpstn.UUCP (Brad Cox) (09/03/90)

In article <21730@grebyn.com> schultz@grebyn.com (Ronald Schultz) writes:
>
>And so I issue a challenge.  In terms of a complete lifecycle
>methodology, from business systems planning through testing and
>maintenance, what does OO offer that is better than IE?  Give me
>any reasons why a senior MIS manager should bet his job and that
>of his staff (and possibly his company - since many MIS systems
>are mission critical to an enterprise's survival (e.g. American
>Express)).  Is the hype to OO merely a marketing promo for C++
>and OODBMSs, or is there something substantial for us in MIS to
>deal with ?  
>
There absolutely is big news here of tremendous relevance to MIS and to
IBM, but it has been obscured by all the hype to the effect that OO is 
only about glitzy new ways to build programming languages and databases;
i.e. yet another in a long dismal chain of new *processes* for building
code from scratch.

Notice that the very term, 'object-oriented', implies reorienting 
so that not to continue seeking software's salvation in glitzy new *processes* 
(languages, methodologies, lifecycles, blah, blah) but instead by orienting 
instead on the *product*; the software itself.

This is not a trival change, but a paradigm shift comparable to what
Copernicus' did in shifting the center of the universe from the earth
to the sun, and to what Ely Whitney did in shifting the center of 
manufacturing from cut-to-fit hand craftsmanship to a marketplace 
in interchangeable components.

It is this broader change that is the long-term importance of OO, not the
narrow whiz-bang technological focus that dominates OO discussion today.

Two articles are being published this fall that go into this in detail.
See the October issue of Byte magazine for "There is a silver bullet" which
develops the Copernicus and Ely Whitney examples.

Also see the November issue of IEEE Software for a deeper discussion of 
what I mean by the title "Planning the Software Industrial Revolution; 
The Impact of OO Technologies".
-- 

Brad Cox; cox@stepstone.com; CI$ 71230,647; 203 426 1875
The Stepstone Corporation; 75 Glen Road; Sandy Hook CT 06482
-- 

Brad Cox; cox@stepstone.com; CI$ 71230,647; 203 426 1875
The Stepstone Corporation; 75 Glen Road; Sandy Hook CT 06482

tom@ssd.csd.harris.com (Tom Horsley) (09/03/90)

I don't claim to have read all the books on software engineering ever
written, but I have read *a lot* of them. I kept reading them because I
hoped that someday one of them would make sense, but mostly they
continuously harp on the ``Lifecycle Model'' and ``Waterfall Diagrams''.
Every time I read one of these books I come away thinking "What a load of
<insert derogatory noun here>". Anyone who has ever been involved in
a large project to develop new software (not just re-write the same
old payroll system for a new client) knows that the so-called life
cycle model bears about as much relationship to what really goes on
in the software development process as Aristotle's description of
how to make mice (by leaving some cloth and rice in a pot outdoors)
bears to the actual life cycle of mice.

I would not go so far as to call OOD a "silver bullet", but I recently read
Grady Booch's new book "Object Oriented Design with Applications", and it is
the first software engineering book I have read that ever made sense or
seemed remotely relevant to the actual process of software development.  It
is a very well written book that does not scream at you like some dedicated
OO fanatics do, but gives carefully reasoned arguments that clearly
demonstrate the fallacy of the so-called life cycle, and demonstrates the
superiority of OOD (without falling into the trap of claiming that OOD is
the total solution to all problems). This is a book that should be read by
anyone wondering why they should use OOD as well as OOD fanatics who think
that OOD will solve all problems, end war, and cure cancer.
--
======================================================================
domain: tahorsley@csd.harris.com       USMail: Tom Horsley
  uucp: ...!uunet!hcx1!tahorsley               511 Kingbird Circle
                                               Delray Beach, FL  33444
+==== Censorship is the only form of Obscenity ======================+
|     (Wait, I forgot government tobacco subsidies...)               |
+====================================================================+

jimad@microsoft.UUCP (Jim ADCOCK) (09/05/90)

In article <TOM.90Sep3080218@hcx2.ssd.csd.harris.com> tom@ssd.csd.harris.com (Tom Horsley) writes:
|I would not go so far as to call OOD a "silver bullet", but I recently read
|Grady Booch's new book "Object Oriented Design with Applications", and it is
|the first software engineering book I have read that ever made sense or
|seemed remotely relevant to the actual process of software development.  

I like the Booch book a lot.

Another recent OOP survey book that I believe is very good is:

Object Orientation: concepts, languages, databases, user interfaces
Khoshafian & Abnous
John Wiley & Sons 1990
ISBN 0-471-51802-6
ISBN 0-471-51802-8 [pbk]

[Readers interested in C++ should be forwarned that both books get their
C++ examples wrong.]

hkilov@corwin.CCS.Northeastern.EDU (hiam kilov) (09/11/90)

A frequently asked question:

My interest in this is from an MIS management perspective.
Information Engineering (IE) (Finkelstein and Martin) is becoming
the development methodology of choice for most organizations.
Many of the Fortune 100 are spending millions on CASE tools in
support of these methods.  (In the latest issues of
ComputerWorld, both Ford and GE have recently signed multimillion
$$ agreements with CASE vendors for tools).  Information
Engineering experienced systems analysts command 5K to 15K higher
salaries than their non-IE peers due to the number of companies
trying to hire them.

OOD, as it stands today in what I see in the trade press, on
USENET, and in seminars, seems in no way as robust or as complete
as IE.  Tool support is diverse and complete for IE, from high
level business systems planning support clear to automated code
...

The answer is: "look at the keyword". The keyword in all of the above is
"tools". These silver bullets do not consider concepts, and -- evidently --
concepts are ahead of tools. Therefore there are problems with tools for o-o
development. However, it is possible to do o-o development using the best
tool in the world, i.e., your brains.

Look in the August issue (1990) of "Database programming and design". The
nice short article by W.Inmon (p.75-6) compares civil engineering and software
development. And I quote:

"Civil engineers recognize that tools are essential to do the job -- they
can't build the roads without bulldozers. They respect tools, but don't
make the mistake of thinking the tool is the solution. Information processing
professionals, however, continue to search for a panacea -- every time a new
tool appears in the marketplace, we hear that the solution has arrived..."
{Some good remarks about tool vendors deleted.}

As early as in 1976 E.W.Dijkstra has published a paper "The teaching of
programming, i.e., teaching of thinking". It would be nice not to forget at
least the title. And, of course, "programming" does not mean just "coding".

Happy programming!


<These opinions are my own and are not necessarily the opinions of Bellcore>

-Haim Kilov
haim@bcr.cc.bellcore.com

pcg@wdl1.wdl.fac.com (Paul C George) (09/13/90)

Most of the OOD approaches (ie booch, coad, mellor/schlaer) for requirements analysis
are very similar to information engineering and the early 80's data driven design
techniques. One studies the enterprise information to get a handle on how the business
groups its information and what forms it takes.
  OO extends the concept of 'owning' information to encapsulating it in an object;
that is a 'process' which provides externally accessable routines for getin at the
information while retaining control.
  Further, it hides implementation details thus simplifing understanding. This maps
well to the traditional data flow bubble process spec which defines the input and
outputs of a process; as well as conventional documentation standards. It also
provides a mechanism for implementing the data dictionary. Through the use of a type
hierarchy you can specify the fields/attributes and entities in a way which is
directly invokable in code, thus reducing multiple incarnations of the same record or
field with different names. Rather than having to modify every module which your data
dictionary says uses an item, you need only alter the type definition and recompile
(presuming you implement in an object oriented language).
  The key savings is that you develop very modular code with few interdependancies. 
You can alter the implementation of an object without affecting anything that uses it.
Only if you alter the interface are they affected. Admitedly, if you are implementing
in COBOL the benifits will be less as you can't really evewn do structured programming
using procedures. But 'conventional' languages like Pascal, Fortran, or C may support
encapsulation of procedures or type definitions invocable via include or '.h' files.
If you are stuck with COBOL than TI's IE tool set may be more usefull, but use of OO
ideas such as types, inheratance, and information hiding may be usefull for defining
your function hierarchies.
  In terms of OOSD, theis is essentially an extention of the Structure Chart for use
with OO languages. If you use them, they may help.
  As a final comment, Object Orientation is not the holy grail. It presumes you have 
multiple pieces of software that communicate via messages. This may map well to event
driven or distributed systems, but may not apply to complex state machines or batch
processes. Some authors have distinguished between event driven, data driven (info
content determines processing), and process driven systems. Other systems may in fact
be composed of objects, or have multiple concurrent states and complex timing
interactions between objects. Use a description technique most appropriate to the
problem.  Then select an inplementation design technique and language appropriate to
the solution.