A Biomedical Engineer's View of Ada
Form U120-0394 BIOMED.TXT
Ada Information Clearinghouse, 1-800-AdaIC-11 (232-4211), 703/685-1477
Robert C. Leif, Ada_Med Division of Newport Instruments 5648 Toyon Rd. San Diego CA 92115 Tel: (619) 582-0437 E-mail 76137.2164@CompuServe.com
Most of the medical devices I have worked on have included a significant software component. No simple solution exists to ensure that the software is dependable; however, using Ada provides a beginning. The United States Department of Defense (DoD) certifies that any compiler it "validates" has passed numerous tests in the validation test suite, while Ada compiler vendors, such as Alsys, provide meaningful warranties. The use of Ada for developing expensive, dangerous weapons and for projects requiring a high level of safety, such as air traffic control and aircraft, has established an infrastructure of standards and experience for Ada programmers in specifying, designing, creating, and testing the software.
In the United States, if a manufacturer's 510K or Premarket Approval Form fails to substantiate that the product is safe and effective to the Food and Drug Administration's satisfaction, then the device cannot be sold in the country. Even after the sale, a patient can sue the manufacturer for malpractice and negligence if the device harms him or her. Now limited to the United States, the FDA's stringent guidelines are being tailored by the International Organization for Standardization (ISO) for the European Community. Hence, manufacturers will have a harder time avoiding tight standards for high quality by searching outside the United States for their markets.
Experimental necessity prompted my using Ada for medical devices. I was developing a system to use in researching how to determine the compatibility of organs for transplant candidates. In order to measure the differences between populations of blood cells and to find populations in 3-dimensional data, I needed a good method for separating cells and a means with which to analyze them. The solution was to build an Automated Multiparameter Analyzer for Cells (Leif 1970). In 1972, the only reasonable solution was to use a computer, for the estimated throughput was 5,000 cells per second with 8 parameters per cell.
The resultant system performs as follows: The Coulter VCS (Volume Conductivity Scatter) blood cell analyzer illuminates a blood sample with a hellium-neon laser as the blood passes through the transducer. The VCS measures simultaneously the white cells volume and opacity, plus the differences between the light's scatter in gangles when it bounces off the white cells. The combination of these parameters allows researchers to separate the white cells into five classes. Two Ada programs then group the blood samples according to the three vectors. If the one class of the donor's white blood cells, the lymphocytes, react with antibodies from the recipient's blood, the Ada program provides a means to quantify the reaction. The results help in research to determine whether the candidate's body will reject the transplanted organ.
The work on the algorithmic projects demonstrated the necessity for a true 32-bit 386 compiler. Studies indicated that, at the time, the only 386 compiler that could handle very large data structures, compile other test code, (primarily acquired from STARS), and had a meaningful warranty was the most expensive one, produced by Alsys. We purchased the Alsys Ada Compiler for developing the planned new mid-range hematology instrument mostly on the strength of two arguments: the excellent courses given by Westley Mackey in software engineering and Eugene Bingue in Ada and AdaSAGE, and the fact that Alsys Ada produced true 32-bit code under Microsoft DOS that did not require overlays.
Two programmers, one familiar with Ada, wrote the 2,833 Ada statements in two years of approximately half-time work; 996 statements were reused in the second program from the first.
One of the major problems we ran into was that Ada lacked support from third-party vendors. For example, we had to develop a screen generator in-house. We could not use the Thor tool or AdaSAGE because our new version of Alsys Ada was no longer compatible with the AdaSAGE libraries.
However, the proof was in the pudding, for the software was finished before the hardware. This unusual phenomenon should henceforth be referred to as the Ada effect, since it was the case with Ada and Babbage. A more formal, detailed description of this work has been published (Leif et al. 1993).
For the reader's education, I include a quotation from one of the paper's referees to emphasize the prejudice against Ada: "Ada was designed by a committee to accommodate the approximately 800 languages used by programmers for the DoD. It has proved to be adept at that task. Otherwise, it is the most cumbersome and clumsy language that you can imagine." A complete revision of the paper and the television footage showing the devastating effect of DoD software during the Persian Gulf War resulted in acceptance of this paper.
Both in terms of its adhering to good manufacturing practices and its cost savings Ada is, I believe, the correct language for medical devices. The improvements in Ada 94 would have significantly facilitated developing the instrument. The language's dependability will help manufacturers meet increasingly stringent and international standards, while its portability makes it a logical choice for large biomedical projects where laboratories share code, such as in the human genome project and the space cytometer.
Produced in cooperation with Ada Information Clearinghouse, Ada Software Alliance, and ACM SIGAda. Hard copy available from the Ada Information Clearinghouse, at the address below.
The views, opinions, and findings contained in this report are those of the author(s) and should not be construed as an official Agency position, policy, or decision, unless so designated by other official documentation.
Copyright 1994. IIT Research Institute. All rights assigned to the U.S. Government (Ada Joint Program Office). Permission to reprint this flyer, in whole or in part, is granted, provided the AdaIC is acknowledged as the source. If this flyer is reprinted as a part of a published document, please send the AdaIC a courtesy copy of the publication.
Ada Information Clearinghouse (AdaIC) P.O. Box 46593 Washington, DC 20050-6593 1-800-AdaIC-11 (232-4211), 703/685-1477, FAX 703/685-7019 firstname.lastname@example.org; CompuServe 70312,3303
The AdaIC is sponsored by the Ada Joint Program Office and operated by IIT Research Institute.