Guidelines for developing a new HEASoft package

The HEASOFT/Ftools software environment was designed to make it easy for external projects to add their own software package for a new instrument or mission. The following guidelines provide an overview of the process of developing a new data analysis package. Projects are encouraged to contact the HEASARC early in the development process for further information and assistence.

Most of the general FITS file manipulation tools that any project will need are already provided in HEASoft. The only new tasks that typically need to be developed are the mission-specific calibration and analysis tools for the the new mission. Several example programs are provided in the HEASoft package, written in C or Fortran, that can be used as a template for writing new software tasks. Simple procedures for compiling and linking the software are also provided, so the programmer can concentrate on writing the specific data analysis algorithm and does not need to spend much effort on the mechanics of how that task will be integrated within the ftools environment.

Each ftools task that is developed should also include a unit test suite, which includes a set of input data file(s) for the task and the expected output files or text output. This unit test is re-executed whenever any change is made to the task or to the larger software environment (e.g., new versions of libraries or compilers) to ensure that the new output is still identical to the previously generated output.

The software modules should be maintained within a suitable code repository to tracks all modifications to the code. This makes it possible to back out any changes and revert to a previous version of the module if necessary. The HEASARC currently uses the CVS system.

The FTOOLS tasks must necessarily run on a wide range of computer platforms used by external scientists (although a pipeline system may only need to run on a single platform). The HEASARC ftools staff rebuild the local "development" version of the entire ftools package on half a dozen different platforms on a routine basis. These systems are then available for testing by local scientists at GSFC.

The quality of the programming staff is of course one of the most important factors in the success of any software development project. Most of the HEASARC programmers who developed HEAsoft have a strong science background and have a M.S. or Ph.D. degree in the physical sciences. The process of writing a HEASoft program is simple enough, however, so that many of the existing HEASoft tasks have been written by scientists without extensive programming experience.

Help lines: FTOOLS or

Web page maintained by Bryan K. Irby

HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public

Last modified: Thursday, 22-Dec-2011 13:05:57 EST