Engineering Hardware Diagnostics Program
for a Phosphorescence Image Scanner
This project consisted of a port of an existing test and
service program to the Macintosh System 7 environment.
The existing program was a control and service program
for a precision, flat bed laser scanner used for imaging
radioisotopic or chemiluminescent samples such as gels
or blots. The original program had been written in Pascal
and was to be redesigned as an object-oriented application
in C++. The target operating platforms were NT 3.51 and
Macintosh System 7.
This project was completely specified by an existing test
and service program. Therefore, the only identified risk
was connected with a new tool, namely the Microsoft cross
compiler selected for use with the project. Advance information
indicated that something like 99% of an MFC 3.0 compliant
C++ program should port, with no changes, to the Mac environment.
Therefore, we decided that the existing Pascal program
would be redesigned around 16 C++ classes which collectively
embodied the major control subsystems of the scanner.
The initial design target for the port was the NT platform.
Configuration management software was used to automate
a “daily smoke and build” test first for the
NT platform and then to the Mac using the cross compiler.
Automated unit tests were designed for daily, post-build
checks of various features such as little endian to big
Because the design of each required
class was clear, we decided to use a staged delivery
This model was appropriate because, at each stage, deliverables
in this methodology are not prototypes but rather finished
products. This was consistent with the complete and static
nature of the specification. It also meant that, at each
stage, the deliverables worked in their final form, which
allowed a training manual to be rewritten in tandem with
software development based on the working code.
Because most of the 16 classes were self-contained and largely
independent of the others, it turned out to be easy to partition
the project into staged deliveries without serious complications
from intermodule dependencies. Early estimates of freedom
from porting problems for MFC compliant code turned out to
be fairly accurate. The client knew from past work with L'Monte
that our process would be well documented and that they would
get a solid product and a well-written and thorough report
describing the porting issues and the pro's and con's of
using MS's cross compiler. The project was completed in just