Testing Ada 95 programs for conformance to rapide architectures
The architecture of a system expresses the structural aspects of the system — the modules, the control structure, communication design, sharing of data and composition of modules. The architecture of a complex software system is a significant issue in the proper design, analysis and possibility of reuse of the software system.
This paper describes how the architecture of an Ada program may be extracted at run time and tested for conformance against a reference architecture in a language called RAPIDE. The conformance testing of Ada program architectures facilitates design, analysis and reuse of Ada programs since architecture based design, analysis and reuse techniques can now be applied to the program.
The paper first gives rules for testing conformance of Ada programs to RAPIDE architectures. The paper then defines a language called RAPIDE-ADA that instruments Ada programs to produce events at run time. The events are tested for conformance against a RAPIDE reference architecture by application of the rules for testing conformance.
KeywordsSoftware architecture Ada 95 program instrumentation run time monitoring
Unable to display preview. Download preview PDF.
- [AG94]R. Allen and D. Garlan. Formalizing architectural connection. In Proceedings of ICSE, May 1994.Google Scholar
- [Bry92]Doug Bryan. Rapide-0.2 language and tool-set overview. Technical Note CSL-TN-92-387, Computer Systems Lab, Stanford University, February 1992.Google Scholar
- [CBKA95]P. Clements, L. Bass, R. Kazman, and G. Abowd. Predicting software quality by architecture-level evaluation. In Proceedings of the 6th International Conference on Software Quality, October 1995.Google Scholar
- [ES90]Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990.Google Scholar
- [GAO95]D. Garlan, R. Allen, and J. Ockerbloom. Architectural mismatch: Why reuse is so hard. IEEE Software, November 1995.Google Scholar
- [GP95]D. Garlan and D. E. Perry. Introduction to special issue on software architecture. IEEE Transactions on Software Engineering, April 1995.Google Scholar
- [Gro91]The Object Management Group. The Common Object Request Broker: Architecture and Specification. The Object Management Group, revision 1.1 edition, December 1991.Google Scholar
- [GS93]D. Garlan and M. Shaw. An Introduction to Software Architecture, volume I. World Scientific Publishing Company, 1993.Google Scholar
- [HL85]D. P. Helmbold and D. C. Luckham. TSL: Task sequencing language. In Ada in Use: Proceedings of the Ada International Conference, pages 255–274. Cambridge University Press, May 1985.Google Scholar
- [Hoa85]C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.Google Scholar
- [LKA+95]David C. Luckham, John J. Kenney, Larry M. Augustin, James Vera, Doug Bryan, and Walter Mann. Specification and analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, 21(4):336–355, April 1995.Google Scholar
- [LVB+93]David C. Luckham, James Vera, Doug Bryan, Larry Augustin, and Frank Belz. Partial orderings of event sets and their application to prototyping concurrent, timed systems. Journal of Systems and Software, 21(3):253–265, June 1993.Google Scholar
- [LVM95]David C. Luckham, James Vera, and Sigurd Meldal. Three concepts of system architecture. To be published, 1995.Google Scholar
- [SG94]Mary Shaw and David Garlan. Characteristics of higher-level languages for software architecture. Technical Report CMU-CS-94-210, CMU, December 1994.Google Scholar
- [Tea95]Rapide Design Team. The Rapide-1 Specification Language Reference Manual. Program Analysis and Verification Group, Computer Systems Lab., Stanford University, version 1 edition, October 1995.Google Scholar
- [VSM94]James Vera, Alex Santoro, and Moataz Mohamed. Raptor — The Rapide Animator. Stanford University, Computer Systems Lab ERL 456, Stanford, CA 94305-4055, 1994.Google Scholar