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