Configuration Management is a term meaning:
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 Support.
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 format.
Plain RCS only supports version control of single, independent files. SDE-CORE adds support for hierarchical system structures, and configurations, version controlled collections (releases) of files.
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 Change Requests:
SDE-CORE can be divided into several layers, as shown in Figure 3-1.
Fig 3.1 SDE-CORE layers
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.
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:
sdeIt will start SDE Control Panel, from which the other tools can be started.
The following tools with graphical user interfaces are provided:
SDE Control Panel is a top-level tool for SDE:
Fig 3.2 SDE Control Panel, main window
SDE VersionWorks supports daily project work in the SDE environment:
Fig 3.3 SDE VersionWorks main window
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 is a tool for administrating projects (directory structures, members, etc.):
Fig 3.5 Project Manager, main window
SDE System Manager is a tool for managing systems:
Fig 3.6 System Manager, main window
SDE Product Manager is a tool for managing products.
Fig 3.7 SDE-Product Manager
SDE Utilities is a collection of useful Unix utilities:
¯ Modify or show permission and owner for files in a directory tree.
¯ Print source code files on a Postscript printer.
¯ Show a data graph as an X window.
¯ Show a tree structure in an X window.
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" model:
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 cycle:
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:
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 requested places.
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.
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 (from SEISY/LQM)