comp.lang.ada
 help / color / mirror / Atom feed
From: rmartin@oma.com (Robert C. Martin)
Subject: Re: Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools)
Date: 1996/11/12
Date: 1996-11-12T00:00:00+00:00	[thread overview]
Message-ID: <rmartin-1211961136530001@vh1-004.wwa.com> (raw)
In-Reply-To: Jan-0611961134040001@news.imagina.com


In article <Jan-0611961134040001@news.imagina.com>, Jan Steinman
<No@Junk.Mail.Please> wrote:

> In article <55pqr5$136a@grimsel.zurich.ibm.com>, Paul_Gover@uk.ibm.com wrote:
> 
> > In <32813322.41C6@kyebek3.kjist.ac.kr>, Dong Oh Kim
> <kdo@kyebek3.kjist.ac.kr> writes:
> > > ...
> > >Let me have your opinions about followings:
> > >
> > > 1. Is everything OK with existing oo development methods?
> > >    If not, what are needed? and what stage should be enforced in the  
> > >    future,i.e,analysis or design,etc...?
> > > ...
> > 
> > OK, here's my 2 cents: most OO development methods concentrate too much
> > on objects and too little on classes...
> 
> Gee, in my 8 month experience with one well-known methodology, I felt just
> the opposite! It was impossible to model instance-specific behavior
> without pretending it was a class. Of course, we might just have been
> using it wrong...

Objects execute inside computers.  They take up memory space and CPU cycles.
Classes are source code.  They specify the objects and create a structure
from which the objects are created.

Any method that concentrates on one more than the other is doing a disservice
to its inventors and its users.  Rather we must focus on both.  We generally
use dynamic models (i.e object diagrams, interaction diagrams, etc) to specify 
objects and the way that they interact.  We use static models (i.e. class 
diagrams, package diagrams, etc) to specify classes and the static
relationships between them.  

There is a mapping between the two kinds of models that must be maintained.
Every relationship on a dynamic model; that is, ever pathway accross which
a message is sent; must be supported by a static relationship in a static 
model.

For example, if object A sends a message to object B, then there must
be a class relationship somewhere that supports that.  For example, the
relationships might be an "aggregation" relationship between the class
of A and the class of B.  Or it might be an 'association' between
one of the base classes of A and one of the base classes of B, etc.

Static models, when developed in the absense of dynamic models, cannot be
proven correct.  They often have missing relationships and unnecesary
relationship because the suite of relationships was untested by dymnamics.

On the other hand when dynamic models are developed in the absense of static
models, the structure of the software is seldom as flexible and maintainable
as needed.  Opportunities for reuse and robustness are lost.  The code
becomes interdependent and slowly rots.

-- 
Robert C. Martin    | Design Consulting   | Training courses offered:
Object Mentor       | rmartin@oma.com     |   Object Oriented Design
14619 N Somerset Cr | Tel: (847) 918-1004 |   C++
Green Oaks IL 60048 | Fax: (847) 918-1023 | http://www.oma.com  

"One of the great commandments of science is:
    'Mistrust arguments from authority.'" -- Carl Sagan




  parent reply	other threads:[~1996-11-12  0:00 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-11-06  0:00 Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Dong Oh Kim
1996-11-06  0:00 ` Paul_Gover
1996-11-06  0:00   ` Snowball
1996-11-13  0:00     ` Peter Pflaum
1996-11-13  0:00       ` David N. Smith
1996-11-06  0:00   ` Alan Lovejoy
1996-11-07  0:00     ` Piercarlo Grandi
1996-11-10  0:00       ` Vlastimil Adamovsky
1996-11-11  0:00         ` Piercarlo Grandi
1996-11-11  0:00           ` Anthony Menio
1996-11-18  0:00             ` Piercarlo Grandi
1996-11-20  0:00               ` Anthony Menio
1996-11-27  0:00                 ` Piercarlo Grandi
1996-11-12  0:00           ` Anthony Menio
1996-11-18  0:00             ` Piercarlo Grandi
1996-11-19  0:00               ` Anthony Menio
1996-11-27  0:00                 ` Piercarlo Grandi
1996-11-10  0:00       ` drs
1996-11-12  0:00         ` Piercarlo Grandi
1996-11-11  0:00       ` Daniel Drasin
1996-11-12  0:00         ` Anthony Menio
1996-11-08  0:00     ` Paul_Gover
1996-11-08  0:00       ` Ell
1996-11-08  0:00         ` Alan Lovejoy
1996-11-13  0:00           ` Ell
1996-11-08  0:00       ` Alan Lovejoy
     [not found]         ` <6KZQfjK-3RB@herold.franken.de>
1996-11-10  0:00           ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Chris
1996-11-10  0:00             ` Vlastimil Adamovsky
1996-11-11  0:00         ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Bill Gooch
1996-11-12  0:00           ` Alan Lovejoy
1996-11-13  0:00             ` Nick Thurn
1996-11-13  0:00             ` Ell
1996-11-14  0:00             ` Bill Gooch
1996-11-19  0:00               ` Tim Ottinger
1996-11-12  0:00           ` Jan Steinman
1996-11-12  0:00             ` Alan Lovejoy
1996-11-13  0:00               ` Nick Thurn
1996-11-13  0:00                 ` Alan Lovejoy
1996-11-14  0:00                   ` Nick Thurn
1996-11-10  0:00       ` vlad
1996-11-12  0:00     ` Robert C. Martin
1996-11-12  0:00       ` Alan Lovejoy
1996-11-14  0:00         ` David N. Smith
1996-11-14  0:00           ` Bill Gooch
1996-11-20  0:00         ` Robert C. Martin
1996-11-20  0:00           ` Michael Malak
1996-11-20  0:00             ` Robert Dewar
1996-11-20  0:00           ` Robert Dewar
1996-11-26  0:00           ` Tucker Taft
1996-12-03  0:00             ` Robert C. Martin
1996-12-08  0:00               ` Tucker Taft
1996-11-06  0:00   ` Jan Steinman
1996-11-07  0:00     ` Paul_Gover
1996-11-12  0:00     ` Robert C. Martin [this message]
1996-11-12  0:00       ` Alan Lovejoy
1996-11-12  0:00       ` Snowball
1996-11-15  0:00         ` Soren Skogstad Nielsen
1996-11-28  0:00         ` Piercarlo Grandi
1996-11-28  0:00         ` Piercarlo Grandi
1996-11-07  0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Joachim Durchholz
1996-11-08  0:00   ` Richard A. O'Keefe
1996-11-09  0:00     ` Piercarlo Grandi
1996-11-13  0:00       ` Richard A. O'Keefe
1996-11-27  0:00         ` Piercarlo Grandi
1996-11-08  0:00 ` Jon S Anthony
1996-11-08  0:00 ` Alan Lovejoy
1996-11-08  0:00 ` Joachim Durchholz
1996-11-12  0:00   ` Alaric B. Williams
1996-11-13  0:00   ` Richard A. O'Keefe
1996-11-08  0:00 ` Nick Thurn
1996-11-08  0:00   ` Alan Lovejoy
1996-11-11  0:00     ` Nick Thurn
1996-11-11  0:00       ` Paul_Gover
1996-11-11  0:00         ` Anthony Menio
1996-11-11  0:00         ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) David N. Smith
1996-11-12  0:00           ` Anthony Menio
1996-11-11  0:00 ` Cesar A. Gonzalez Perez
1996-11-12  0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Joachim Durchholz
1996-11-20  0:00   ` Piercarlo Grandi
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox