Signal Processing Algorithms

A set of signal processing algorithms to calculate quantitative information from chromatograms was created in the early 1980's in Pascal. It was carefully designed for portability. Several software products made use of this library. The creator was reassigned to other projects after completion. The library was subsequently ported to new operating systems by product development teams and adapted to other analytical techniques. This resulted in six different versions with subtle differences. Once a defect was found in one of the versions, it was a challenge to verify and fix all others.

Another effect was observed: the code size grew with each port or adaption. The biggest growth in code size came during a port from Pascal to C using a translator program. The original 3 kNCSS grew to 9 kNCSS, essentially without any additional functionality.

The first project within the components program was set up to re-engineer this library for strict black box reuse in all software products.

The result: size is down to 5 kNCSS, speed improved by a factor of two.

The project took about one year for two engineers (one of them the original creator). This effort included a detailed assessment of the requirements of all potential consumer projects and the creation of an extensive test suite with test cases from all analytical techniques which need this type of algorithm.

After release of this component, four products on two platforms replaced their individual versions with this one common stream of code. More products are under development using the same source without modification.

Meanwhile, the component development team added new capabilies to the library and is responsible for all maintenance activities for this component.