This week, I am going to write about a very successful example of software modernization, performed by my colleagues Anastasia Alexov, John Good and Iffat Khan at IPAC. They rewrote a unique legacy application for combining far-infrared astronomy data, Scanpi.
Written in 1984, Scanpi remains a uniquely powerful tool. It performs weighted averages of raw 1-D scans measured by the Infrared Astronomy Satellite (IRAS). The aging code became impossible to maintain. Written in FORTRAN66, it became an unwieldy layering of programs, scripts and patches, and so it was difficult to fix bugs, add features, and keep up with platform, hardware and software upgrades. In 2007, it became orphaned on Solaris 2.8 when it would not compile on Solaris 2.9. Moreover, the original developer was retiring.
So Scanpi was rewritten form scratch. In its new incarnation, Scanpi re-uses modules written for IRSA (see last week’s post) to perform tasks such as spatial searches, filtering of data, and displaying results, and contains a toolbox of new components to perform the tasks needed in coadding scans: finding scans, filtering them, coregistering them, coadding and fitting, and extracting sources from them. A benefit to astronomers is that Scanpi now provides more transparency into each step of the processing. The toolbox contains 20 KLOC, compared with 102 KLOC for the original application. The effort took 1.25 FTE, compared with 3.5 FTE for maintenance over 5 years. The toolbox has run flawlessly in operations for the past 2 years.