Guidelines for developing a new HEASoft package
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 new mission. Several example programs (in C, Perl, and Fortran) are provided in the HEASoft package and 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 HEASoft environment.
Each HEASoft 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 Git revision control system.
The HEASoft 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). HEASARC staff rebuild the local "development" version of the entire HEASoft package on several 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 firstname.lastname@example.org
Web page maintained by Bryan K. Irby
HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public
Last modified: Thursday, 14-Jun-2018 15:12:39 EDT