Verification and Validation of Reusable ADA Components
This paper discusses the verification and validation (V&V) of reusable software written in the Ada programming language. The research includes methodological and experimental studies of aspects of V&V that are affected when reusable components are considered.
There are two aspects of reuse of concern to V&V: portability and adaptability. In the former case, the reusable component must be moved from one hardware/operating system environment to another. Usually, the intended functional behavior remains the same, and the main V&V concern is to assure that assumptions made by the software about the computing environment are not violated.
The latter case is concerned with incorporating a component into a new application environment. The Ada generic facility supports this by allowing developers to “instantiate” a component in a variety of ways, depending on the requirements of a new application. The characteristics that may be altered are delineated in such a way that the developer need only look at the specification and not the body of a generic component in order to understand what it does.
We have taken two approaches to investigating the V&V of reusable software. The first is methodological. It looks at the total software development life cycle to understand how reuse perturbs traditional methodologies. Its purpose is to characterize reuse errors and propose techniques for limiting them.
The other approach is experimental. We have adapted an existing methodology (Mutation Analysis) to detect instances of reuse errors. This tells us whether reuse errors are easily detectable and how easy it is to modify existing methods and tools. In particular, it can detect instances of Ada code that are not portable to new environments or not adaptable to different applications.
KeywordsApplication Environment Garbage Collection Reusable Software Reusable Component Adequacy Criterion
Unable to display preview. Download preview PDF.
- Appelbe, W. F., DeMillo, R. A., Guindi, D. S., King, K. N., and McCracken, W. M., 1988, Using Mutation Analysis for Testing Ada Programs, Proceedings of Ada Europe, Munich.Google Scholar
- Barnes, J. G. P., 1984, Programming in Ada, Addison-Wesley Publishers, Reading, MA.Google Scholar
- Booch, G., 1986, Software Components with Ada, 2nd Ed., Benjamin/Cummings Publishing Company, Menlo Park, CA.Google Scholar
- Bowser, J., 1988, Reference Manual for Ada Mutant Operators, Technical Report GIT-SERC-88/02, Software Engineering Center, Georgia Institute of Technology, Atlanta, GA.Google Scholar
- Budd, T. A., DeMillo, R. A., Lipton, R. J., and Sayward, F. G., 1978, The Design of a Prototype Mutation System for Program Testing, Proceedings NCC, AFIPS Conference Record, pp. 623–627. Google Scholar
- Budd, T. A., 1980, Mutation Analysis of Program Test Data, PhD Dissertation, Yale University, New Haven, Connecticutt.Google Scholar
- Budd, T. A., Hess, R., and Sayward, F. G., 1980, EXPER Implementor’s Guide, Department of Computer Science, Yale University.Google Scholar
- Budd, T. A.,and Angluin, D., 1982, Two Notions of Correctness and Their Relation to Testing, Acta Informatics, Vol. 18, No. 1, Springer-Verlag, pp. 31–45. Google Scholar
- DeMillo, R. A., Lipton, R. J., and Sayward, F. G., 1978, Hints on Test Data Selection: Help for the Practicing Programmer, Computer, Vol. 11, No. 4. Google Scholar
- DeMillo, R. A., and Spafford, E. H., 1986, The Mothra Software Testing Environment, Proceedings of the 11th Nasa Software Engineering Laboratory Workshop, Goddard Space Center.Google Scholar
- DeMillo, R. A., McCracken, W. M., Martin, R. J., and Passafiume, J. F., 1987, Software Testing and Evaluation, Benjamin/Cummings, Menlo Park, CA.Google Scholar
- DeMillo, R. A., Guindi, D. S., King, K. N., McCracken, W. M., and Offutt, A. J., 1988, An Extended Overview of the MOTHRA Mutation System, Proceedings of the Second Workshop on Software Testing Verification, and Analysis, Banff Alberta.Google Scholar
- Department of Defense, 1980, Ada Programming Language, MIL-STD-1815, Superintendent of Documents, U. S. Government Printing Office, Washington, D.C.Google Scholar
- Digital Equipment Corporation, 1985, Portability and the Portability Summary, Developing Ada Programs on VAX/VMS, Maynard, MA.Google Scholar
- Dynamics Research Corporation, 1988, ADAMAT. An Introduction to the Concepts and Principles of Dynamics Research Corporation’s Ada Measurement and Analysis Tool, Andover, MA, 1988. EVB Software Engineering, 1987, GRACE Notes, Frederick, MD.Google Scholar
- Goodenough, J. B., and Gerhart, S. L., 1975, Toward a Theory of Test Data Selection, Proceedings of the International Conference on Reliable Software, Vol. 10, No. 6, ACM SIGPLAN, pp. 493–510. Google Scholar
- Johnson, S. C., 1979, Lint, a C Program Checker, UNIX Programmer’s Supplementary Documents, Vol. 1, Berkeley, CA.Google Scholar
- Joint Logistics Commanders, 1983, Workshop on Post Deployment Software Support, Orlando, FL.Google Scholar
- Lecarme, O., and Gart, Mireille Pellissier, 1986, Software Portability, McGraw-Hill, New York, NY. Nilssen, J., and Wallis, P. J., ed., 1984, Portability and Style in Ada, Cambridge University Press, Cambridge.Google Scholar
- Offutt, A. J., 1988, Automatic Test Data Generation, GIT-ICS 88/28, PhD Dissertation, Georgia Institute of Technology, Atlanta, GA.Google Scholar
- Spafford, E. H., 1988, Extending Mutation Testing to Find Environmental Bugs, Technical Report SERC-TR21-P, Software Engineering Research Center, Purdue University, W. Lafayette, IN.Google Scholar
- Wallis, P. J., 1982, Portable Programming, John Wiley and Sons, New York, NY.Google Scholar
- Walsh, P. J., 1985, A Measure of Test Case Completeness, PhD Dissertation, State University of New York.Google Scholar