Aonix > Products > TeleUSE > Success Stories >

 

 

The Launching of FullSail: How DEC Embarked on a GUI Development Project

 

When DEC's product development team set out to create the DEC FullSail Distributed System Management application, they knew they were heading into uncharted waters. For starters, they were about to create the first set of UNIX-based system management tools ever developed by DEC. These tools were to include integrated applications for account management, file system management and performance management. Eventually, the FullSail suite would also be ported to other platforms, including Sun and OSF/1. And that was just the tip of the iceberg.

Even more formidable was the task of creating a graphical user interface for these complex applications—an interface that would be easy to use and easy to support throughout the entire product lifecycle. Here again, the DEC team was entering a realm where few had ever ventured before: UNIX GUI territory. According to DEC Sr. Software Engineer John Metzger, five of the 15 engineers on the FullSail team were dedicated solely to development of the GUI. They began by launching a quest for an interface design tool that would work easily with their OSF/Motif toolkit.

"One of our requirements in the search for the ideal tool was support for writing callback code that links application code to the GUI. We found that TeleUSE was that tool. With TeleUSE, we were able to easily specify the callback layer, which is where the lion's share of the code must be written. We found TeleUSE to be very complete in that it addressed the whole GUI environment--not just the presentation layer, but also the dynamic interaction with the application code."

Paint-and-Place Interface Design

In terms of building the GUI, TeleUSE provided an object-oriented graphical editor that allowed the programmers to simply "paint" the screen with Motif-based widgets such as hot buttons and scroll bars.

"Instead of writing code to determine the shape, color and placement of those elements, all we had to do was drag and drop. Once we'd created a template that worked, we just copied that for the other screens and made the necessary modifications," says Metzger. "For each new instantiation of a form or a menu bar, all of the common characteristics were carried over automatically."

By grouping these templates in modules of reusable components, the DEC team was able to expedite the initial product development, and they expect a speedier cycle for subsequent releases as well. In addition to saving time, this modular method allowed DEC to maintain a similar look and feel among all of the FullSail applications.

"Of course, there were certain non-Motif graphics that we wanted to create ourselves, especially for some of the dynamic displays in the FullSail Performance Manager," Metzger adds. To incorporate these DEC widgets, the developers simply saved the TeleUSE presentation layer as UIL code, inserted their custom routines and then ran the code through the UIL compiler provided with TeleUSE.

Delving into the Dialog Layer

With the screen templates created, the next step was to define the dynamic behavior of the user interface with respect to the underlying application code. Through a powerful scripting tool called the Dialog Manager, TeleUSE provided Metzger and his associates with a simple, straightforward syntax that was specifically designed to handle this dialog layer interaction.

"When you look at a Dialog script as compared with the amount of C code that's required to do the same thing, it becomes pretty obvious. The Dialog Manager is much easier and much more elegant," says Metzger. But did this elegance come at the expense of having to learn a completely new language? "Let me put it this way," says Metzger. "I knew absolutely nothing about user interface code or OSF/Motif before this project. By going through the TeleUSE tutorial, I had an understanding of the programming methodology in a matter of days. We even had new college hires working productively in less than a month. And, when we required assistance, we received excellent technical service and support."

"The beauty of a Dialog script is that it's almost self-explanatory. Say, for example, that you want a button to turn the background to red. The syntax is as simple as `if toggle is set, then background equals red.'"

Running Straight From the Source

TeleUSE code is not only designed to be read easily by human beings, but by the computer as well. To that end, the TeleUSE Dialog Manager provides an interpreted mode that allowed DEC developers to run, test, modify and re-run the code without having to re-compile and re-link. Metzger says this feature was a big time-saver in many respects.

"With the graphical debugger tool, for example, I could step through the source code and set the break points wherever I wanted. That was much easier than having to do things the old way."

And when linking and compilation was required to create an executable, TeleUSE also provided a convenient short-cut in the form of a User Interface Builder (UI Builder). This utility is driven by a configuration file specifying the widget and template modules, Dialog Manager script files and runtime library routines to automatically build and run a host computer makefile. The UI Builder also support D-script-to-C translations for porting the FullSail applications to other platforms in the future. This, according to Metzger, was a major factor in DEC's decision to use TeleUSE.

"Basically, our philosophy is that if it's proprietary, we're not interested," says Metzger. "But with its ability to take input from both UIL and C, and to translate the final code back into C, TeleUSE gives us what we need: greater speed and productivity during the development cycle."