Chapter 3: SDE Software Development Tools
3.1 Configuration Management Tools, SDE-CORE
Configuration Management is a term meaning:
- Keeping track of software versions.
- Support for building the software and handling dependencies between
software modules. RCS and Make are widely
used Unix tools for configuration management and they are available also
in HP-UX. SoftBench (described more in Section
3.3) adds a graphical user interface but keeps essentially the same
RCS and Make alone are not sufficient
for large projects, however. The main idea with SDE is to provide configuration
management in a way more suitable for large projects. The resulting configuration
management system is called SDE-CORE, SDE Configuration and Release
SDE-CORE uses GNU RCS and Make from
Free Software Foundation as a base; these utilities are included in the
SDE product. The main advantage of using GNU RCS, instead of the
HP version, is that binary files can be version controlled. This means
that RCS can be used to handle documentation, for example in FrameMaker
Plain RCS only supports version control of
single, independent files. SDE-CORE adds support for hierarchical system
structures, and configurations, version controlled collections (releases)
Plain Make is primarily used for performing
builds of a single directory containing all source files. SDE-CORE adds
a methodology for how to handle dependencies between subsystems, and tools
to automatically generate correct dependencies in the Makefiles.
SDE-CORE includes support for change management using
- connections between logical changes and the changed files
- possibility to connect to external problem report system (PMR)
- possibility to follow the progress of a project
- traceability from an initial problem report to the resulting source
code changes, and the new product version that solves the problem SDE-CORE
also includes support for product handling, e.g. how to generate a distribution
package for a new product version, and automatically generate parts of
the product documentation.
SDE-CORE can be divided into several layers, as shown
in Figure 3-1.
Fig 3.1 SDE-CORE layers
3.1.1 SDE-CORE shell commands
All SDE-CORE functions are available as shell commands
that can be used in a a terminal window. They are all documented in the
SDE Reference Manual, and on-line as Unix manual pages. The manual page
sde_overview contains a list of all SDE commands.
We recommend, however, that you first of all use SDE-CORE's
graphical user interface, as described next.
3.1.2 Graphical User Interface to SDE-CORE
SDE-CORE includes several graphical user interface
applications, all of them integrated in SoftBench. An SDE menu is also
added to SoftBench's Development Manager, with useful SDE-CORE commands.
To start the graphical user interface, use the command:
It will start SDE Control Panel, from which the other
tools can be started.
The following tools with graphical user interfaces
SDE Control Panel
SDE Control Panel is a top-level tool for SDE:
- It controls the project environment for a user.
- It manages all SoftBench tools in the SDE environment. The
window shows the projects that the user works with, and the user can easily
login to a project, or switch between projects, by double-clicking a line
in the window.
Fig 3.2 SDE Control Panel, main window
SDE VersionWorks supports daily project work in the
- It provides a window into the version database (the RCS files) for
a subsystem, where you can look at and manipulate selected versions.
- It is a navigator tool for the subsystem directories used in a project.
See Figure 3-3.
Fig 3.3 SDE VersionWorks main window
SDE CR Manager
SDE CR Manager is a tool for managing Change Requests
(CRs), logical changes and their connections with actual source code changes.
Fig 3.4 SDE CR Manager
SDE Project Manager
SDE Project Manager is a tool for administrating projects
(directory structures, members, etc.):
- Create, delete, rename, and terminate projects.
- Add and remove project members and common work directories.
- Add systems to projects, remove systems from projects.
Fig 3.5 Project Manager, main window
SDE System Manager
SDE System Manager is a tool for managing systems:
- Create systems, configurations, and subsystems.
- Perform release work on a configuration: check the status of the versioned
files, select file versions for the release/prerelease, copy files to product,
freeze the configuration, establish the configuration.
Fig 3.6 System Manager, main window
SDE Product Manager
SDE Product Manager is a tool for managing products.
- Create (structures for) new products.
- Perform release work on a product: create (structure for) new release,
merge release, change protection, rename products.
- Generate Product Specification document in FrameMaker format. See
Fig 3.7 SDE-Product Manager
For more information see
Started with SDE
- SDE-CORE User
- Make Usage And Makefile
- GNU Make User's Manual
3.2 SDE Utilities
SDE Utilities is a collection of useful Unix utilities:
- Create window and login on remote nodes.
- Create, generate and update man pages.
- Directory handling commands: ¯ Create a directory
tree, and make symbolic links to files in a directory tree.
¯ Modify or show permission and owner for files
in a directory tree.
- Graphic presentation and printing tools:
¯ Print source code files on a Postscript printer.
¯ Show a data graph as an X window.
¯ Show a tree structure in an X window.
- C/C++ source code formatting.
- C/C++ source code line counter.
- Produce manual page files by extracting comments from source code files.
3.3 SoftBench Tool Integration Framework
SDE works closely together with SoftBench. SoftBench
comes in one of two shapes: C/SoftBench or C++/SoftBench. It is possible
to upgrade from C/SoftBench to C++/SoftBench.
SoftBench can be described using a "toaster"
Fig 3.8 SoftBench Framework
SoftBench is both a general tool integration framework
(SoftBench BMS), where e.g. all graphical SDE-CORE applications execute,
and a default set of well-integrated programming tools.
These default tools support the edit-compile-debug
- The compiler (or rather make) can be started from the editor.
- For each compile error, you can easily be positioned on the erroneous
line in the editor.
- When all compile errors are fixed, the debugger can be directly started.
- From the debugger, the editor can be called up at the current source
- The static analyzer can be used to ask questions about where different
identifiers (functions, classes, variables, etc.) are declared, defined,
or referenced. This will save a lot of time for you during
the coding phase, and increase your productivity. The tools are easy to
use and do not require much education. You will be able to use the tools
More complicated and advanced tools like Gnu Emacs
can be used in addition to SoftBench.
At delivery, C/SoftBench contains the following
tools for software development:
- Development Manager
- Program Builder
- Program Debugger
- Static Analyzer
- Compare and Combine
- Help The Editor is good and simple to use.
Using mouse and menus you can start to use it almost immediately.
The Development Manager shows the files in
the current directory and provides menu choices for many file operations.
Besides its fixed menus, it has an Actions menu which is dynamically updated
according to the selected file. The available actions are determined from
the filetype. For a .c file, for example, available actions are Compile,
Edit, Print, etc. SDE adds some menu items in the Development Manager for
easy access to SDE-CORE commands.
The Program Builder is used to integrate the
edit-compile cycle. When compiling, the editor can be positioned at the
place of every compile error. This is very handy, and saves a lot of time.
The Program Debugger is a SoftBench encapsulation
of a debugger called dde. This debugger originally has a command-line
interface. The SoftBench encapsulation provides a menu-and-mouse interface,
and also makes the debugger integrated with the rest of the SoftBench environment.
For example, an Editor window can be requested for the current program
line in the debugger.
The Static Analyzer offers an interactive hypertext-like
utility for making cross-references of all identifiers used in a program.
It is integrated with the editor tool, so that cross references can be
requested directly from the editor. Typical questions are: Show me all
classes, where is this member function defined, where is this variable
referenced, etc. An editor window can be automatically positioned at the
The Compare and Combine tool is used to show
differences between files, and to merge the contents of two files into
a new file.
The Help tool provides easy access to all information
about SoftBench itself and about tools encapsulated in SoftBench.
In the product C++/SoftBench these tools are
updated to handle both C and C++. More information about SoftBench can
be found in Hewlett Packard's documentation.
SDE includes several additions to SoftBench to make
it easier to use.
3.4 Documentation and Editing tools
Two editors are recommended for use within SDE:
FrameMaker for technical documentation (desktop publishing) and SoftBench
Program Editor for programming.
An alternative to SoftBench Program Editor is Gnu
Emacs. Gnu Emacs is a powerful editor from Free Software Foundation,
Inc. SoftBench may be customized to use Gnu Emacs instead of SoftBench
Program Editor (see the instructions in /usr/softbench/emacs/README). Note,
however, that SoftBench's Static Analyzer only works well if the standard
SoftBench Program Editor is used.
A comprehensive description of FrameMaker
and its use together with ABB templates can be found in the binder