[comp.databases] CASE tools, esp. Software through Pictures.

dav@island.uu.net (David McClure) (02/10/90)

We're using Software through Pictures (StP) for design of some internal 
record-keeping and other non-production applications.  We've only had StP
a few months, so I hesitate to make any major pronouncements.  I have
seen only a brief demonstration of Cadre Teamwork and have little experience 
with similar products (so I am not broadly versed in what's available),
but my understanding is that StP is reasonably competitive with other 
major vendors offering structured design tools -- other opinions?  If this 
*is* the case, then IMO there is plenty of room for innovation in the 
industry (see below).
  
As for StP, we've been primarily using the data flow diagram and entity-
relationship diagram editors (DFD & ERD).  Alternating between these two
editors is how we do most of our design.  The DFD editor follows pretty
closely to Yourdon/DeMarco and Gane/Sarson (StP allows you to start up in 
either notation).  The ERD editor is based on the Chen E-R model, and allows
basic notation of relations, relationships, and attributes. 

From an aesthetic standpoint, there's a lot of clutter in StP.  Menus tend
to be have excessive depth AND breadth unnecessarily, and context-sensitive
help is *noticeably* lacking at almost every level.  Much could be gained
from a simpler, more streamlined product -- at the very least more on-line
description of options is necessary.  It is tempting to think that the 
creators of StP actually took ALL of their users suggestions and implemented 
every last one of them.  The documentation also reflects this seemingly 
haphazard presentation, and could greatly benefit from clearer exposition
and explanation of the authors' direction and motivation.

This is not to say that you can't get any work done with the product; on the
contrary, it's several orders of magnitude beyond pencil and paper.  And to 
be fair, greater familiarity with other products might prompt similar 
criticisms.  Actually, I have greater concerns about lack of functionality
that to my knowledge is endemic to the industry.

It seems that one of the most basic ideas in structured design and analysis
is the ability to "push down" or "pop up" in order to encompass higher or
lower levels of detail and complexity.  IMO, this is an extremely important
concept that mirrors how the human brain thinks about design.  Implementation
of this idea is currently very primitive: in the DFD's that I have seen,
being able to group and push or pop a collection of objects to another level
is done by cut and paste (if at all), and NOT integrated to an associated data 
dictionary.  This idea of "dynamic levelling" with automatic consistency
updating is *essential* IMO, and would represent another order-of-magnitude
leap in functionality. 
  
In ERD editors, this concept is even less matured.  I admit there is a void 
of consensus on implementation of abstract data types and entity clustering, 
yet I have seen no attempt to even begin forging into this uncharted territory.
I read an excellent article in Communications of the ACM (Aug/89) discussing
ER clustering that I would love to see expanded on and eventually automated.
Personally, I find the Chen model both inadequate and misleading for design 
of the information model, especially where many-to-many and non-binary
relationships are concerned.  Until more advanced techniques are developed,
I find a simple mapping of foreign key references and expansion of more
complex relationships to be more helpful than Chen notation.

I would like to start a thread on these last two topics in comp.databases
if I can get enough feedback.  Please post any ideas you have about extended
ER models and levelling/consistency checking in DFD editors, or any other
topics you feel are relevant.  Perhaps if we can reach some sort of
consensus from the user-community on what is needed, the vendor-community
could be inspired to respond (but I won't hold my breath)...
-- 
David McClure
> My opinions are not necessarily those of        ||  serenity=>acceptance
> my employer, or anyone else in this damnfool    ||  courage=>change
> world of ours; *think* for yourself.  Rock on.  ||  wisdom=>differentiate