[Contents] [Prev. Chapter] [Next Section] [Next Chapter] [Index] [Help]

1    Why Use FUSE?

FUSE, an AlphaGenerationTM product, is the DIGITAL integrated software development environment for UNIX workstations. FUSE is designed to:

Figure Figure 1-1 shows a few of the FUSE tools.

Figure 1-1:  FUSE Tools Working Together

The FUSE tool set helps you edit, build, debug, and analyze programs written in C, Cobol, Fortran 77, Fortran 90, Pascal, or Ada (no static analysis support is available for Ada). An optional license is available to support DEC C++.

The FUSE integration framework allows tools to invoke one another and trigger operations. Programming tasks are automated and streamlined, reducing some operations to a single click of a mouse button.

FUSE opens the integration framework to all software development tools by offering EnCASE -- the Tool Integration Language compiler and Message Monitor tool. Using EnCASE, you can integrate any UNIX tool, including tools you may have developed, into the FUSE environment. The DEC FUSE EnCASE Manual (shipped on the documentation CD-ROM as a Web document) provides instructions for integrating a tool into FUSE.


[Contents] [Prev. Chapter] [Next Section] [Next Chapter] [Index] [Help]

1.1    Boost Your Productivity

FUSE is a flexible environment. You or your group can use FUSE to start a new project or upgrade an existing project. In the context of FUSE, a project is a collection of files that are managed by FUSE tools. These files hold the software the team is working on, the source and intermediate files needed to produce the software, and useful information for analyzing the software as it is being developed.

FUSE helps you set up a project based on traditional UNIX tools. The Code Manager, Debugger, emacs Editor, Compare, Search, Man Page Browser, and Profiler tools are all based on standard UNIX utilities. Members of the team who are new to UNIX can come up to speed more quickly using FUSE, while UNIX experts can continue to operate in their accustomed manner.

FUSE offers features that help you boost your productivity:

Figure Figure 1-2 shows how code development activities in CASE lifecycle are supported by FUSE tools.

Figure 1-2:  FUSE Tools Support CASE Code Development Activities


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.1.1    Shorten the Learning Curve

FUSE appeals to new and experienced UNIX software developers. Many FUSE tools are based on industry-standard programming utilities such as make, man, rcs, and prof that are included with your system. If you know how to use the command-line interface to these utilities, you will appreciate the benefits of the other features (for example, integrated operation and online Help) that make programming with FUSE tools more convenient and productive than using the standard utilities alone.

Figure Figure 1-3 shows how the Profiler, which is based on pixie, gprof, hiprof, or prof, lets you concentrate on analyzing the performance of your application rather than learning the UNIX commands associated with these utilities. Programmers who already know how to use the command-line interface to the standard UNIX utilities can appreciate the other benefits of using FUSE (tightly integrated tools, graphical display, and convenient access to online information).

Figure 1-3:  FUSE Tools Offer a Consistent, Easy-to-Use Motif Interface


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.1.2    Visualize Your Software

Graphs provide a convenient way to view and analyze characteristics and to operate on objects. Figure Figure 1-4 shows how the Profiler, Builder, and C++ Class Browser help you visualize your software by displaying data graphically. Other tools share this feature including the Heap Analyzer and Program Visualizer. Colors, shapes, and arrangement of data in these graphs make it easier for you to recognize objects and understand the structure of an application.

Figure 1-4:  Visualize Your Software with Graphical Displays


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.1.3    Advantages of Tool Integration

FUSE tools communicate behind the scene through a server (described in the DEC FUSE EnCASE Manual). Communication between tools enables the integration of source file display, editing, building, and debugging, making the following types of programming more efficient:

Figure Figure 1-5 summarizes the ways in which the FUSE tools work together.

Figure 1-5:  FUSE Tools Work Together


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.1.4    Speed Development with FUSE Enhancements

Table Table 1-1 shows FUSE enhancements to standard UNIX utilities that can help reduce the time required to develop applications:

Table 1-1:  FUSE Enhancements to UNIX Utilities and Benefits

Enhancement Benefit
Distributed builds in the Builder Decrease build time
Default project configurations Reduce setup time
Language templates bound to keys in the editor Standardize coding conventions; reduce need to remember language syntax; decrease coding time
Pre- and postprocessing scripts in the Code Manager Support project lifecycle processes


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.1.5    Get Information On-Line

FUSE provides several ways to obtain online information:

As shown in Figure Figure 1-6, the HyperHelp Viewer lets you navigate the online Help and online Training for FUSE. Push buttons at the top of the window let you access the table of contents, search for topic titles or frames that contain a specified string, review a listing of previously viewed topics, and view the glossary.

Hotspots in the text let you pop up frames or jump to other topics. You can place, save, and return to bookmarks in the Help or Training and annotate frames with personal comments. Text from examples in the Help or Training can be cut and pasted into other windows. Topics can be printed in ASCII or PostScript format.

Figure 1-6:  Using the HyperHelp Viewer

The Man Page Browser shown in Figure Figure 1-7 is integrated with the editors, and reduces the time to search for and view reference pages for UNIX system functions. In the FUSE Editor, you can position the cursor on the function you are interested in. Choose Utilities: Show Man Page to display the reference page for the function you selected.

Figure 1-7:  Man Page Browser Integrated into the FUSE Environment


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.2    Tailor Your Working Environment

You use the Control Panel to set up and customize your FUSE development environment. Chapter Chapter 9 describes the Control Panel in detail. This section highlights the following major functions performed through the Control Panel:

You can also use the Style Manager provided by CDE to customize colors and fonts dynamically for all tools (see Section Section 2.9 for more information).


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.2.1    Working with Projects

FUSE tools always run within the context of a FUSE project. Projects are a mechanism for setting and retaining a consistent working context. Tools interact only with other tools that are running in the same project. Multiple projects are useful for partitioning your development environment when you need to:

For example, you can create a FUSE project corresponding to different applications that you work on, each with a different working directory, target executable, code library, and so on.

The Control Panel shown in Figure Figure 1-8 lists the current project, the projects that are open, and the tools that are running in these projects.

Figure 1-8:  Control Panel Can Manage Your Work Context


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.2.2    Modifying the Tools Menu

Most FUSE tools have a Tools menu from which you can invoke other FUSE tools. You can specify which tools you want to appear on the Tools menu by using the Control Panel.

In the case of editors, FUSE offers the following options:

In the case of source control tools, FUSE offers the options:

FUSE also supports basic integration of several other tools that may be part of your development environment. If you have these tools installed, making them active allows them to function within the context of the FUSE environment. If you want more information on the tools, activate and then invoke the tool for an informational dialog box. Currently available tools include:

To make an alternative editor or source control tool the default, you need to make sure that particular editor or source control tool is the only active one; that is, your choice is the only one listed on the Tools menu. Information on how to modify the Tools menu is available in Chapter Chapter 9.

Figure Figure 1-9 shows how you can use the Tools: Modify Tools Menu... menu item in the Control Panel to specify which tools appear in the Tools menu. For example, FUSE offers a choice of source control utilities and editors. If you specify that only one editor or source control tool appears on the Tools menu, that editor or source control tool is invoked by default for all relevant operations.

Figure 1-9:  Specifying Available Tools


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.2.3    Reestablishing Your Work Context

You can save the setup information for all tools running in a FUSE session. FUSE stores this information in a named project file (project_name.proj). You can later recall that project information to quickly reestablish your work context.

When you save the project settings during a FUSE session, you record all the information that you specified for the current project. For example, you could create two named projects set up with different targets. When you save the project settings, you save the separate target information. If you start the Builder once in each project, the Builder inherits the separate project settings, including the separate target. You can open several projects in the same FUSE session and make the most appropriate one the current project.

If a colleague has saved project settings that you find useful, you can copy your colleague's project file to your home directory and edit the file, tailoring the information to your environment. Then, start FUSE and choose the modified project information to get to work quickly.

See Chapter Chapter 9 for detailed information on saving and recalling project settings.


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Next Chapter] [Index] [Help]

1.2.4    Customizing the FUSE User Interface

FUSE makes customizations simple. You do not have to learn X resource names or remember their valid values. Table Table 1-2 summarizes the customization options for FUSE tools.

Table 1-2:  Summary of Customizations for FUSE Interface

To change... Choose this menu option...
Colors for a tool Options: Colors... from the tool's main window
Colors for all FUSE tools Options: Global Colors... from the Control Panel (or use CDE)
Fonts for a tools Options: Fonts... from the tool's main window
Fonts for all FUSE tools Options: Global Fonts... from the Control Panel (or use CDE)
Size and position of a tool's main window Options: Size and Position... from the tool's main window
Environment variables for a tool Options: Environment... from the tool's main window
Environment variables for all FUSE tools Options: Global Environment... from the Control Panel
Tool-specific values Options: Application... from the tool's main window

Chapter 9 provides details on customizing FUSE.


[Contents] [Prev. Chapter] [Prev. Section] [Next Chapter] [Index] [Help]

1.3    Summary of FUSE Tools

FUSE includes the tools summarized in Table Table 1-3. FUSE also includes programming facilities, called EnCASE, for integrating non-FUSE tools into FUSE. After a tool is integrated, it can be invoked from the FUSE Tools menu and interoperate with FUSE tools.

Table 1-3:  Contents of the FUSE Software Kit

Tools Can be based on... Use to...
Control Panel   Start tools; view a summary of projects and tools that are running; customize, configure, and organize your development environment.
Builder make(1u); make(1p); gnumake Create, process, and graphically display makefiles that control program builds.
Call Graph Browser   Graphically display call relationships and structure hierarchy among the functions, files, and directories that make up a program.
Code Manager sccs; rcs Provide controlled access to source files for one or multiple versions of a program.
Compare diff; merge Generate a display of the differences between the contents of two text files; merge the differences of two text files.
Cross-Referencer   Determine where programming elements are declared, assigned, or referenced in programs.
Database Manager   Create and maintain static analysis databases used by the Cross-Referencer, Call Graph Browser, and optional C++ Class Browser; not accessible from the Control Panel.
Debugger Ladebug Isolate and analyze run-time problems in programs.
Editors FUSE Editor; Emacs; XEmancs, MULE, vi Create and modify program source and other text files.
EnCASE   Integrate additional tools into the environment. Provide access to existing and user-defined intertool messages through a callable or script interface.
Heap Analyzer Third Degree Analyze memory leaks and memory errors for a program.
Host Shell xterm Start a shell window without exiting FUSE. Uses the shell specified with the SHELL environment variable.
Man Page Browser man Display a reference page (man page), search for reference page titles, or display a file as a reference page.
Message Monitor   Display intertool messages and changes in tool status; most useful for EnCASE users.
Profiler prof; gprof; pixie; hiprof Analyze run-time statistics for a program to improve run-time speed.
Program Visualizer   Display source files in a highly condensed format; highlight a source file's events.
Search grep; egrep; fgrep Search one or more files for a regular expression or literal string; replace a string with a different string.
Version Controller Many source utilities, including sccs, rcs, ClearCase Provide controlled access to source files for a program.

An optional license, summarized in Table Table 1-4, is available to extend FUSE: DEC FUSE Support for C++. The DEC FUSE Support for C++ license provides support for analyzing C++ programs in FUSE. DEC C++, Digital's native C++ compiler, is supported. This license includes the C++ Class Browser, which allows you to view and analyze the class hierarchy in a C++ program. The DEC FUSE Support for C++ license also provides support of C++ programs in the Call Graph Browser, Cross-Referencer, Builder, and Profiler.

Table 1-4:  Optional C++ Support License

Package Tool Supported Language Use to...
DEC FUSE Support for C++ C++ Class Browser C++ View and analyze the class hierarchy in a C++ program


[Contents] [Prev. Chapter] [Prev. Section] [Next Chapter] [Index] [Help]