---------------------------------------------------------------------------- The Florida SunFlash 3rd Party: What (and why) is Robochart? SunFLASH Vol 33 #8 September 1991 ---------------------------------------------------------------------------- This is an article by Jack Morrison, Digital Insight that describes the Robochart product. -johnj ---------------------------------------------------------------------------- Whether you're designing software, hardware, or systems, you probably work with diagrams all the time. Not just as static documentation, but as a dynamic tool - for working out problems, seeing how things might fit together. Many of these diagrams are a type of "flow diagram", with objects of various shapes connected by lines, labelled with text. Dataflow diagrams, state-transition diagrams, PERT charts, entity- relationship diagrams, system block diagrams. . . you get the idea. Not to mention flow charts, still widely used despite banishment from "proper" Software Engineering discipline. You probably use pencil and paper to sketch out your diagrams, and completely redo them on a computerized drawing tool if they need to be included in a polished document. And pray, in vain, that you don't need to change them too often. Now, there's a better way. Robochart works like an object-oriented drawing program, but since it assumes you're working on some sort of flow diagram, it's much easier and faster to use. Watch someone using Robochart for about ten seconds and you'll see the difference. Say he's got three objects on the screen, and wants to connect two of them with a flow line. He moves the mouse pointer over the middle of one object, and presses a button. Moving the mouse over to a second object drags a "rubber-band" line; releasing the button leaves a perfectly positioned flow line between the two objects. He moves the pointer back over the flow, and types in a label. It appears neatly centered on the flow line. (Ever wonder why some programs make you enter a "Text" command first? Me too.) "Oops, that flow should go to THIS object," he says, during which time he simply dragged one end of the flow to the third object. It redraws with the label moved over automatically. "I need more room over HERE." Again, as fast as he can say it, he's dragged the first object to a new position, and the flow connected to it followed instantly. The fancy name for this is "direct manipulation." Robochart handles objects and flows a lot like a graphical user interface handles windows - you pick them up and drag or resize them with the mouse; to enter text, you point to the object or flow and type. You don't need to enter menu or keyboard commands for basic editing operations, you just DO it. Another way that Robochart makes life easier is what I call "dynamic defaults". (A less scrupulous marketing department would probably want to call it "artificial intelligence"). If you've just created an object and resized it to perfection (objects can be stretched to any vertical and horizontal size), the next object of that type will automatically be created with the same size. If you've adjusted a flow the way you like it (flows can be solid or dashed, with a choice of four end types at each end), the next one will be created the same way. The same is true for label justification (which can be centered or left-justified) and object outlines (solid or dashed): although each object is independently adjustable, when you create or modify one object, the program guesses that you'll want the next object to be the same way. In a sense, it "learns" the way you want to work, without making you "teach" it explicitly. (On the other hand, you CAN create customization files to explicitly set your own defaults, so that they're ready to go whenever the program is started.) One of Robochart's neatest tricks is its support of hierarchical diagrams, in which you can "zoom in" on one object to reveal a complete sub-diagram. If you like, Robochart can automatically create the initial sub-diagram for you by copying the "context" or "environment" of the parent object when you zoom in. For example, say your dataflow diagram has a process with two flows connected to other objects. Zoom in on the process, and a new level is created with copies of the connected objects and flows. All you have to do is create the new sub-processes corresponding to the parent, and move the copied flows over to them. The copied objects and flows are linked to the original ones on the parent diagram, so that if you change their labels or shapes, the change is automatically carried over to any other level where they appear. (This is a bit like the "flow balance" or "consistency" checking that some CASE tools can perform, except that instead of making you run a command and interpret a list of error messages, it quietly and automatically makes SURE your diagram is consistent.) The program has the things you'd expect a proper graphics editor to have, including: a snap grid so that lining things up is, well, a snap; optional automatic numbering of objects (including hierarchical level numbering); flow vertices to control routing; undo/redo of edit operations; scrolling and panning to view diagrams larger than the screen; and cut and paste. Cut and paste, by the way, can handle hierarchical diagram sections. You'll appreciate this when one level of your diagram is getting too complicated, and you need to "push" a part of it down to a new sub-diagram. Just create a new object to represent the new level, cut the objects to be pushed down, zoom in on the new object, and paste in the new level. Eighteen object shapes are provided; each can be adjusted to any width and height. Object and flow labels can be up to 250 characters, forming any number of lines. Label text can be edited directly on the diagram using the normal Sun editing keys. "Smart" text editing figures out when to add or delete extra spaces when you cut and paste words. Double-click and function keys shortcuts provide quick access to many operations, and on-screen help is always a keypress away. If you have a set of related, but not nested, diagrams that should be kept together, Robochart lets you keep them as separate pages of a single diagram file. Diagrams can be output as PostScript images for printing, Encapsulated PostScript (EPSF) export files for inclusion in other documents, HPGL images for plotting, or ASCII text (for the sophisticated user who might want to extract, for example, a data dictionary from their dataflow diagrams). PostScript and EPSF diagrams can be created with drop shadows for a spiffy 3D effect. You can control the scaling and orientation of the output, or let the program automatically fit the diagram onto the page for you. Robochart is available for Sun 3 and Sun 4/SPARC machines running SunView or OPEN LOOK, as well as MS-DOS systems. The Sun versions, support both node-locked and floating licenses. An evaluation copy with both Sun versions includes all features except file saving, and costs $25, refundable against a license purchase. Sun license pricing: First Each Additional Node license $ 495 $125 Floating license $ 850 $250 Site licenses are also available. Digital Insight P.O. Box 2095 Evergreen, CO 80439-2095 (303) 674-5232 (voice/fax) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ For information send mail to info-sunflash@sunvice.East.Sun.COM. Subscription requests should be sent to sunflash-request@sunvice.East.Sun.COM. Archives are on solar.nova.edu and paris.cs.miami.edu. All prices, availability, and other statements relating to Sun or third party products are valid in the U.S. only. Please contact your local Sales Representative for details of pricing and product availability in your region. Descriptions of, or references to products or publications within SunFlash does not imply an endorsement of that product or publication by Sun Microsystems. John McLaughlin, SunFlash editor, flash@sunvice.East.Sun.COM. (305) 776-7770.