[comp.object] OOP diagrams, visual semantics

spage@cup.portal.com (S spage Page) (10/10/90)

I'm documenting an object-oriented system with lots of objects.  I need to
come up with pictures showing class inheritance, instances of classes, 
messages being sent between objects, inter-task messaging, instance data,
etc.  And since these classes model a computer system, there are other
relationships at work: the window hierarchy, the file system hierarchy,
process hierarchy, flow-of-control, convention inter-task communication...

Yikes!  There's a lot of semantic information to get across.  Clearly you
can't communicate everything about a system in a single diagram.  I need
to come up with a visual approach that informs the reader "these two symbols
represent X's, and the line between them represents their Y relationship."

In doing this, I'd like to leverage off existing work.  So, two questions:
   o   are there any "standards" for OOP diagrams?  Do the latest 
       flow-chart stencils have the extra symbols for OOP? ;-)
   o   are there any particular visual presentations of OOP systems that
       you like?  Book references please.

Many, many thanks.
=S Page

gbooch@ajpo.sei.cmu.edu (Grady Booch) (10/11/90)

in response to your question re diagramming 

take a look at my book, "Object-Oriented Design." It describes a notation
to capture the design decisions you described.

egb

naba@grebyn.com (Nabajyoti Barkakati) (10/11/90)

spage@cup.portal.com (S spage Page) wanted information on OOP
diagramming notations:

See the following article for a notation for expressing OOP designs:

  A. Wasserman, P. Pircher, R. Muller, "The Object-Oriented
    Structured Design Notation for Software Design Representation,"
    Computer March 1990, pp.50-63

This is the COMPUTER magazine published by IEEE Computer Society.

=============
Naba Barkakati
naba@grebyn.com

cote@subsys.enet.dec.com (10/12/90)

Grady Booch has a complete diagramming notation for OO design in his
new book "Object Oriented Design with Applications".   It is very nice and
covers everything you need.  There is a cheat-sheet on the inside covers 
that shows the complete notation as well as a chapter dedicated to explaining
it.  

My suggestion is to run (don't walk) to your nearest bookstore and get it. 
Copies of the book seem to be in short supply right now but the Second printing
should be hitting the stores soon (I hope).

BTW: If you find any CASE tools that implement his notation (or something
similar)
I would really appreciate knowing about it.


MIKE COTE
MPAC

Standard disclaimers apply.

francois@spock (Francois Pomerleau) (10/12/90)

-- 
Francois Pomerleau (613) 592-2122  mitel!spock!francois@uunet.uu.net

ikluft@uts.amdahl.com (Ian Kluft) (10/13/90)

In article <34723@cup.portal.com> spage@cup.portal.com (S spage Page) writes:
>I'm documenting an object-oriented system with lots of objects.  I need to
>come up with pictures showing class inheritance, instances of classes, [...]

>Yikes!  There's a lot of semantic information to get across.  Clearly you
>can't communicate everything about a system in a single diagram. [...]

>   o   are there any "standards" for OOP diagrams?  Do the latest 
>       flow-chart stencils have the extra symbols for OOP? ;-)

There are no standards.  But a lot of examples are starting to show up.

>   o   are there any particular visual presentations of OOP systems that
>       you like?  Book references please.

I don't remember the publishers but all of these are currently available in 
bookstores.
1) Object Oriented Design with Applications, by Grady Booch
2) Object Oriented Analysis and Information Modeling, by Shlaer & Mellor
3) Object Oriented Analysis, by Coad and Yourdon

These all have their own styles.  If you have the book budget, get all three
and develop your own style from what you like in each.  (That's my approach.)
Otherwise (if you can only afford one book), I found Booch's notation to be
the cleanest.
-- 
Ian Kluft             -----------------------------  # Another flying fanatic
UTS Systems Software           \ |--*--| /           # PP-ASEL
Amdahl Corporation      C - 172  /\___/\  Skyhawk    # Member AOPA, ACM, UPE
Santa Clara, CA                 o   o   o            #include <std-disclaimer>

davidm@uunet.UU.NET (David S. Masterson) (10/14/90)

Hmmm.  There seems to be very few (if any) CASE tools for object-oriented
diagramming of a system.  Does anyone have any information how one would go
about applying Data Flows, E-Rs, state diagrams, etc. to working with an
object oriented project?  I mean would these be applicable or would you wind
up decomposing the problem in a way that makes identifying objects difficult?
--
====================================================================
David Masterson					Consilium, Inc.
uunet!cimshop!davidm				Mtn. View, CA  94043
====================================================================
"If someone thinks they know what I said, then I didn't say it!"

gbooch@ajpo.sei.cmu.edu (Grady Booch) (10/15/90)

There are two companies to date that have tools that support
my notation (and I have NO business connection with either of them):
Mark V Systems, and Popkin Software. I expect that there will be other
companies that follow suite soon.

egb

davidm@uunet.UU.NET (David S. Masterson) (10/15/90)

In article <714@ajpo.sei.cmu.edu> gbooch@ajpo.sei.cmu.edu (Grady Booch) writes:

   There are two companies to date that have tools that support
   my notation (and I have NO business connection with either of them):
   Mark V Systems, and Popkin Software. I expect that there will be other
   companies that follow suite soon.

Can you provide more information on these two (like their addresses)?
--
====================================================================
David Masterson					Consilium, Inc.
uunet!cimshop!davidm				Mtn. View, CA  94043
====================================================================
"If someone thinks they know what I said, then I didn't say it!"

lance@motcsd.csd.mot.com (lance.norskog) (10/17/90)

In article <34723@cup.portal.com> spage@cup.portal.com (S spage Page) writes:
>I'm documenting an object-oriented system with lots of objects.  I need to
>come up with pictures showing class inheritance, instances of classes, [...]

>Yikes!  There's a lot of semantic information to get across.  Clearly you
>can't communicate everything about a system in a single diagram. [...]

My take on this is that you want to be visual from the beginning, and
design a programming system where you push pictures around.  A full listing
then becomes all the pictures, where you can only see some of them on
the screen.  This is called Visual Programming.

Trying to take an existing textual system and build a picture displaying
its cross-referentiality (Program Visualization) is doomed from the
start.

oey@Apple.COM (Tim Oey) (10/20/90)

In article <34723@cup.portal.com> spage@cup.portal.com (S spage Page) writes:
>I'm documenting an object-oriented system with lots of objects.  I need to
>come up with pictures showing class inheritance, instances of classes, [...]

>Yikes!  There's a lot of semantic information to get across.  Clearly you
>can't communicate everything about a system in a single diagram. [...]

lance@motcsd.csd.mot.com (lance.norskog) responds:
>My take on this is that you want to be visual from the beginning, and
>design a programming system where you push pictures around.  A full 
listing
>then becomes all the pictures, where you can only see some of them on
>the screen.  This is called Visual Programming.
>
>Trying to take an existing textual system and build a picture displaying
>its cross-referentiality (Program Visualization) is doomed from the
>start.

I strongly agree.  I've been using such a visual object oriented
language called Prograph which runs on the Macintosh.  The diagrams
are the source code.  It also compiles into machine code.  The whole
programming environment is very well integrated.  It's available from
MacConnection (and other fine mail order outlets).  Prograph still
needs some time to mature (mainly to develop a larger class library
like MacApp) but it is already an excellent tool.

I've also seen Fabrik (nice but constrained by its implementation in
SmallTalk and not commercially available) and I've tried Serius
(another visual langauge on the Mac).  Serius is far less elegant than
Prograph and not as flexible.  I've also looked briefly at VIP and
Cause (all on the Mac) but didn't find them exciting.

Who else out there has tried visual programming languages and what do
you think?  Especially object-oriented ones?  Will this be the future
of programming? If you e-mail me, I'll post a summary.


Cordially,
  Tim Oey     (oey@applelink.apple.com)
  "As is proper, I disclaim everything"