Using Desert

The Desert programming environment is an open set of tools that are designed to help a programmer or team of programmers work on developing complex software systems.  Most of the components of Desert are hidden from the user.  These components, program databases, scanners, communications mechanisms, etc., are invoked automatically by the various tools as they are needed.  Many of the remaining tools are designed as extensions to the document processing package FrameMaker.  Desert provides commands to start FrameMaker so that these tools are included.  These tools show up in FrameMaker as additional commands added to the FrameMaker menus and as additional functionality automatically invoked as the user edits files using FrameMaker.  Finally, Desert provides a small set of user tools that can be invoked directly.

Desert operates by maintaining a set of databases of information about the system being developed.  These databases are in addition to the various files that the programmers normally create.  The databases are created automatically with a minimum of user action and are automatically updated as the user works on the system.  A key feature of Desert is its openness - it is compatible with most existing programming tools and utilities and can be used as an add-on to the current environment.  Moreover, it can be used on existing systems as well as for developing new systems.

Desert databases are organized by projects. Projects are defined as a set of directories and files and include information about access and how to get semantic information from the files.  Projects are defined using the tool COMD.  This tool will be invoked automatically by the various Desert commands if no project has been previously defined. It can also be invoked directly using the command xstartcomd or, in order to create a new project, xstartproject.

Once a project has been created, the user can invoke FrameMaker for Desert. This is done using the command xstartfred.  The extensions to FrameMaker include:


FrameMaker-based program editing


Insets for graphical software engineering tools


Support for literate programming


Tools for object-oriented design

The other commands that are available are xstartcamel which invokes the CAMEL tool, a general search engine using the Desert databases and tied to the various editors, and desertbug, a front end that invokes netscape in order to generate a bug report.

More sophisticated users might be interested in customizing the Desert environment.  This can be done using a .desertrc file to set parameters.

If you have questions or problems, send email to Steve Reiss at

Or go back to the Desert home page.