Modular flow analysis for concurrent software

Modern software systems are designed and implemented in a modular fashion by composing individual components. The advantages of early validation are widely accepted in this context, i.e., that defects in individual module designs and implementations may be detected and corrected prior to system-level validation. This is particularly true for errors related to interactions between system components. In this paper, we describe how a whole-program automated static analysis technique can be adapted to the validation of individual components, or groups of components, of sequential or concurrent software systems. This work builds off of an existing approach, FLAVERS, that uses program flow analysis to verify explicitly stated correctness properties of software systems. We illustrate our modular analysis approach and some of its benefits by describing part of a case-study with a realistic concurrent multi-component system.

[1]  Barbara G. Ryder,et al.  A model of Ada programs for static deadlock detection in polynomial times , 1991, PADD '91.

[2]  George S. Avrunin,et al.  Analyzing Partially-Implemented Real-Time Systems , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[3]  Lori A. Clarke,et al.  Data flow analysis for verifying properties of concurrent programs , 1994, SIGSOFT '94.

[4]  Barbara G. Ryder,et al.  Lattice frameworks for multisource and bidirectional data flow problems , 1995, TOPL.

[5]  Shing-Chi Cheung,et al.  Checking subsystem safety properties in compositional reachability analysis , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[6]  Edmund M. Clarke,et al.  Compositional model checking , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[7]  Michal Young,et al.  Compositional reachability analysis using process algebra , 1991, TAV4.

[8]  David A. SchmidtKansas Limiting State Explosion with Filter-Based Re nement , 1997 .

[9]  James C. Corbett,et al.  Evaluating Deadlock Detection Methods for Concurrent Software , 1996, IEEE Trans. Software Eng..

[10]  Bo Ingvar Sandén,et al.  Software systems construction with examples in Ada , 1994 .

[11]  Orna Kupferman,et al.  Module Checking Revisited , 1997, CAV.

[12]  Barbara G. Ryder,et al.  Non-concurrency analysis , 1993, PPOPP '93.

[13]  Dirk Grunwald,et al.  Efficient Computation of Precedence Information in Parallel Programs , 1993, LCPC.

[14]  George S. Avrunin,et al.  Towards scalable compositional analysis , 1994, SIGSOFT '94.

[15]  Lori A. Clarke,et al.  An empirical comparison of static concurrency analysis techniques , 1996 .

[16]  Lori A. Clarke,et al.  Verification of communication protocols using data flow analysis , 1996, SIGSOFT '96.

[17]  Lori A. Clarke,et al.  Data flow analysis for verifying correctness properties of concurrent programs , 1995 .

[18]  Shing-Chi Cheung,et al.  Tractable Dataflow Analysis for Distributed Systems , 1994, IEEE Trans. Software Eng..