Designing and testing interfaces for portable software: Ada TEXT_IO as an example
Relatively little software is actually designed and tested on a wide variety of hardware architectures. Although lip service is often paid to producing and implementing portable designs, in practice, it is hard to avoid hidden (and even conscious) dependencies of the system that is first used to support the software. Portability and generality are often compromised in favour of meeting a schedule or satisfying efficiency requirements.
In this paper, we discuss how to use Ada* appropriately when specifying general purpose, portable software capabilities, and how to test purported implementation of such capabilities. In particular, we are concerned with how these issues arise in specifying and testing KAPSE interfaces and APSE tools. However, to be concrete, we examine the Ada TEXT_IO package, pointing out some principles that should be kept in mind when writing specifications for software to be implemented on a wide variety of architectures. Our experience in developing tests for TEXT_IO functions will also illustrate some of the difficulties that can be expected to arise when validating implementations of KAPSE and tool specifications.
Unable to display preview. Download preview PDF.
- [ANSI/MIL-STD-1815A]Ada Reference Manual, ANSI/MIL-STD-1815A, American National Standards Institute, 1983Google Scholar
- [Goodenough]Goodenough, John B., "The Ada Compiler Validation Capability" COMPUTER 14 (June, 1981), pp. 57–64.Google Scholar
- [Kafura]Kafura, D. Lee, J. A. N., Linquist, T., and Probert, T., "Validation in Ada Programming Support Environments" Virginia Polytechnic Institute and State University, December 1982, AD-A124 765/9.Google Scholar