Analysis of timing hazards in Ada programs

Safety-critical Ada programs often contain asynchronous tasks and are, therefore, prone to timing hazards. Neither rigorous testing nor rigorous formal verification is currently feasible for timing hazard detection. We propose an inexpensive static analysis that can assist in the identification of timing hazards. Only a few Ada constructs can generate results that depend on the asynchronous timing of tasks within a program. Using the techniques of data dependency analysis, these timing dependencies can be traced through the program. If an output is timing dependent, manual inspection is required to determine whether the timing dependency is deliberate or is an unintended timing hazard.

[1]  Louise E. Moser Data Dependency Graphs for Ada Programs , 1990, IEEE Trans. Software Eng..

[2]  Gregory W. Bond,et al.  Critical Races in Ada Programs , 1989, IEEE Trans. Software Eng..

[3]  Stewart N. Weiss A formal framework for the study of concurrent program testing , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[4]  Willem P. de Roever,et al.  A Proof System for Concurrent ADA Programs , 1984, Sci. Comput. Program..

[5]  John H. Reif,et al.  Data flow analysis of communicating processes , 1979, POPL.

[6]  N TaylorRichard,et al.  Structural Testing of Concurrent Programs , 1992 .

[7]  Leon J. Osterweil,et al.  Data Flow Analysis in Software Reliability , 1976, CSUR.

[8]  Laura K. Dillon,et al.  Verifying General Safety Properties of Ada Tasking Programs , 1990, IEEE Trans. Software Eng..

[9]  Wolfgang Polak,et al.  Formal Verification of Ada Programs , 1990, IEEE Trans. Software Eng..

[10]  D FosdickLloyd,et al.  Data Flow Analysis in Software Reliability , 1976 .

[11]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[12]  Richard N. Taylor,et al.  Anomaly Detection in Concurrent Software by Static Data Flow Analysis , 1980, IEEE Transactions on Software Engineering.

[13]  Thomas W. Reps,et al.  On the adequacy of program dependence graphs for representing programs , 1988, POPL '88.

[14]  Richard N. Taylor,et al.  Structural Testing of Concurrent Programs , 1992, IEEE Trans. Software Eng..

[15]  I. Mearns,et al.  Axioms and proof rules for Ada tasks , 1982 .

[16]  David Luckham,et al.  Debugging Ada Tasking Programs , 1985, IEEE Software.

[17]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.