Selecting a Graphics Front End

A report for Jim Sullivan
by Paul F. Sullivan
July 14, 1999

Requirements

The graphics front end of the EDFA project must allow the end user to easily sketch a representation of his system that is clearly understood both by humans and by the computer. A palette or palettes of professional looking custom icons is critical to this task, as is a convenient and intuitive way of interconnecting them. Once the system has been sketched, he must be able to clean up his drawing without losing the connectivity that he has already built into it. The information as to what is connected to what must then be handed off to the simulation engine. The results from the simulation engine need to be presented to the user in easily intelligible form, most probably in graphs as well as data tables. It might also be useful to be able to acquire data on the actual system in the same environment for easy comparison with the simulations.

To minimize development time, we should consider only tools that already understand and automatically maintain attachment between icons and the lines that connect them. The tools should allow us to easily develop customized icons and display them on a palette for the customer to use in describing his system. They should also support exporting their understanding of the connectivity, at least in a netlist (which would require further parsing to fill the input data structures of the simulation engine).

Connectivity

Painting programs, such as Photoshop, and most simple drawing packages do not understand connection between drawing elements. If you place object A and object B on your drawing sheet and connect them with a line then move object B, the line will not stretch and the connection will break. More sophisticated drawing packages, such as CorelDRAW, allow durable connections to be made, but only as special cases requiring extra steps beyond simply drawing the interconnection. To fill this need, Corel Corporation released CorelFlow some five years ago. In this package it was possible to develop graphic elements that had predefined attachment points which could be connected to a line simply by clicking them with the line drawing tool. Unfortunately for us, this package was only designed to produce pretty pictures for documentation and had no way of exporting the connectivity that it understood. CorelFlow also occasionally tangled or forgot connections and appears to be no longer available.

A large class of drawing packages intended for the capture of electrical schematics does understand connectivity. They allow connections to be made simply by clicking on the appropriate point with the wiring tool. They also export this understood connectivity in the form of a netlist, a text file in one of a number of different formats. As shown in the table with a couple of representative systems, schematic capture packages range in price from a few tens of dollars for a very limited package, such as DesignWorks Lite, to many thousands of dollars per seat for a sophisticated and integrated package capable of imposing corporate design standards, such as Mentor Graphics.

SimuLink, a graphical front end for MatLab, also understands connectivity and conveys that connectivity directly to MatLab. Its look and feel is very much like that of schematic capture packages. As a graphical front end, it is really a programming tool for MatLab rather than a data input device. A MatLab license would have to be included for SimuLink to function and it is unclear how one would restrict the end user from modifying the simulation engine itself with this tool.

Icons

Schematic capture packages typically deal with the wireframe symbols used for electronic diagrams since the thirties. The higher priced versions allow development of customized icons, and some even allow color fills of the wireframe shapes, but the symbols lack the glitz to which we have become accustomed in GUI based computing. The full-fledged drawing packages, such as Photoshop and CorelDRAW, can provide the graphics, but, as mentioned previously, do not understand connectivity.

Visio is a full-fledged drawing package. In fact, it is marketed as a drawing package with brains. Symbols can be infused with intelligence, including the intelligence to understand connectivity. Visio Technical Plus even has a wizard that exports netlist files in a variety of formats.

LabVIEW is a graphical programming language. While its icons are restricted to 32x32 pixels, they certainly allow adequate visual information and pizzazz to be conveyed. In fact, for laying out reasonable systems on reasonable computer screens, larger icons are probably undesirable. Hewlett-Packard's hp-VEE is roughly equivalent to LabVIEW but slightly less general, slower, and more heavily tied to instruments and especially Hewlett-Packard instruments.

Design Exporting

A netlist is an adequate description of a system design when coupled with the additional information incorporated in custom icons. Visio would, therefore, convey adequate information to the simulation engine. A parser, in C, C++, Visual Basic, or VBA, all of which are supported by Visio, would recast the data into the specific structures needed by the simulation engine. LabVIEW data handling capabilities would allow the generation of the required structures within LabVIEW.

Loops

The data flow paradigm of LabVIEW does not permit an output of one symbol to return to an input of the same symbol even after flowing through others. To handle a feedback loop, special structures are required. Our demonstration program showed that such structures are possible with one practical, but slightly clunky, example. Visio has no such internal restriction, so feedback loops could be represented more naturally.

Graphs

It is unclear exactly how important graphs will be in the final product. LabVIEW supports a range of practical graphs internally and interfaces directly with HiQ for more sophisticated graphing needs. The LabVIEW picture control kit allows fully custom graphs. Visio supports "chart enhancements" but apparently does not do graphing. Graphs would have to be provided by a separate program or routines in a language such as C++. Visual BASIC plugins (VBX?) are probably the most likely candidate.

Measurements of Actual Systems

LabVIEW was designed as an instrument control language and interfaces readily with a very wide range of measurement instrumentation. If the simulator's front end were LabVIEW, then measurements of the performance of the actual built system could be performed in the same environment and compared directly with the simulations. Visio does not have this capability.

Price

Visio Technical Plus costs $399 in single quantity. OEM pricing ranges from $228 in hundreds to $156 above 2500 copies. The LabVIEW base package at $995 is adequate for the user system. Reseller discounts of up to 40% are available, but only on the $1995 full development system.

Support

There are a number of university packages available for free or a nominal fee. A web search yielded the following:

Coloured Petri Nets--University of Aarhus, Denmark
Used for systems modeling where communication, synchronization, and resource sharing are important. Uses line art symbols similar to Data Flow Diagramming. Claims 500 user organizations including 100 commercial organizations.
SDL--International Telecommunications Union
Specification and Description Language. Couldn't find any graphic examples, just text.
Grafcet--Lund Institute of Technology, Sweden
Sequential Function Charts. Drawings can look like storage tanks and pipes.
Grapnel--University of Miskolc, Hungary
A compiler for the GRED (Graphics Editor) package. Grapnel is described only in text. We could find no information about GRED, which is probably more appropriate for this project.

While the initial cost of systems like these is attractive, the lack of a formal support system and the absence of a significant number of commercial programmers may cost heavily later on. Significantly, three of the sites we found in May have disappeared in the intervening two months.

Learning Curve

We have five years heavy experience with LabVIEW and none with Visio, but we have been assured that we will have no trouble coming up to speed with the new package given our experience with VBA.

Conclusion

LabVIEW seems to be the way to go for the prototyping and for exploring what the package should really do and really look like. Visio may be more appropriate for the final product depending on the tastes of the clients. This staged approach would result in a more rapid development cycle.

Graphics Tradeoffs

  LabVIEW Visio Protel DesignWorks CorelFLOW SimuLink Photoshop CorelDRAW Coloured Petri Nets
Icons 32x32 color wire frame wire frame color wire frame color bitmap color vector wire frame
Cost (for 1) $995 $399 $4,995 $495 discontinued   $600 $400  
Cost (OEM) $1,400 $156-$228              
Export structures netlist netlist netlist none MatLab none none  
Scripting ActiveX, OLE, MatLab OLE, VBA ? ? none MatLab unique unique  
Programmers 100,000+ ? ? ? ? ? ? ? 500+
Appearance Data flow Drawing package Schematic capture Schematic capture Drawing package Schematic capture Drawing package Drawing package Data Flow Diagrams
Graphing Yes No No No No Yes No No  
Learning None Some Little Little None Considerable None None Considerable
Measurement Yes No No No No No No No  
Custom Menus Yes Yes ? ? ? ? No No  
Attachment Yes Yes Yes Yes Yes Yes No difficult Yes
Feedback No Yes Yes Yes NA Yes NA NA